2015-05-12 3 views
2

Я пытаюсь создать скрипт с использованием 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

Вы знаете, что все это делает код создает класс 'FabricException' с довольно странным body‽ – BlackJack

+0

у меня есть просто отредактирован. По какой-то причине получается какой-то смешной формат при попытке добавить основной класс. Спасибо за это –

ответ

0

Если все, что вы делаете регистрации этой ошибки, то почему бы не использовать менеджер контекста, и есть блок кода только предупредить. Используя оба этих параметра: env.warn_only и env.skip_bad_hosts.

рефов:

Смежные вопросы