在织物上捕捉异常

时间:2015-05-12 11:33:38

标签: python fabric

我正在尝试使用结构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()

1 个答案:

答案 0 :(得分:0)

如果您所做的只是记录此故障,为什么不使用上下文管理器,并且仅警告代码块。使用其中一个/两个设置:env.warn_onlyenv.skip_bad_hosts

参考文献: