一个用于等待服务和执行命令的工具。对于依赖于缓慢启动的服务(如几乎所有服务)的Docker容器很有用。
项目描述
一个用于等待服务和执行命令的工具。对于依赖于缓慢启动的服务(如几乎所有服务)的Docker容器很有用。
自由软件:BSD 2-Clause License
安装
目前holdup仅发布到PyPI和hub.docker.com。
从PyPI安装
pip install holdup
它没有依赖项,除了可选的PostgreSQL检查支持,您可以使用以下命令安装它:
pip install 'holdup[pg]'
您还可以使用以下命令安装开发版本:
pip install https://github.com/ionelmc/python-holdup/archive/master.zip
备用安装(Docker镜像)
示例
docker run --rm ionelmc/holdup tcp://foobar:1234
请注意,这会有一些限制
执行 命令 没什么意义,因为 holdup 将在其自己的容器中运行
你可能需要额外的网络配置才能访问服务
在不公开容器中的 docker 守护进程的情况下,你无法在容器中使用 docker run
用法
用法:holdup [-h] [-t 秒] [-T 秒] [-i 秒] [-n] 服务 [服务 …] [– 命令 [参数 [参数 …]]]
等待服务准备就绪,可选执行命令。
- 位置参数
- 服务
等待的服务。支持的协议: “tcp://host:port/”, “path:///path/to/something”, “unix:///path/to/domain.sock”, “eval://expr”, “pg://user:password@host:port/dbname” (“postgres” 和 “postgresql” 也可接受), “http://urn”, “https://urn”, “https+insecure://urn” (http* 预期状态为 200)。使用逗号连接协议,使 holdup 在第一个通过时退出,例如: “tcp://host:1,host:2” 或 “tcp://host:1,tcp://host:2” 是等效的,意味着 任何通过。
- 命令
可选的执行命令。
- 可选参数
- -h, --help
显示此帮助信息并退出
- -t 秒, --timeout 秒
等待服务准备就绪的时间。默认:60.0
- -T 秒, --check-timeout 秒
等待单个检查的时间。默认:1.0
- -i 秒, --interval 秒
检查的频率。默认:0.2
- -v, --verbose
详细模式。
- --verbose-passwords
禁用 PostgreSQL/HTTP 密码掩码。
- -n, --no-abort
忽略失败的服务。这使得 holdup 返回 0 退出代码,而不管服务是否实际响应。
- --insecure
禁用 HTTPS 服务的 SSL 证书验证。
- --version
显示 holdup 包的版本及其位置,然后退出。
示例
holdup tcp://foobar:1234 -- django-admin ...
文档
开发
要运行所有测试,请运行
tox
注意,要合并所有 tox 环境的覆盖率数据,请运行
Windows |
set PYTEST_ADDOPTS=--cov-append tox |
---|---|
其他 |
PYTEST_ADDOPTS=--cov-append tox |
变更日志
5.1.1 (2024-05-21)
如果没有实际指定的凭据,不要显示 http 协议的认证掩码。
5.1.0 (2024-04-12)
修复了当指定端口时 http 检查的错误处理。
更改了 User-Agent 标头,并从 Host 标头中删除了端口,用于 http 检查。
将大量代码重构到一个单独的 holdup.checks 模块。
5.0.0 (2024-04-11)
在 Github 发布中添加了静态二进制文件(使用 Pyinstaller 在 Alpine 上构建,作为静态二进制文件)。
停止支持 Python 3.7,并在测试套件中添加了 Python 3.12。
4.0.0 (2023-02-14)
添加了对 psycopg 3 的支持(现在 holdup[pg] 扩展将需要它)。目前仍然支持旧的 psycopg2。
停止支持 Python 3.6,并在测试套件中添加了 Python 3.11。
3.0.0 (2022-03-20)
停止支持 Python 2。
将 CI 从 Travis 切换到 GitHub Actions。
修复了密码掩码的漏洞(它对 postgresql URI 不起作用)。
2.0.0 (2021-04-08)
添加了对密码掩码的支持(使用 --verbose-passwords 可禁用此功能)。
重新设计了检查显示,输出可能略有不同。
添加了对基本和摘要 HTTP 认证的支持。
在 https://hub.docker.com/r/ionelmc/holdup(基于 Alpine)上发布了 Docker 镜像。
1.9.0 (2021-01-11)
添加了 --version 参数。
将详细输出中的密码在 postgresql 检查中进行了掩码。
1.8.1 (2020-12-16)
增加对 PostgreSQL 12+ 客户端的支持(在 connect_timeout 上进行严格的整数类型检查)。浮点数现在转换为整数。
1.8.0 (2019-05-28)
添加了 PostgreSQL 检查。它处理了 数据库系统正在启动 的问题。由 Dan Ailenei 在 6 中贡献。
修改输出使其更清晰和简洁。
打印时引用参数(检查)。
“任何”检查给出使其通过的确切信息。
移除重复信息。
简化了“AnyCheck”的内部结构。
1.7.0 (2018-11-24)
增加了对跳过 HTTPS 服务 SSL 证书验证的支持(--insecure 选项和 https+insecure 协议)。由 Mithun Ayachit 在 2 中贡献。
1.6.0 (2018-03-22)
增加了详细模式(-v 或 --verbose)。
将默认超时时间更改为 60 秒(从 5 秒)。
1.5.0 (2017-06-07)
添加了 eval://expression 协议,用于奇特的用户定义检查。
1.4.0 (2017-03-27)
增加了对 HTTP(S) 检查的支持。
1.3.0 (2017-02-21)
添加了对“任何”服务检查(以逗号分隔的服务语法)的支持。
1.2.1 (2016-06-17)
处理内部操作时间超过计划的情况。
1.2.0 (2016-05-25)
添加了文件检查。
1.1.0 (2016-05-06)
移除了调试打印。
添加了 --interval 选项,用于指定检查的频率。不再有旋转循环。
1.0.0 (2016-04-22)
改进了测试。
始终记录到 stderr。
0.1.0 (2016-04-21)
在 PyPI 上首次发布。
项目详情
下载文件
下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于 安装软件包 的信息。
源分布
构建分布
holdup-5.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 244981e3546b4f9a1e04010eb73f52dbab0cc6dd2dcae0edbebcb71e2815b7eb |
|
MD5 | f9a32e292952d8e28f95d65cef7cb2b0 |
|
BLAKE2b-256 | f4fbcbf09e6f2d68291dc3bb7508190affb8586f85757a2c0026b3f553017861 |
holdup-5.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3826fd9a9a88f311418c6f79cf12e69bc0f039706f4bde0fc9fd4b2dd8108b76 |
|
MD5 | da000ed59a42398bb6e632af511cb55f |
|
BLAKE2b-256 | 100cd6e2f8a51412ca039555639c415e3cefbeb850bed24899abccdbadfc9200 |