Skip to main content

A simple connector pool for python-ldap.

Project description

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.

It is possible to check the state of the pool by representing the pool as a string:

from ldappool import ConnectionManager

cm = ConnectionManager('ldap://localhost', size=2)

.. do something with cm ..

print(cm)

This will result in output similar to this table:

+--------------+-----------+----------+------------------+--------------------+------------------------------+
| Slot (2 max) | Connected |  Active  |       URI        | Lifetime (600 max) |           Bind DN            |
+--------------+-----------+----------+------------------+--------------------+------------------------------+
|      1       | connected | inactive | ldap://localhost |  0.00496101379395  | uid=tuser,dc=example,dc=test |
|      2       | connected | inactive | ldap://localhost |  0.00532603263855  | uid=tuser,dc=example,dc=test |
+--------------+-----------+----------+------------------+--------------------+------------------------------+

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 uri option will accept a comma or whitespace separated list of LDAP server URIs to allow for failover behavior when connection errors are encountered. Connections will be attempted against the servers in order, with retry_max attempts per URI before failing over to the next server.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ldappool-2.4.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

ldappool-2.4.1-py2.py3-none-any.whl (12.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file ldappool-2.4.1.tar.gz.

File metadata

  • Download URL: ldappool-2.4.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2

File hashes

Hashes for ldappool-2.4.1.tar.gz
Algorithm Hash digest
SHA256 23edef09cba4b1ae764f1ddada828d8e39d72cf32a457e599f5a70064310ea00
MD5 dd2bbfd646878b3f5358de08996f4f32
BLAKE2b-256 d9facf16c80de9a76a6436f591badcaec41b833274fb1db7b4354a7e801a7f2a

See more details on using hashes here.

Provenance

File details

Details for the file ldappool-2.4.1-py2.py3-none-any.whl.

File metadata

  • Download URL: ldappool-2.4.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2

File hashes

Hashes for ldappool-2.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 24c52680a12740fd583bde94715cd9be7eed79e47d0437e8e83d981a125e80d2
MD5 b827f1b9530f51facb4da95c5d8bd093
BLAKE2b-256 a4f2e62f2f12a871b7bba62d446a20eec8362cae6fa4c55c3d73c587204dc551

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page