コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
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
コード例 #4
0
ファイル: single_perf_test.py プロジェクト: kryton/hue
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()
コード例 #5
-1
    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