bool HostGroup::EvaluateObjectRule(const Host::Ptr& host, const ConfigItem::Ptr& group)
{
- String group_name = group->GetName();
+ String groupName = group->GetName();
- CONTEXT("Evaluating rule for group '" + group_name + "'");
+ CONTEXT("Evaluating rule for group '" + groupName + "'");
ScriptFrame frame(true);
if (group->GetScope())
return false;
Log(LogDebug, "HostGroup")
- << "Assigning membership for group '" << group_name << "' to host '" << host->GetName() << "'";
+ << "Assigning membership for group '" << groupName << "' to host '" << host->GetName() << "'";
Array::Ptr groups = host->GetGroups();
- groups->Add(group_name);
+
+ if (groups && !groups->Contains(groupName))
+ groups->Add(groupName);
return true;
}
bool ServiceGroup::EvaluateObjectRule(const Service::Ptr& service, const ConfigItem::Ptr& group)
{
- String group_name = group->GetName();
+ String groupName = group->GetName();
- CONTEXT("Evaluating rule for group '" + group_name + "'");
+ CONTEXT("Evaluating rule for group '" + groupName + "'");
Host::Ptr host = service->GetHost();
return false;
Log(LogDebug, "ServiceGroup")
- << "Assigning membership for group '" << group_name << "' to service '" << service->GetName() << "'";
+ << "Assigning membership for group '" << groupName << "' to service '" << service->GetName() << "'";
Array::Ptr groups = service->GetGroups();
- groups->Add(group_name);
+
+ if (groups && !groups->Contains(groupName))
+ groups->Add(groupName);
return true;
}
bool UserGroup::EvaluateObjectRule(const User::Ptr& user, const ConfigItem::Ptr& group)
{
- String group_name = group->GetName();
+ String groupName = group->GetName();
- CONTEXT("Evaluating rule for group '" + group_name + "'");
+ CONTEXT("Evaluating rule for group '" + groupName + "'");
ScriptFrame frame(true);
if (group->GetScope())
return false;
Log(LogDebug, "UserGroup")
- << "Assigning membership for group '" << group_name << "' to user '" << user->GetName() << "'";
+ << "Assigning membership for group '" << groupName << "' to user '" << user->GetName() << "'";
Array::Ptr groups = user->GetGroups();
- groups->Add(group_name);
+
+ if (groups && !groups->Contains(groupName))
+ groups->Add(groupName);
return true;
}