Lines 99-107
def do_ldap_stuff(arg1, arg2, ldap_connection=None, ldap_position=None):
|
Link Here
|
---|
|
99 |
ldap_connection.searchDn(..., position=ldap_position) |
99 |
ldap_connection.searchDn(..., position=ldap_position) |
100 |
... |
100 |
... |
101 |
""" |
101 |
""" |
102 |
def wrapper_func(*args, **kwargs): |
102 |
def _get_user_connection(): |
103 |
global _ldap_connection, _ldap_position, _user_dn, _password, _licenseCheck |
103 |
global _licenseCheck |
104 |
|
|
|
105 |
if _ldap_connection is None: |
104 |
if _ldap_connection is None: |
106 |
MODULE.info('Opening LDAP connection for user %s' % _user_dn) |
105 |
MODULE.info('Opening LDAP connection for user %s' % _user_dn) |
107 |
lo = udm_uldap.access(host=ucr.get('ldap/master'), base=ucr.get('ldap/base'), binddn=_user_dn, bindpw=_password) |
106 |
lo = udm_uldap.access(host=ucr.get('ldap/master'), base=ucr.get('ldap/base'), binddn=_user_dn, bindpw=_password) |
Lines 132-154
def wrapper_func(*args, **kwargs):
|
Link Here
|
---|
|
132 |
MODULE.info('Using open LDAP connection for user %s' % _user_dn) |
131 |
MODULE.info('Using open LDAP connection for user %s' % _user_dn) |
133 |
lo = _ldap_connection |
132 |
lo = _ldap_connection |
134 |
po = _ldap_position |
133 |
po = _ldap_position |
|
|
134 |
return lo, po |
135 |
|
135 |
|
|
|
136 |
def _func(*args, **kwargs): |
137 |
global _ldap_connection, _ldap_position |
138 |
lo, po = _get_user_connection() |
136 |
kwargs['ldap_connection'] = lo |
139 |
kwargs['ldap_connection'] = lo |
137 |
kwargs['ldap_position'] = po |
140 |
kwargs['ldap_position'] = po |
|
|
141 |
ret = func(*args, **kwargs) |
142 |
_ldap_connection = lo |
143 |
_ldap_position = po |
144 |
return ret |
145 |
|
146 |
def wrapper_func(*args, **kwargs): |
138 |
try: |
147 |
try: |
139 |
ret = func(*args, **kwargs) |
148 |
return _func(*args, **kwargs) |
140 |
_ldap_connection = lo |
149 |
except (LDAPError, udm_errors.ldapError) as exc: |
141 |
_ldap_position = po |
150 |
MODULE.warn('Exception during ldap operation (probably timeout): %s' % (exc,)) |
142 |
except udm_errors.ldapError: |
151 |
global _ldap_connection, _ldap_position |
143 |
# workaround to keep the behavior from the past to trigger ldap.SERVER_DOWN exception as admin.uldap maskes it |
|
|
144 |
_lo = udm_uldap.access(host=ucr.get('ldap/master'), base=ucr.get('ldap/base'), binddn=_user_dn, bindpw=_password) |
145 |
del _lo |
146 |
raise |
147 |
except LDAPError: |
148 |
_ldap_connection = None |
152 |
_ldap_connection = None |
149 |
_ldap_position = None |
153 |
_ldap_position = None |
150 |
raise |
154 |
return _func(*args, **kwargs) |
151 |
return ret |
|
|
152 |
|
155 |
|
153 |
return error_handler(wrapper_func) |
156 |
return error_handler(wrapper_func) |
154 |
|
157 |
|