testing ldap reconnect with deleting old object first

This commit is contained in:
2012-12-10 15:27:22 +01:00
parent c74b73594c
commit 40ed2cebe9

View File

@@ -101,6 +101,10 @@ class LdapUserDir(object):
attrlist=None, attrsonly=0, recon_attempts = 2):
""" wrapper of standard ldap.search_s synchronous search that
tries to reconnect
Implemented that myself since the use of the automatic reconnect
available (ReconnectLDAPObject) led to a connection that returned
empty answers. This way I have more control.
"""
attempts = 0
ok = False
@@ -113,12 +117,27 @@ class LdapUserDir(object):
except ldap.SERVER_DOWN:
self.logger.warning("Got ldap server down: Reconnecting (try %s)"
% attempts)
try:
del self._ldap
except Exception, err:
self.logger.warning("failed to delete LDAP object: %s"
% str(err))
time.sleep(1)
try:
self._ldap = ldap.initialize(self.serverurl, trace_level=0,
trace_file=sys.stderr)
except ldap.SERVER_DOWN:
self.logger.warning("ldap initialization error")
time.sleep(1)
self.logger.warning("ldap initialization error" +
", server down (server: %s)" %
self.serverurl
+ ": %s" % str(err))
except Exception, err:
self.logger.warning("ldap initialization error" +
" (server: %s)" %
self.serverurl
+ ": %s" % str(err))
if attempts >= recon_attempts:
raise