A simple connector pool for python-ldap and related LDAP libraries.
Go to file
Tony Breeds 0016814c3d Add Constraints support
Adding constraints support to libraries is slightly more complex than
services as the libraries themselves are listed in upper-constraints.txt
which leads to errors that you can't install a specific version and a
constrained version.

This change adds constraints support by also adding a helper script to
edit the constraints to remove .

Change-Id: I41c6b3a2c4875128679b2dd8177425dd9f515ebc
2016-12-21 11:45:22 +11:00
doc add .gitreview and fix ldappool gate 2016-05-12 13:50:05 -07:00
ldappool Expose SERVER_DOWN if connection fails 2016-11-08 16:04:23 +01:00
tools Add Constraints support 2016-12-21 11:45:22 +11:00
.gitignore additional files to ignore in .gitignore 2016-05-12 13:51:59 -07: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 update README to reflect actual ldap dependency 2016-11-12 21:51:00 -05:00
requirements.txt Updated from global requirements 2016-09-30 19:59:55 +00:00
setup.cfg Add py3 info to setup.cfg 2016-05-17 16:51:19 -07:00
setup.py Updated from global requirements 2016-05-17 23:35:40 +00:00
test-requirements.txt Updated from global requirements 2016-10-22 01:20:24 +00:00
tox.ini Add Constraints support 2016-12-21 11:45:22 +11:00

README.rst

ldappool

A simple connector pool for pyldap.

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 pyldap 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://github.com/pyldap/pyldap/ 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

History

Prior to v2.0.0 ldappool required python-ldap. As of v2.0.0 this library now required pyldap, a python 3 compatible fork of python-ldap.