0

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

运行 curator,无论处理发生什么,我总是得到一个退出代码 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
4

1 回答 1

1

我是策展人的作者。我没有在 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, on port 9200),我很想听听结果。您可以python setup.py test从克隆的存储库 ( https://github.com/elastic/curator/curator.git ) 运行测试。一定要测试5.5分支,而不是master. 这与5.5.2撰写本文时的当前版本同步。

于 2018-05-19T15:44:43.287 回答