testing ldap reconnect with deleting old object first
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user