]> granicus.if.org Git - icinga2/commitdiff
Fix incorrect variable values for apply+for
authorGunnar Beutner <gunnar@beutner.name>
Mon, 23 Mar 2015 14:52:09 +0000 (15:52 +0100)
committerGunnar Beutner <gunnar@beutner.name>
Mon, 23 Mar 2015 14:53:21 +0000 (15:53 +0100)
fixes #8851

lib/icinga/dependency-apply.cpp
lib/icinga/notification-apply.cpp
lib/icinga/scheduleddowntime-apply.cpp
lib/icinga/service-apply.cpp

index be761bd1b09da8e3ad883e7c34832c0142801380..14d2b84bfdf102728116e71e2a8faff7c7654322 100644 (file)
@@ -54,7 +54,7 @@ bool Dependency::EvaluateApplyRuleInstance(const Checkable::Ptr& checkable, cons
        ConfigItemBuilder::Ptr builder = new ConfigItemBuilder(di);
        builder->SetType("Dependency");
        builder->SetName(name);
-       builder->SetScope(frame.Locals);
+       builder->SetScope(frame.Locals->ShallowClone());
 
        Host::Ptr host;
        Service::Ptr service;
index d52ec85002d699f996267876b7aa86064e2277f5..fd8e5a3b354a8571c1b6536b9024a2ab9e6b5ed6 100644 (file)
@@ -54,7 +54,7 @@ bool Notification::EvaluateApplyRuleInstance(const Checkable::Ptr& checkable, co
        ConfigItemBuilder::Ptr builder = new ConfigItemBuilder(di);
        builder->SetType("Notification");
        builder->SetName(name);
-       builder->SetScope(frame.Locals);
+       builder->SetScope(frame.Locals->ShallowClone());
 
        Host::Ptr host;
        Service::Ptr service;
index 32f86c4490681ff0906cf4d420a69156c430f433..af581230465b7c76adab12cfa7ebc8bb30a87386 100644 (file)
@@ -53,7 +53,7 @@ bool ScheduledDowntime::EvaluateApplyRuleInstance(const Checkable::Ptr& checkabl
        ConfigItemBuilder::Ptr builder = new ConfigItemBuilder(di);
        builder->SetType("ScheduledDowntime");
        builder->SetName(name);
-       builder->SetScope(frame.Locals);
+       builder->SetScope(frame.Locals->ShallowClone());
 
        Host::Ptr host;
        Service::Ptr service;
index 065dd5f93215601c8b9e51f70c7a7090da856ae4..6af43204b0d36eae363d4156a5ab53f2324dd450 100644 (file)
@@ -52,7 +52,7 @@ bool Service::EvaluateApplyRuleInstance(const Host::Ptr& host, const String& nam
        ConfigItemBuilder::Ptr builder = new ConfigItemBuilder(di);
        builder->SetType("Service");
        builder->SetName(name);
-       builder->SetScope(frame.Locals);
+       builder->SetScope(frame.Locals->ShallowClone());
 
        builder->AddExpression(new SetExpression(MakeIndexer(ScopeCurrent, "host_name"), OpSetLiteral, MakeLiteral(host->GetName()), di));