Elasticsearch Curator 退出代码

Elasticsearch Curator Exit Codes

我正在使用 Elasticsearch Curator 版本 5.5(Windows zip 包)CLI 并尝试在 运行 之后获取退出代码,但文档和我得到的内容似乎没有匹配。 (文档:https://www.elastic.co/guide/en/elasticsearch/client/curator/current/exit-codes.html

运行 策展人,无论处理过程发生什么,我总是得到 0 的退出代码,即使我的配置文件或操作文件格式不正确或丢失。如果我指定了错误的配置文件位置,我可以获得 2 的退出代码,但该退出代码未在文档中列出。我是否遗漏了什么或以某种方式获得了错误的退出代码?我希望如果配置文件或操作文件的语法有错误,我应该得到 -1 退出代码。如果在 运行 操作文件期间出现错误,退出代码 会更改吗?

我在 PowerShell 中 运行 获取退出代码的示例:

.\curator.exe --config Path\To\curator.yml --dry-run Path\To\action.yml
$LastExitCode #This always returns 0 unless the path to curator.yml is wrong

我是 Curator 的作者。我没有在 Windows 中进行广泛的测试,但是在 Travis CI 中 运行 的测试套件在 python 2.7、3.5 和 3.6 的最新次要版本中进行了测试,以及 Elasticsearch 5.x 和 6.x 的那些(这是一个相当大的矩阵)。测试确实包括许多检查特定退出代码的测试。

我不是 Windows 开发人员,并且无法以任何程度的权威来说明退出代码在 Windows 中的行为是否与在 POSIX 中的行为相同(Unix) 环境。我根本没有将任何 2 退出代码显式编码到 Curator 中,所以退出代码让我感到惊讶。代码 -101 在许多情况下都是预期的,并在特定测试中涵盖。具体来说,只有操作失败和空列表条件(如果 ignore_empty_listfalse)才会触发退出代码 1,而非特定异常和命令行错误配置将以 -1。其他一切都应该以 0 退出。我不知道为什么您会收到 2 退出代码,因为这不是我提供的。

我不记得我曾在 Windows 中执行过测试套件。如果您可以启动本地 Elasticsearch 节点(127.0.0.1,在端口 9200 上),我很想听听结果。您可以从克隆存储库 (https://github.com/elastic/curator/curator.git) 运行 使用 python setup.py test 进行测试。请务必测试 5.5 分支,而不是 master。这与当前版本同步,在撰写本文时为 5.5.2