summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2013-01-16 14:14:58 +0100
committerMartin Kosek <mkosek@redhat.com>2013-03-01 16:59:42 +0100
commitef1cd6e24732e7fa64f6c4b0ce32a909fbf1df5d (patch)
tree84ad0688b942996dd7b8fa58af3e2702b92f85d2 /ipalib
parente2120c31c3ba62d1bc57825b90a30d26ca58aa79 (diff)
downloadfreeipa-ef1cd6e24732e7fa64f6c4b0ce32a909fbf1df5d.tar.gz
freeipa-ef1cd6e24732e7fa64f6c4b0ce32a909fbf1df5d.tar.xz
freeipa-ef1cd6e24732e7fa64f6c4b0ce32a909fbf1df5d.zip
Add custom mapping object for LDAP entry data.
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/automember.py6
-rw-r--r--ipalib/plugins/baseldap.py26
-rw-r--r--ipalib/plugins/dns.py14
-rw-r--r--ipalib/plugins/krbtpolicy.py4
-rw-r--r--ipalib/plugins/sudorule.py4
-rw-r--r--ipalib/plugins/trust.py2
6 files changed, 28 insertions, 28 deletions
diff --git a/ipalib/plugins/automember.py b/ipalib/plugins/automember.py
index 0a7f37319..af39f6aac 100644
--- a/ipalib/plugins/automember.py
+++ b/ipalib/plugins/automember.py
@@ -305,7 +305,7 @@ class automember_add_condition(LDAPUpdate):
try:
(dn, old_entry) = ldap.get_entry(
dn, [attr], normalize=self.obj.normalize_dn)
- for regex in old_entry:
+ for regex in old_entry.keys():
if not isinstance(entry_attrs[regex], (list, tuple)):
entry_attrs[regex] = [entry_attrs[regex]]
duplicate = set(old_entry[regex]) & set(entry_attrs[regex])
@@ -319,7 +319,7 @@ class automember_add_condition(LDAPUpdate):
# Set failed and completed to they can be harvested in the execute super
setattr(context, 'failed', failed)
setattr(context, 'completed', completed)
- setattr(context, 'entry_attrs', entry_attrs)
+ setattr(context, 'entry_attrs', dict(entry_attrs))
# Make sure to returned the failed results if there is nothing to remove
if completed == 0:
@@ -409,7 +409,7 @@ class automember_remove_condition(LDAPUpdate):
# Set failed and completed to they can be harvested in the execute super
setattr(context, 'failed', failed)
setattr(context, 'completed', completed)
- setattr(context, 'entry_attrs', entry_attrs)
+ setattr(context, 'entry_attrs', dict(entry_attrs))
# Make sure to returned the failed results if there is nothing to remove
if completed == 0:
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 1ebbe7a20..2cde65f1e 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -228,7 +228,7 @@ def entry_from_entry(entry, newentry):
del entry[e]
# Re-populate it with new wentry
- for e in newentry:
+ for e in newentry.keys():
entry[e] = newentry[e]
def wait_for_value(ldap, dn, attr, value):
@@ -868,7 +868,7 @@ last, after all sets and adds."""),
# Provide a nice error message when user tries to delete an
# attribute that does not exist on the entry (and user is not
# adding it)
- names = set(n.lower() for n in old_entry)
+ names = set(n.lower() for n in old_entry.keys())
del_nonexisting = delattrs - (names | setattrs | addattrs)
if del_nonexisting:
raise errors.ValidationError(name=del_nonexisting.pop(),
@@ -1070,8 +1070,8 @@ class LDAPCreate(BaseLDAPCommand, crud.Create):
self.obj.convert_attribute_members(entry_attrs, *keys, **options)
if self.obj.primary_key and keys[-1] is not None:
- return dict(result=entry_attrs, value=keys[-1])
- return dict(result=entry_attrs, value=u'')
+ return dict(result=dict(entry_attrs), value=keys[-1])
+ return dict(result=dict(entry_attrs), value=u'')
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
assert isinstance(dn, DN)
@@ -1195,8 +1195,8 @@ class LDAPRetrieve(LDAPQuery):
assert isinstance(dn, DN)
entry_attrs['dn'] = dn
if self.obj.primary_key and keys[-1] is not None:
- return dict(result=entry_attrs, value=keys[-1])
- return dict(result=entry_attrs, value=u'')
+ return dict(result=dict(entry_attrs), value=keys[-1])
+ return dict(result=dict(entry_attrs), value=u'')
def pre_callback(self, ldap, dn, attrs_list, *keys, **options):
assert isinstance(dn, DN)
@@ -1324,8 +1324,8 @@ class LDAPUpdate(LDAPQuery, crud.Update):
self.obj.convert_attribute_members(entry_attrs, *keys, **options)
if self.obj.primary_key and keys[-1] is not None:
- return dict(result=entry_attrs, value=keys[-1])
- return dict(result=entry_attrs, value=u'')
+ return dict(result=dict(entry_attrs), value=keys[-1])
+ return dict(result=dict(entry_attrs), value=u'')
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
assert isinstance(dn, DN)
@@ -1552,7 +1552,7 @@ class LDAPAddMember(LDAPModMember):
return dict(
completed=completed,
failed=failed,
- result=entry_attrs,
+ result=dict(entry_attrs),
)
def pre_callback(self, ldap, dn, found, not_found, *keys, **options):
@@ -1651,7 +1651,7 @@ class LDAPRemoveMember(LDAPModMember):
return dict(
completed=completed,
failed=failed,
- result=entry_attrs,
+ result=dict(entry_attrs),
)
def pre_callback(self, ldap, dn, found, not_found, *keys, **options):
@@ -1861,7 +1861,7 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
for e in entries:
assert isinstance(e[0], DN)
e[1]['dn'] = e[0]
- entries = [e for (dn, e) in entries]
+ entries = [dict(e) for (dn, e) in entries]
return dict(
result=entries,
@@ -2000,7 +2000,7 @@ class LDAPAddReverseMember(LDAPModReverseMember):
return dict(
completed=completed,
failed=failed,
- result=entry_attrs,
+ result=dict(entry_attrs),
)
def pre_callback(self, ldap, dn, *keys, **options):
@@ -2100,7 +2100,7 @@ class LDAPRemoveReverseMember(LDAPModReverseMember):
return dict(
completed=completed,
failed=failed,
- result=entry_attrs,
+ result=dict(entry_attrs),
)
def pre_callback(self, ldap, dn, *keys, **options):
diff --git a/ipalib/plugins/dns.py b/ipalib/plugins/dns.py
index de13395ef..ff21c694d 100644
--- a/ipalib/plugins/dns.py
+++ b/ipalib/plugins/dns.py
@@ -2124,7 +2124,7 @@ class dnsrecord(LDAPObject):
assert isinstance(dn, DN)
ldap = self.api.Backend.ldap2
- for rtype in entry_attrs:
+ for rtype in entry_attrs.keys():
rtype_cb = getattr(self, '_%s_pre_callback' % rtype, None)
if rtype_cb:
rtype_cb(ldap, dn, entry_attrs, *keys, **options)
@@ -2267,9 +2267,9 @@ class dnsrecord(LDAPObject):
def check_record_type_collisions(self, old_entry, entry_attrs):
# Test that only allowed combination of record types was created
- attrs = set(attr for attr in entry_attrs if attr in _record_attributes
+ attrs = set(attr for attr in entry_attrs.keys() if attr in _record_attributes
and entry_attrs[attr])
- attrs.update(attr for attr in old_entry if attr not in entry_attrs)
+ attrs.update(attr for attr in old_entry.keys() if attr not in entry_attrs)
try:
attrs.remove('cnamerecord')
except KeyError:
@@ -2404,7 +2404,7 @@ class dnsrecord_add(LDAPCreate):
self.obj.run_precallback_validators(dn, entry_attrs, *keys, **options)
# run precallback also for all new RR type attributes in entry_attrs
- for attr in entry_attrs:
+ for attr in entry_attrs.keys():
try:
param = self.params[attr]
except KeyError:
@@ -2437,7 +2437,7 @@ class dnsrecord_add(LDAPCreate):
except errors.NotFound:
pass
else:
- for attr in entry_attrs:
+ for attr in entry_attrs.keys():
if attr not in _record_attributes:
continue
if entry_attrs[attr] is None:
@@ -2568,7 +2568,7 @@ class dnsrecord_mod(LDAPUpdate):
normalize=self.obj.normalize_dn)
del_all = True
- for attr in old_entry:
+ for attr in old_entry.keys():
if old_entry[attr]:
del_all = False
break
@@ -2709,7 +2709,7 @@ class dnsrecord_del(LDAPUpdate):
del_all = False
if not self.obj.is_pkey_zone_record(*keys):
record_found = False
- for attr in old_entry:
+ for attr in old_entry.keys():
if old_entry[attr]:
record_found = True
break
diff --git a/ipalib/plugins/krbtpolicy.py b/ipalib/plugins/krbtpolicy.py
index 60674cc06..07e3148db 100644
--- a/ipalib/plugins/krbtpolicy.py
+++ b/ipalib/plugins/krbtpolicy.py
@@ -177,7 +177,7 @@ class krbtpolicy_reset(LDAPQuery):
(dn, entry_attrs) = ldap.get_entry(dn, self.obj.default_attributes)
if keys[-1] is not None:
- return dict(result=entry_attrs, value=keys[-1])
- return dict(result=entry_attrs, value=u'')
+ return dict(result=dict(entry_attrs), value=keys[-1])
+ return dict(result=dict(entry_attrs), value=u'')
api.register(krbtpolicy_reset)
diff --git a/ipalib/plugins/sudorule.py b/ipalib/plugins/sudorule.py
index 878033f0e..a453dcabf 100644
--- a/ipalib/plugins/sudorule.py
+++ b/ipalib/plugins/sudorule.py
@@ -642,7 +642,7 @@ class sudorule_add_option(LDAPQuery):
dn, attrs_list, normalize=self.obj.normalize_dn
)
- return dict(result=entry_attrs)
+ return dict(result=dict(entry_attrs))
def output_for_cli(self, textui, result, cn, **options):
textui.print_dashed(_('Added option "%(option)s" to Sudo Rule "%(rule)s"') % \
@@ -697,7 +697,7 @@ class sudorule_remove_option(LDAPQuery):
dn, attrs_list, normalize=self.obj.normalize_dn
)
- return dict(result=entry_attrs)
+ return dict(result=dict(entry_attrs))
def output_for_cli(self, textui, result, cn, **options):
textui.print_dashed(_('Removed option "%(option)s" from Sudo Rule "%(rule)s"') % \
diff --git a/ipalib/plugins/trust.py b/ipalib/plugins/trust.py
index acb73aa3e..78a6d98f7 100644
--- a/ipalib/plugins/trust.py
+++ b/ipalib/plugins/trust.py
@@ -311,7 +311,7 @@ sides.
base_dn = DN(api.env.container_trusts, api.env.basedn),
filter = trust_filter)
- result['result'] = trusts[0][1]
+ result['result'] = dict(trusts[0][1])
result['result']['trusttype'] = [trust_type_string(result['result']['ipanttrusttype'][0])]
result['result']['trustdirection'] = [trust_direction_string(result['result']['ipanttrustdirection'][0])]
result['result']['truststatus'] = [trust_status_string(result['verified'])]