我正在尝试使用结构API(而不是fab文件)创建脚本,并且无法使例外工作。我的想法是,一旦主机出现故障,可能会运行rollback()
函数并写入有关失败主机的日志文件。问题是系统总是退出。这是我的代码:
class FabricException(Exception):
pass
class Main(object):
def __init__(self):
env.password = 'password'
env.user = 'whatever'
command = 'sudo ls -la'
failed = []
env.warn_only = True
env.abort_exeption = FabricException
def runCommand(command):
try:
result = run(command)
except FabricExeption:
print env.host + "failed"
failed.append = env.host
execute(runCommand, command=command, hosts=hosts)
disconnect_all()
if __name__ =="__main__":
main = Main()
答案 0 :(得分:0)
如果您所做的只是记录此故障,为什么不使用上下文管理器,并且仅警告代码块。使用其中一个/两个设置:env.warn_only
和env.skip_bad_hosts
。
参考文献: