|
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 |
|