跳转到主要内容

一个用于等待服务和执行命令的工具。对于依赖于缓慢启动的服务(如几乎所有服务)的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 ...

文档

https://python-holdup.readthedocs.io/

开发

要运行所有测试,请运行

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 (28.9 kB 查看哈希值)

上传时间

构建分布

holdup-5.1.1-py3-none-any.whl (11.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面