diff options
author | Rob Crittenden <rcritten@redhat.com> | 2009-01-28 21:47:21 -0700 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2009-02-03 15:29:04 -0500 |
commit | 5717c9d6689f15c46801f2d251e174fad4ce4748 (patch) | |
tree | 31e2a3378638bd63005a3d65d7fe74159860456c /ipaserver/plugins | |
parent | 48a278047db50f919a45ef82a57a6983804ed523 (diff) | |
download | freeipa-5717c9d6689f15c46801f2d251e174fad4ce4748.tar.gz freeipa-5717c9d6689f15c46801f2d251e174fad4ce4748.tar.xz freeipa-5717c9d6689f15c46801f2d251e174fad4ce4748.zip |
Applied Rob's errors patch
Diffstat (limited to 'ipaserver/plugins')
-rw-r--r-- | ipaserver/plugins/b_ldap.py | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/ipaserver/plugins/b_ldap.py b/ipaserver/plugins/b_ldap.py index 1160bf9e7..20fd01ec9 100644 --- a/ipaserver/plugins/b_ldap.py +++ b/ipaserver/plugins/b_ldap.py @@ -82,6 +82,16 @@ class ldap(CrudBackend): self.api.env.basedn, ) + def make_taskgroup_dn(self, cn): + """ + Construct group of tasks dn from cn. + """ + return 'cn=%s,%s,%s' % ( + self.dn.escape_dn_chars(cn), + self.api.env.container_taskgroup, + self.api.env.basedn, + ) + def make_service_dn(self, principal): """ Construct service principal dn from principal name @@ -227,14 +237,12 @@ class ldap(CrudBackend): else: assert type(value) in (str, unicode, bool, int, float) yield (key, value) - yield (key, value) def create(self, **kw): if servercore.entry_exists(kw['dn']): - raise errors.DuplicateEntry("entry already exists") + raise errors2.DuplicateEntry kw = dict(self.strip_none(kw)) - entry = ipaldap.Entry(kw['dn']) # dn isn't allowed to be in the entry itself @@ -251,19 +259,20 @@ class ldap(CrudBackend): return servercore.get_entry_by_dn(dn, attributes) def update(self, dn, **kw): - result = self.retrieve(dn, ["*"]) - start_keys = kw.keys() + result = self.retrieve(dn, ["*"] + kw.keys()) entry = ipaldap.Entry((dn, servercore.convert_scalar_values(result))) + start_keys = kw.keys() kw = dict(self.strip_none(kw)) + end_keys = kw.keys() + removed_keys = list(set(start_keys) - set(end_keys)) for k in kw: entry.setValues(k, kw[k]) - remove_keys = list(set(start_keys) - set(kw.keys())) - for k in remove_keys: + for k in removed_keys: entry.delAttr(k) - servercore.update_entry(entry.toDict(), remove_keys) + servercore.update_entry(entry.toDict(), removed_keys) return self.retrieve(dn) @@ -300,13 +309,13 @@ class ldap(CrudBackend): try: exact_results = servercore.search(search_base, exact_match_filter, attributes) - except errors.NotFound: + except errors2.NotFound: exact_results = [0] try: partial_results = servercore.search(search_base, partial_match_filter, attributes) - except errors.NotFound: + except errors2.NotFound: partial_results = [0] exact_counter = exact_results[0] |