def _createConnectionString(self, server_info): """ Convert a server info mapping into a connection string """ protocol = server_info['protocol'] if protocol == 'ldapi': hostport = server_info['host'] else: hostport = '%s:%s' % (server_info['host'], server_info['port']) ldap_url = LDAPUrl(urlscheme=protocol, hostport=hostport) return ldap_url.initializeUrl()
def _createConnectionString(self, server_info): """ Convert a server info mapping into a connection string """ protocol = server_info["protocol"] if protocol == "ldapi": hostport = server_info["host"] else: hostport = "%s:%s" % (server_info["host"], server_info["port"]) ldap_url = LDAPUrl(urlscheme=protocol, hostport=hostport) return ldap_url.initializeUrl()
import sys, os, time, ldap from ldap.ldapobject import LDAPObject from ldapurl import LDAPUrl try: ldap_url = LDAPUrl(sys.argv[1]) num_tests = int(sys.argv[2]) except IndexError: print 'Usage: pref_test.py <LDAP URL> <number of tests>' sys.exit(1) iter = num_tests start_time = time.time() l = LDAPObject(ldap_url.initializeUrl(), trace_level=0) l.protocol_version = 3 l.simple_bind_s(ldap_url.who or '', ldap_url.cred or '') while iter: l.search_s(ldap_url.dn, ldap_url.scope or ldap.SCOPE_BASE, ldap_url.filterstr or '(objectClass=*)', ldap_url.attrs or ['*']) iter -= 1 end_time = time.time() l.unbind_s() del l print 'Reusing connection:', end_time - start_time
import sys,os,time,ldap from ldap.ldapobject import LDAPObject from ldapurl import LDAPUrl try: ldap_url = LDAPUrl(sys.argv[1]) num_tests = int(sys.argv[2]) except IndexError: print 'Usage: pref_test.py <LDAP URL> <number of tests>' sys.exit(1) iter = num_tests start_time = time.time() l = LDAPObject(ldap_url.initializeUrl(),trace_level=0) l.protocol_version = 3 l.simple_bind_s(ldap_url.who or '',ldap_url.cred or '') while iter: l.search_s( ldap_url.dn, ldap_url.scope or ldap.SCOPE_BASE, ldap_url.filterstr or '(objectClass=*)', ldap_url.attrs or ['*'] ) iter -= 1 end_time = time.time()
def connect(self, bind_dn='', bind_pwd=''): """ initialize an ldap server connection """ conn = None if bind_dn != '': user_dn = bind_dn user_pwd = bind_pwd or '~' elif self.binduid_usage == 1: user_dn = self.bind_dn user_pwd = self.bind_pwd else: user = getSecurityManager().getUser() try: user_dn = user.getUserDN() user_pwd = user._getPassword() except AttributeError: # User object is not a LDAPUser user_dn = user_pwd = '' conn = getResource('%s-connection' % self._hash, str, ()) if conn._type() is not StringType: try: conn.simple_bind_s(user_dn, user_pwd) conn.search_s(self.u_base, self.BASE, '(objectClass=*)') return conn except ( AttributeError , ldap.SERVER_DOWN , ldap.NO_SUCH_OBJECT , ldap.TIMEOUT , ldap.INVALID_CREDENTIALS ): pass e = None for server in self._servers: getter = server.get protocol = getter('protocol') if protocol == 'ldapi': hostport = getter('host') else: hostport = '%s:%s' % (getter('host'), getter('port')) ldap_url = LDAPUrl(urlscheme=protocol, hostport=hostport) try: newconn = self._connect( ldap_url.initializeUrl() , user_dn , user_pwd , conn_timeout=getter('conn_timeout') , op_timeout=getter('op_timeout') ) return newconn except ( ldap.SERVER_DOWN , ldap.TIMEOUT , ldap.INVALID_CREDENTIALS ), e: continue