Skip to main content

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.

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

Metadata

Release files for ldappool 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ldappool 3.0.0
File Size Uploaded
ldappool-3.0.0.tar.gz 22.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ldappool 3.0.0
File Interpreter ABI Platform
ldappool-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.1 kB

Release files / ldappool-3.0.0.tar.gz

Download URL ldappool-3.0.0.tar.gz
Size 22.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4bb59b7d6b11407f48ee01a781267e3c8ba98d91f426806ac7208612ae087b86
BLAKE2b-256 checksum
How to use checksums
d89b8c36ccbfd74a32625d7fc0cfe9d3bc71d60237d98fa68e2de2d44359a2bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.8

Release files / ldappool-3.0.0-py3-none-any.whl

Download URL ldappool-3.0.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19eafe96a2af403bb04b2b78bcaf195d6b0e8fe847eeecb1379222493aa96530
BLAKE2b-256 checksum
How to use checksums
a5b70e6e01489b1acf4425b7204d534d7bfedcfe0ce55012ea9d7ed16845f42e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.8

Release history Release notifications | RSS feed

This release

3.0.0 This release

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0

1 release file

0.9

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page