summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/baseldap.py19
-rw-r--r--ipalib/plugins/netgroup.py29
2 files changed, 38 insertions, 10 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index f3aa09d3e..97a02946b 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -199,14 +199,17 @@ class LDAPObject(Object):
return parent_dn
def get_primary_key_from_dn(self, dn):
- if self.rdn_attribute:
- (dn, entry_attrs) = self.backend.get_entry(
- dn, [self.primary_key.name]
- )
- try:
- return entry_attrs[pkey][0]
- except (KeyError, IndexError):
- return ''
+ try:
+ if self.rdn_attribute:
+ (dn, entry_attrs) = self.backend.get_entry(
+ dn, [self.primary_key.name]
+ )
+ try:
+ return entry_attrs[self.primary_key.name][0]
+ except (KeyError, IndexError):
+ return ''
+ except errors.NotFound:
+ pass
return dn[len(self.primary_key.name) + 1:dn.find(',')]
def get_ancestor_primary_keys(self):
diff --git a/ipalib/plugins/netgroup.py b/ipalib/plugins/netgroup.py
index 28647b963..199b4868a 100644
--- a/ipalib/plugins/netgroup.py
+++ b/ipalib/plugins/netgroup.py
@@ -46,6 +46,21 @@ from ipalib.plugins.baseldap import *
from ipalib import _, ngettext
+output_params = (
+ Str('memberuser_user?',
+ label='Member User',
+ ),
+ Str('memberuser_group?',
+ label='Member Group',
+ ),
+ Str('memberhost_host?',
+ label=_('Member Host'),
+ ),
+ Str('memberhost_hostgroup?',
+ label='Member Hostgroup',
+ ),
+ )
+
class netgroup(LDAPObject):
"""
Netgroup object.
@@ -56,7 +71,7 @@ class netgroup(LDAPObject):
object_class = ['ipaobject', 'ipaassociation', 'ipanisnetgroup']
default_attributes = [
'cn', 'description', 'memberof', 'externalhost', 'nisdomainname',
- 'memberuser', 'memberhost','member', 'memberindirect',
+ 'memberuser', 'memberhost', 'member', 'memberindirect',
]
uuid_attribute = 'ipauniqueid'
rdn_attribute = 'ipauniqueid'
@@ -101,6 +116,8 @@ class netgroup_add(LDAPCreate):
"""
Add a new netgroup.
"""
+ has_output_params = LDAPCreate.has_output_params + output_params
+ msg_summary = _('Added netgroup "%(value)s"')
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
entry_attrs.setdefault('nisdomainname', self.api.env.domain)
return dn
@@ -121,6 +138,8 @@ class netgroup_mod(LDAPUpdate):
"""
Modify a netgroup.
"""
+ has_output_params = LDAPUpdate.has_output_params + output_params
+ msg_summary = _('Modified netgroup "%(value)s"')
api.register(netgroup_mod)
@@ -129,6 +148,10 @@ class netgroup_find(LDAPSearch):
"""
Search for a netgroup.
"""
+ has_output_params = LDAPSearch.has_output_params + output_params
+ msg_summary = ngettext(
+ '%(count)d netgroup matched', '%(count)d netgroups matched'
+ )
api.register(netgroup_find)
@@ -146,6 +169,7 @@ class netgroup_add_member(LDAPAddMember):
Add members to a netgroup.
"""
member_attributes = ['memberuser', 'memberhost', 'member']
+ has_output_params = LDAPAddMember.has_output_params + output_params
def post_callback(self, ldap, completed, failed, dn, entry_attrs, *keys, **options):
completed_external = 0
# Sift through the host failures. We assume that these are all
@@ -180,7 +204,8 @@ class netgroup_remove_member(LDAPRemoveMember):
"""
Remove members from a netgroup.
"""
- member_attributes = ['memberuser', 'memberhost']
+ member_attributes = ['memberuser', 'memberhost', 'member']
+ has_output_params = LDAPRemoveMember.has_output_params + output_params
def post_callback(self, ldap, completed, failed, dn, entry_attrs, *keys, **options):
# Run through the host failures and gracefully remove any defined as
# as an externalhost.