summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2011-10-05 16:18:16 +0200
committerRob Crittenden <rcritten@redhat.com>2011-10-06 05:29:56 -0400
commita85bb7fa9e5a03b391d684e2850bfe4663f94e21 (patch)
treebbc6486f0fe85c552c7e6ab95a45effaf79f4597
parentacb2c3106ad763a07eca6e0f6f6737c04f967bfe (diff)
downloadfreeipa-a85bb7fa9e5a03b391d684e2850bfe4663f94e21.tar.gz
freeipa-a85bb7fa9e5a03b391d684e2850bfe4663f94e21.tar.xz
freeipa-a85bb7fa9e5a03b391d684e2850bfe4663f94e21.zip
Prevent collisions of hostgroup and netgroup
For every hostgroup a managed netgroup is created (if this is allowed). Make sure that if a stand-alone netgroup exists, a hostgroup with the same name cannot be created to prevent collisions. https://fedorahosted.org/freeipa/ticket/1914
-rw-r--r--ipalib/plugins/hostgroup.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/ipalib/plugins/hostgroup.py b/ipalib/plugins/hostgroup.py
index 0d69d093e..0560bd7d2 100644
--- a/ipalib/plugins/hostgroup.py
+++ b/ipalib/plugins/hostgroup.py
@@ -115,6 +115,17 @@ class hostgroup_add(LDAPCreate):
msg_summary = _('Added hostgroup "%(value)s"')
+ def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
+ try:
+ netgroup = api.Command['netgroup_show'](keys[-1])
+ raise errors.DuplicateEntry(message=unicode(_(\
+ u'netgroup with name "%s" already exists' % keys[-1]\
+ )))
+ except errors.NotFound:
+ pass
+
+ return dn
+
def post_callback(self, ldap, dn, entry_attrs, *keys, **options):
# Always wait for the associated netgroup to be created so we can
# be sure to ignore it in memberOf