|
Lines 33-38
Link Here
|
| 33 |
|
33 |
|
| 34 |
import operator |
34 |
import operator |
| 35 |
import threading |
35 |
import threading |
|
|
36 |
import gc |
| 36 |
|
37 |
|
| 37 |
from univention.management.console import Translation |
38 |
from univention.management.console import Translation |
| 38 |
from univention.management.console.modules import Base, UMC_OptionTypeError, UMC_OptionMissing, UMC_CommandError |
39 |
from univention.management.console.modules import Base, UMC_OptionTypeError, UMC_OptionMissing, UMC_CommandError |
|
Lines 131-136
Link Here
|
| 131 |
_ldap_connection = lo |
132 |
_ldap_connection = lo |
| 132 |
_ldap_position = po |
133 |
_ldap_position = po |
| 133 |
return ret |
134 |
return ret |
|
|
135 |
except (udm_errors.ldapSizelimitExceeded, udm_errors.ldapTimeout), e: |
| 136 |
raise e |
| 134 |
except ( LDAPError, udm_errors.base ), e: |
137 |
except ( LDAPError, udm_errors.base ), e: |
| 135 |
MODULE.info( 'LDAP operation for user %s has failed' % _user_dn ) |
138 |
MODULE.info( 'LDAP operation for user %s has failed' % _user_dn ) |
| 136 |
try: |
139 |
try: |
|
Lines 149-154
Link Here
|
| 149 |
_ldap_connection = lo |
152 |
_ldap_connection = lo |
| 150 |
_ldap_position = po |
153 |
_ldap_position = po |
| 151 |
return ret |
154 |
return ret |
|
|
155 |
except (udm_errors.ldapSizelimitExceeded, udm_errors.ldapTimeout), e: |
| 156 |
raise e |
| 152 |
except udm_errors.base, e: |
157 |
except udm_errors.base, e: |
| 153 |
raise LDAP_ConnectionError( str( e ) ) |
158 |
raise LDAP_ConnectionError( str( e ) ) |
| 154 |
|
159 |
|
|
Lines 390-403
Link Here
|
| 390 |
filter_s = '%s=%s' % ( attribute, value ) |
395 |
filter_s = '%s=%s' % ( attribute, value ) |
| 391 |
|
396 |
|
| 392 |
MODULE.info( 'Searching for LDAP objects: container = %s, filter = %s, superordinate = %s' % ( container, filter_s, superordinate ) ) |
397 |
MODULE.info( 'Searching for LDAP objects: container = %s, filter = %s, superordinate = %s' % ( container, filter_s, superordinate ) ) |
|
|
398 |
result = None |
| 393 |
try: |
399 |
try: |
| 394 |
return self.module.lookup( None, ldap_connection, filter_s, base = container, superordinate = superordinate, scope = scope ) |
400 |
result = self.module.lookup( None, ldap_connection, filter_s, base = container, superordinate = superordinate, scope = scope, sizelimit = int(ucr.get('directory/manager/web/sizelimit', '2000')) ) |
| 395 |
except udm_errors.insufficientInformation, e: |
401 |
except udm_errors.insufficientInformation, e: |
| 396 |
return [] |
402 |
return [] |
|
|
403 |
except udm_errors.ldapTimeout, e: |
| 404 |
raise udm_errors.ldapTimeout( _('The query you have entered timed out. Please narrow down your search by specifiying more query parameters') ) |
| 405 |
except udm_errors.ldapSizelimitExceeded, e: |
| 406 |
raise udm_errors.ldapSizelimitExceeded( _('The query you have entered yields too many matching entries. Please narrow down your search by specifiying more query parameters. The current size limit of %s can be configured with the UCR variable directory/manager/web/sizelimit.') % ucr.get('directory/manager/web/sizelimit', '2000') ) |
| 397 |
except ( LDAPError, udm_errors.ldapError ), e: |
407 |
except ( LDAPError, udm_errors.ldapError ), e: |
| 398 |
raise e |
408 |
raise e |
| 399 |
except udm_errors.base, e: |
409 |
except udm_errors.base, e: |
| 400 |
raise UDM_Error( str( e ) ) |
410 |
raise UDM_Error( str( e ) ) |
|
|
411 |
|
| 412 |
# call the garbage collector manually as many parallel request may cause the |
| 413 |
# process to use too much memory |
| 414 |
MODULE.info('Triggering garbage collection') |
| 415 |
gc.collect() |
| 416 |
|
| 417 |
return result |
| 401 |
|
418 |
|
| 402 |
@LDAP_Connection |
419 |
@LDAP_Connection |
| 403 |
def get( self, ldap_dn = None, superordinate = None, attributes = [], ldap_connection = None, ldap_position = None ): |
420 |
def get( self, ldap_dn = None, superordinate = None, attributes = [], ldap_connection = None, ldap_position = None ): |