Array::Ptr groups = GetGroups();
if (groups) {
+ groups = groups->ShallowClone();
+
ObjectLock olock(groups);
BOOST_FOREACH(const String& name, groups) {
/* assign host group membership */
group->ResolveGroupMembership(host, true);
- /* update groups attribute for apply */
- host->AddGroup(group_name);
-
return true;
}
void HostGroup::AddMember(const Host::Ptr& host)
{
+ host->AddGroup(GetName());
+
boost::mutex::scoped_lock lock(m_HostGroupMutex);
m_Members.insert(host);
}
Array::Ptr groups = GetGroups();
if (groups) {
+ groups = groups->ShallowClone();
+
ObjectLock olock(groups);
BOOST_FOREACH(const String& name, groups) {
/* assign service group membership */
group->ResolveGroupMembership(service, true);
- /* update groups attribute for apply */
- service->AddGroup(group_name);
-
return true;
}
void ServiceGroup::AddMember(const Service::Ptr& service)
{
+ service->AddGroup(GetName());
+
boost::mutex::scoped_lock lock(m_ServiceGroupMutex);
m_Members.insert(service);
}
Array::Ptr groups = GetGroups();
if (groups) {
+ groups = groups->ShallowClone();
+
ObjectLock olock(groups);
BOOST_FOREACH(const String& name, groups) {
/* assign user group membership */
group->ResolveGroupMembership(user, true);
- /* update groups attribute for apply */
- user->AddGroup(group_name);
-
return true;
}
void UserGroup::AddMember(const User::Ptr& user)
{
+ user->AddGroup(GetName());
+
boost::mutex::scoped_lock lock(m_UserGroupMutex);
m_Members.insert(user);
}