]> granicus.if.org Git - icinga2/commitdiff
Fix that "repository add" writes invalid "type" attribute
authorMichael Friedrich <michael.friedrich@netways.de>
Thu, 17 Dec 2015 09:20:41 +0000 (10:20 +0100)
committerGunnar Beutner <gunnar@beutner.name>
Tue, 23 Feb 2016 08:16:47 +0000 (09:16 +0100)
fixes #10867

lib/cli/repositoryutility.cpp

index 3093db8b09fc9fd6a584494d2adaac9cfb6bce4f..9dba28caaff4c825c1a84d2d553f76a44ffea42b 100644 (file)
@@ -233,12 +233,15 @@ bool RepositoryUtility::AddObject(const std::vector<String>& object_paths, const
        if (check_config) {
                try {
                        ConfigObject::Ptr object = static_pointer_cast<ConfigObject>(utype->Instantiate());
+                       /* temporarly set the object type for validation */
                        attrs->Set("type", utype->GetName());
                        Deserialize(object, attrs, false, FAConfig);
                        object->SetName(name);
 
                        RepositoryValidationUtils utils;
                        static_pointer_cast<ConfigObject>(object)->Validate(FAConfig, utils);
+
+                       attrs->Remove("type");
                } catch (const ValidationError& ex) {
                        Log(LogCritical, "config", DiagnosticInformation(ex));
                        return false;