[Oops] J'ai oublié de commiter un de mes débugs.

This commit is contained in:
Pierre-Elliott Bécue 2013-06-13 20:34:59 +02:00
parent 80929daddd
commit e18e5222b7
5 changed files with 53 additions and 29 deletions

View file

@ -172,7 +172,7 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
:py:class:`CransLdapObject`. On utilise la feature de ``sizelimit`` de
``python-ldap``"""
if not isinstance(filterstr, unicode):
cranslib.deprecated.usage("search ne devrait utiliser que des unicode comme filtre(%r)" % filterstr, level=3)
cranslib.deprecated.usage("search ne devrait utiliser que des unicode comme filtre(%r)" % filterstr, level=2)
filterstr = filterstr.decode('utf-8')
ldap_res = self.search_ext_s(dn, scope, filterstr.encode('utf-8'), sizelimit=sizelimit)
ret = []
@ -314,7 +314,14 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
for attribut in attribs:
if attribut.unique:
self.lockholder.addlock(key, str(attribut))
return objets.new_cransldapobject(self, dn, 'rw', uldif)
try:
return objets.new_cransldapobject(self, dn, 'rw', uldif)
except ldap_locks.LockError:
for key, values in uldif.iteritems():
attribs = [attributs.attrify(val, key, self) for val in values]
for attribut in attribs:
self.lockholder.removelock(key, str(attribut))
raise
def _find_id(self, attr, plage=None):
'''Trouve un id libre. Si une plage est fournie, cherche
@ -342,8 +349,15 @@ class lc_ldap(ldap.ldapobject.LDAPObject, object):
raise EnvironmentError('Aucun %s libre dans la plage [%d, %d]' %
(attr, plage[0], i))
else:
i = nonfree[-1]+1
self.lockholder.addlock(attr, str(i))
i = nonfree[-1] + 1
while True:
try:
self.lockholder.addlock(attr, str(i))
break
except ldap_locks.LockError:
i += 1
except Exception:
raise
return i
def _check_parent(self, objdn):