summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/migration.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2013-01-10 15:31:11 -0500
committerMartin Kosek <mkosek@redhat.com>2013-01-11 10:43:38 +0100
commit746181a88dcec11ba5e11031eeac3840fc052ccb (patch)
tree44e3e629f7faf169950901239f5f233c3bcc6517 /ipalib/plugins/migration.py
parentcfe18944d643d8ec7c72a2e4c7081096d1fc2fb5 (diff)
downloadfreeipa-746181a88dcec11ba5e11031eeac3840fc052ccb.tar.gz
freeipa-746181a88dcec11ba5e11031eeac3840fc052ccb.tar.xz
freeipa-746181a88dcec11ba5e11031eeac3840fc052ccb.zip
Convert uniqueMember members into DN objects.
We were asserting that they should be DN objects but weren't converting them anywhere. https://fedorahosted.org/freeipa/ticket/3339
Diffstat (limited to 'ipalib/plugins/migration.py')
-rw-r--r--ipalib/plugins/migration.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/ipalib/plugins/migration.py b/ipalib/plugins/migration.py
index 157ab4447..05036c9c1 100644
--- a/ipalib/plugins/migration.py
+++ b/ipalib/plugins/migration.py
@@ -244,7 +244,13 @@ def _pre_migrate_group(ldap, pkey, dn, entry_attrs, failed, config, ctx, **kwarg
new_members = []
entry_attrs.setdefault(member_attr, [])
for m in entry_attrs[member_attr]:
- assert isinstance(m, DN)
+ try:
+ m = DN(m)
+ except ValueError, e:
+ # This should be impossible unless the remote server
+ # doesn't enforce syntax checking.
+ api.log.error('Malformed DN %s: %s' % (m, e))
+ continue
try:
rdnval = m[0].value
except IndexError:
@@ -252,10 +258,10 @@ def _pre_migrate_group(ldap, pkey, dn, entry_attrs, failed, config, ctx, **kwarg
continue
if m.endswith(search_bases['user']):
- api.log.info('migrating user %s' % m)
+ api.log.info('migrating %s user %s' % (member_attr, m))
m = DN((api.Object.user.primary_key.name, rdnval), api.env.container_user)
elif m.endswith(search_bases['group']):
- api.log.info('migrating group %s' % m)
+ api.log.info('migrating %s group %s' % (member_attr, m))
m = DN((api.Object.group.primary_key.name, rdnval), api.env.container_group)
else:
api.log.error('entry %s does not belong into any known container' % m)