当salt
或salt-call
CLI命令导致错误时,该命令将以返回码1
返回。错误情况包括以下内容:
- 运行状态时遇到错误,或任何一个状态返回False结果
- 引发任何异常
- 对于远程执行功能,当返回数据是带有名称为result或Success的键的Python字典时,其值为False
除上述情况外,如果状态或远程执行功能在__context__字典的retcode
键中设置了非零值,则该命令将以返回码1
退出。对于那些开发自定义状态和执行模块的用户,请使用 __context __ ['retcode']
会是一种有用的方式来表示发生了错误:
if something_went_wrong:
__context__['retcode'] = 42
实际上,这就是状态表示它们已失败的方式。 不同的情况会导致在__context__
字典中设置不同的代码:
- 在状态编译器中遇到任何错误(缺少SLS文件等)时,设置为
1
- 当任何状态返回False结果时设置
2
- 当在运行状态之前无法编译pillar数据时,设置为
5
当--retcode-passthrough
标志与salt-call
一起使用时,salt-call
将以在__context__
字典中设置的retcode
退出,而不是默认行为,对于任何的错误情况,默认行为仅以1
退出。