A simple connector pool for python-ldap and related LDAP libraries.
Go to file
Monty Taylor d4c8129cec Fix license in setup.py
While the ldappool project is MPL and the license info is appropriately
associated with Tarek, setup.py is actually not a file written by him -
it is an exact copy of the boilerplate OpenStack setup.py file which is
Apache licensed. There should be no license issues with the project with
the OpenStack setup.py file being in use, as neither license are
incompatible with each other.

Change-Id: I0d334e624afe62a53b3324ee45ca9bc454ae1d4a
2016-05-12 13:51:17 -07:00
doc add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07:00
ldappool add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07:00
.gitignore initial import of server-core's ldappool 2011-10-28 17:10:59 +02:00
.gitreview add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07:00
.testr.conf Add support for tox unit testing 2016-05-12 08:36:14 -07: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 simplified setup 2011-10-28 17:40:59 +02:00
requirements.txt Add support for tox unit testing 2016-05-12 08:36:14 -07:00
setup.cfg Add support for tox unit testing 2016-05-12 08:36:14 -07:00
setup.py Fix license in setup.py 2016-05-12 13:51:17 -07:00
test-requirements.txt Add test-requirements for py27 testing 2016-05-12 09:24:14 -07:00
tox.ini add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07: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 http://www.python-ldap.org/ 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