使用 CLI,我可以输入以下内容:
salt '*' test.ping -v
结果输出如下:
minion_A:
True
minion_B:
True
minion_C:
True
minion_D:
Minion did not return
如何使用 LocalClient 获得相同的结果? 这是我目前正在尝试的,并且只返回响应为 True 的 minions:
self.localClient.cmd('*', 'test.ping', ['-v'])
更新:
根据指示,命令中可能存在带有 arg 元组的 bug,我还尝试了以下操作:
args = ('-v',)
return self.localClient.cmd('*', 'test.ping', arg=args)
...遗憾的是,还是没有成功
请您参考如下方法:
test.ping 函数不接受任何参数,-v 被传递给 salt 命令。请参阅:ping
下面两个命令是一样的:
# salt '*' test.ping -v
Executing job with jid 20140825123756314894
-------------------------------------------
palabras:
True
# salt '*' -v test.ping
Executing job with jid 20140825124044472307
-------------------------------------------
palabras:
True
要获取原始输出的原始版本,请使用以下代码。 (您可以直接调用 SaltCMD 以获得完整的格式化输出,但它会使用自己的 LocalClient。)
来源
from pprint import pprint
import salt.client
local = salt.client.LocalClient()
pprint( local.cmd_full_return(
'*', 'test.ping', verbose=True,
) )
输出
Executing job with jid 20140825131629740741
-------------------------------------------
{'palabras': {'ret': True, 'success': True}}
