Files
deb-python-taskflow/taskflow/examples/reverting_linear.py
Changbin Liu 9443506b93 Rename "revert_with" => "revert" and "execute_with" to "execute"
"_with" is kind of obvious, and also less typing for users of this
library

Change-Id: I99f597dae5612cc44cc7f19ae144776f63d32bac
2013-08-30 17:16:54 -04:00

52 lines
1.0 KiB
Python

import logging
import os
import sys
logging.basicConfig(level=logging.ERROR)
my_dir_path = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.join(os.path.join(my_dir_path, os.pardir),
os.pardir))
from taskflow import decorators
from taskflow.patterns import linear_flow as lf
def undo_call(context, result, cause):
print("Calling %s and apologizing." % result)
@decorators.task(revert=undo_call)
def call_jim(context):
print("Calling jim.")
print("Context = %s" % (context))
return context['jim_number']
@decorators.task(revert=undo_call)
def call_joe(context):
print("Calling joe.")
print("Context = %s" % (context))
return context['joe_number']
@decorators.task
def call_suzzie(context):
raise IOError("Suzzie not home right now.")
flow = lf.Flow("call-them")
flow.add(call_jim)
flow.add(call_joe)
flow.add(call_suzzie)
context = {
"joe_number": 444,
"jim_number": 555,
}
try:
flow.run(context)
except Exception as e:
print "Flow failed: %r" % e