A simple connector pool for python-ldap and related LDAP libraries.
Go to file
huang.zhiping cd9f5ec71a fix tox python3 overrides
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.

We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.

We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.

Change-Id: I0bfdf108da6dc819debe29b4998d507b86e343a4
2018-08-15 06:55:47 +00:00
doc Switch from oslosphinx to openstackdocstheme 2017-06-30 15:37:13 +07:00
ldappool Don't call start_tls_s() twice 2017-03-08 22:43:01 +01:00
.gitignore Switch to stestr 2018-07-17 08:17:25 +07:00
.gitreview add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07:00
.stestr.conf Switch to stestr 2018-07-17 08:17:25 +07:00
.zuul.yaml add lower-constraints job 2018-04-06 09:02:34 -04:00
CHANGES.rst starting 1.1 2012-02-27 23:08:32 +01:00
CONTRIBUTORS preparing 1.0 2012-02-27 23:05:12 +01:00
MANIFEST.in preparing 1.0 2012-02-27 23:05:12 +01:00
README.rst Switch to python-ldap again 2018-07-18 20:25:01 +00:00
lower-constraints.txt Switch to python-ldap again 2018-07-18 20:25:01 +00:00
requirements.txt Switch to python-ldap again 2018-07-18 20:25:01 +00:00
setup.cfg Add author email to setup.cfg 2018-07-19 18:21:21 +02:00
setup.py Updated from global requirements 2017-03-10 03:31:33 +00:00
test-requirements.txt Bump to hacking 1.1.x 2018-07-17 10:52:49 +02:00
tox.ini fix tox python3 overrides 2018-08-15 06:55:47 +00:00

README.rst

ldappool

A simple connector pool for python-ldap.

The pool keeps LDAP connectors alive and let you reuse them, drastically reducing the time spent to initiate a ldap connection.

The pool has useful features like:

  • transparent reconnection on failures or server restarts
  • configurable pool size and connectors timeouts
  • configurable max lifetime for connectors
  • a context manager to simplify acquiring and releasing a connector

You need python-ldap in order to use this library

Quickstart

To work with the pool, you just need to create it, then use it as a context manager with the connection method:

from ldappool import ConnectionManager

cm = ConnectionManager('ldap://localhost')

with cm.connection('uid=adminuser,ou=logins,dc=mozilla', 'password') as conn:
    .. do something with conn ..

The connector returned by connection is a LDAPObject, that's binded to the server. See https://pypi.org/project/python-ldap/ for details on how to use a connector.

ConnectionManager options

Here are the options you can use when instanciating the pool:

  • uri: ldap server uri [mandatory]
  • bind: default bind that will be used to bind a connector. default: None
  • passwd: default password that will be used to bind a connector. default: None
  • size: pool size. default: 10
  • retry_max: number of attempts when a server is down. default: 3
  • retry_delay: delay in seconds before a retry. default: .1
  • use_tls: activate TLS when connecting. default: False
  • timeout: connector timeout. default: -1
  • use_pool: activates the pool. If False, will recreate a connector each time. default: True

The connection method takes two options:

  • bind: bind used to connect. If None, uses the pool default's. default: None
  • passwd: password used to connect. If None, uses the pool default's. default: None