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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ldappool-3.0.0.tar.gz | 22.4 kB | Without provenance | Details for ldappool-3.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ldappool-3.0.0-py3-none-any.whl | Python 3 | none | any | Details for ldappool-3.0.0-py3-none-any.whl |
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
|
Security for ldappool 3.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.