A tool to wait for services and execute command. Useful for Docker containers that depend on slow to start services (like almost everything).
Project description
A tool to wait for services and execute command. Useful for Docker containers that depend on slow to start services (like almost everything).
- Free software: BSD license
Installation
pip install holdup
Documentation
Usage: holdup [-h] [-t SECONDS] [-T SECONDS] [-i SECONDS] [-n] service [service ...] [-- command [arg [arg ...]]]
Wait for services to be ready and optionally exec command.
- Positional arguments:
- service
- A service to wait for. Supported protocols: “tcp://host:port/”, “path:///path/to/something”, “unix:///path/to/domain.sock”, “eval://expr”, “http://urn”, “http://urn” (status 200 expected). Join protocols with a comma to make holdup exit at the first passing one, eg: tcp://host:1,host:2 or tcp://host:1,tcp://host:2 are equivalent and mean “any that pass”.
- command
- An optional command to exec.
- Optional arguments:
-h, --help show this help message and exit -t SECONDS, --timeout SECONDS Time to wait for services to be ready. Default: 5.0 -T SECONDS, --check-timeout SECONDS Time to wait for a single check. Default: 1.0 -i SECONDS, --interval SECONDS How often to check. Default: 0.2 -n, --no-abort Ignore failed services. This makes holdup return 0 exit code regardless of services actually responding.
Development
To run the all tests run:
tox
Note, to combine the coverage data from all the tox environments run:
Windows | set PYTEST_ADDOPTS=--cov-append tox |
---|---|
Other | PYTEST_ADDOPTS=--cov-append tox |
Changelog
1.5.0 (2017-06-07)
- Added an eval://expression protocol for weird user-defined checks.
1.4.0 (2017-03-27)
- Added support for HTTP(S) check.
1.3.0 (2017-02-21)
- Add support for “any” service check (service syntax with comma).
1.2.1 (2016-06-17)
- Handle situation where internal operations would take more than planned.
1.2.0 (2016-05-25)
- Added a file check.
1.1.0 (2016-05-06)
- Removed debug print.
- Added --interval option for how often to check. No more spinloops.
1.0.0 (2016-04-22)
- Improved tests.
- Always log to stderr.
0.1.0 (2016-04-21)
- First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size holdup-1.5.0-py2.py3-none-any.whl (8.4 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size holdup-1.5.0.tar.gz (16.2 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for holdup-1.5.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 516f4e707bd7e714b61ef084c897b5fdf6b3b0d4c286065fba85cf499ed5364d |
|
MD5 | f4e66debd2cb7560e28a1fec3e7c47fa |
|
BLAKE2-256 | 5d839a1d8d866793c9a8f5f3a978a0a6d732df7613b480c1e25ff7b1885197b0 |