diff options
author | Pavel Zuna <pzuna@redhat.com> | 2010-02-23 15:58:03 +0100 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-02-24 14:56:34 -0500 |
commit | aa2c124e7d8b089285c41e6605ee7f37dad393c1 (patch) | |
tree | 4ec81370dfdc2c3e4df488f3ce5b968338f76e68 | |
parent | 8c46e09735d076e9689d04936cdeeca6dfd770d3 (diff) | |
download | freeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.tar.gz freeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.tar.xz freeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.zip |
Make the --all option work in Add/Remove Member commands.
-rw-r--r-- | ipalib/plugins/baseldap.py | 20 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_group_plugin.py | 22 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_hostgroup_plugin.py | 7 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_rolegroup_plugin.py | 7 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_taskgroup_plugin.py | 4 |
5 files changed, 52 insertions, 8 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index e03ac2e5..bd7cb18a 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -511,11 +511,19 @@ class LDAPAddMember(LDAPModMember): else: completed += 1 - (dn, entry_attrs) = ldap.get_entry(dn, member_dns.keys()+self.obj.default_attributes) + if options.get('all', False): + attrs_list = ['*'] + else: + attrs_list = list( + set(self.obj.default_attributes + member_dns.keys()) + ) + + (dn, entry_attrs) = ldap.get_entry(dn, attrs_list) (completed, dn) = self.post_callback( ldap, completed, failed, dn, entry_attrs, *keys, **options ) + entry_attrs['dn'] = dn self.obj.convert_attribute_members(entry_attrs, *keys, **options) return dict( @@ -575,11 +583,19 @@ class LDAPRemoveMember(LDAPModMember): else: completed += 1 - (dn, entry_attrs) = ldap.get_entry(dn, member_dns.keys()) + if options.get('all', False): + attrs_list = ['*'] + else: + attrs_list = list( + set(self.obj.default_attributes + member_dns.keys()) + ) + + (dn, entry_attrs) = ldap.get_entry(dn, attrs_list) (completed, dn) = self.post_callback( ldap, completed, failed, dn, entry_attrs, *keys, **options ) + entry_attrs['dn'] = dn self.obj.convert_attribute_members(entry_attrs, *keys, **options) return dict( diff --git a/tests/test_xmlrpc/test_group_plugin.py b/tests/test_xmlrpc/test_group_plugin.py index 8f2b207c..1173ca31 100644 --- a/tests/test_xmlrpc/test_group_plugin.py +++ b/tests/test_xmlrpc/test_group_plugin.py @@ -362,7 +362,9 @@ class test_group(Declarative): user=tuple(), ), ), - result={'member_group': (group2,), + result={ + 'dn': u'cn=%s,cn=groups,cn=accounts,%s' % (group1, api.env.basedn), + 'member_group': (group2,), 'gidnumber': [fuzzy_digits], 'cn': [group1], 'description': [u'New desc 1'], @@ -384,7 +386,9 @@ class test_group(Declarative): user=tuple(), ), ), - result={'member_group': (group2,), + result={ + 'dn': u'cn=%s,cn=groups,cn=accounts,%s' % (group1, api.env.basedn), + 'member_group': (group2,), 'gidnumber': [fuzzy_digits], 'cn': [group1], 'description': [u'New desc 1'], @@ -399,13 +403,18 @@ class test_group(Declarative): ), expected=dict( completed=1, - result=dict(), failed=dict( member=dict( group=tuple(), user=tuple(), ), ), + result={ + 'dn': u'cn=%s,cn=groups,cn=accounts,%s' % (group1, api.env.basedn), + 'cn': [group1], + 'gidnumber': [fuzzy_digits], + 'description': [u'New desc 1'], + }, ), ), @@ -417,13 +426,18 @@ class test_group(Declarative): ), expected=dict( completed=0, - result=dict(), failed=dict( member=dict( group=(u'notfound',), user=tuple(), ), ), + result={ + 'dn': u'cn=%s,cn=groups,cn=accounts,%s' % (group1, api.env.basedn), + 'cn': [group1], + 'gidnumber': [fuzzy_digits], + 'description': [u'New desc 1'], + }, ), ), diff --git a/tests/test_xmlrpc/test_hostgroup_plugin.py b/tests/test_xmlrpc/test_hostgroup_plugin.py index 4fc67a61..6c0e11f0 100644 --- a/tests/test_xmlrpc/test_hostgroup_plugin.py +++ b/tests/test_xmlrpc/test_hostgroup_plugin.py @@ -131,6 +131,7 @@ class test_hostgroup(Declarative): ), ), result={ + 'dn': dn1, 'cn': [hostgroup1], 'description': [u'Test hostgroup 1'], 'member_host': [fqdn1], @@ -220,7 +221,11 @@ class test_hostgroup(Declarative): ), ), completed=1, - result={}, + result={ + 'dn': dn1, + 'cn': [hostgroup1], + 'description': [u'Updated hostgroup 1'], + }, ), ), diff --git a/tests/test_xmlrpc/test_rolegroup_plugin.py b/tests/test_xmlrpc/test_rolegroup_plugin.py index 801daded..9d0d679c 100644 --- a/tests/test_xmlrpc/test_rolegroup_plugin.py +++ b/tests/test_xmlrpc/test_rolegroup_plugin.py @@ -150,6 +150,7 @@ class test_rolegroup(Declarative): ), ), result={ + 'dn': rolegroup1_dn, 'cn': [rolegroup1], 'description': [u'rolegroup desc 1'], 'member_group': [group1], @@ -319,7 +320,11 @@ class test_rolegroup(Declarative): hostgroup=[], ), ), - result={}, + result={ + 'dn': rolegroup1_dn, + 'cn': [rolegroup1], + 'description': [u'New desc 1'], + }, ), ), diff --git a/tests/test_xmlrpc/test_taskgroup_plugin.py b/tests/test_xmlrpc/test_taskgroup_plugin.py index 42e0ac50..2b687e68 100644 --- a/tests/test_xmlrpc/test_taskgroup_plugin.py +++ b/tests/test_xmlrpc/test_taskgroup_plugin.py @@ -170,6 +170,7 @@ class test_taskgroup(Declarative): ), ), result={ + 'dn': taskgroup1_dn, 'cn': [taskgroup1], 'description': [u'Test desc 1'], 'member_rolegroup': [rolegroup1], @@ -350,6 +351,9 @@ class test_taskgroup(Declarative): ), ), result={ + 'dn': taskgroup1_dn, + 'cn': [taskgroup1], + 'description': [u'New desc 1'], 'member_rolegroup': [rolegroup1], } ), |