Sto tentando di gestire l'errore su fabric, ma l'esempio che ho visto sui documenti era troppo localizzato per i miei gusti. Devo eseguire azioni di rollback se uno qualsiasi di un certo numero di azioni fallisce. Ho cercato, quindi, di utilizzare contesti per gestire la cosa, in questo modo:Gestione dei guasti con Fabric
@_contextmanager
def failwrapper():
with settings(warn_only=True):
result = yield
if result.failed:
rollback()
abort("********* Failed to execute deploy! *********")
E poi
@task
def deploy():
with failwrapper():
updateCode()
migrateDb()
restartServer()
Purtroppo, quando uno di questi compiti non riescono, non ottengo nulla sul result
.
C'è qualche modo per realizzare questo? O c'è un altro modo di gestire queste situazioni?