summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Zuna <pzuna@redhat.com>2010-02-23 15:58:03 +0100
committerRob Crittenden <rcritten@redhat.com>2010-02-24 14:56:34 -0500
commitaa2c124e7d8b089285c41e6605ee7f37dad393c1 (patch)
tree4ec81370dfdc2c3e4df488f3ce5b968338f76e68
parent8c46e09735d076e9689d04936cdeeca6dfd770d3 (diff)
downloadfreeipa-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.py20
-rw-r--r--tests/test_xmlrpc/test_group_plugin.py22
-rw-r--r--tests/test_xmlrpc/test_hostgroup_plugin.py7
-rw-r--r--tests/test_xmlrpc/test_rolegroup_plugin.py7
-rw-r--r--tests/test_xmlrpc/test_taskgroup_plugin.py4
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],
}
),