Пример #1
0
 def __init__(self, flow, flow_detail, backend, options):
     super(ActionEngine, self).__init__(flow, flow_detail, backend, options)
     self._runtime = None
     self._compiled = False
     self._compilation = None
     self._compiler = compiler.PatternCompiler(flow)
     self._lock = threading.RLock()
     self._state_lock = threading.RLock()
     self._storage_ensured = False
     # Retries are not *currently* executed out of the engines process
     # or thread (this could change in the future if we desire it to).
     self._retry_executor = executor.SerialRetryExecutor()
Пример #2
0
 def __init__(self, flow, flow_detail, backend, options):
     super(ActionEngine, self).__init__(flow, flow_detail, backend, options)
     self._runtime = None
     self._compiled = False
     self._compilation = None
     self._compiler = compiler.PatternCompiler(flow)
     self._lock = threading.RLock()
     self._storage_ensured = False
     self._validated = False
     # Retries are not *currently* executed out of the engines process
     # or thread (this could change in the future if we desire it to).
     self._retry_executor = executor.SerialRetryExecutor()
     self._inject_transient = strutils.bool_from_string(
         self._options.get('inject_transient', True))
     self._gather_statistics = strutils.bool_from_string(
         self._options.get('gather_statistics', True))
     self._statistics = {}
Пример #3
0
 def _make_runtime(self, flow, initial_state=None):
     compilation = compiler.PatternCompiler(flow).compile()
     flow_detail = pu.create_flow_detail(flow)
     store = storage.Storage(flow_detail)
     # This ensures the tasks exist in storage...
     for task in compilation.execution_graph:
         store.ensure_atom(task)
     if initial_state:
         store.set_flow_state(initial_state)
     task_notifier = notifier.Notifier()
     task_executor = executor.SerialTaskExecutor()
     retry_executor = executor.SerialRetryExecutor()
     task_executor.start()
     self.addCleanup(task_executor.stop)
     r = runtime.Runtime(compilation, store, task_notifier, task_executor,
                         retry_executor)
     r.compile()
     return r
Пример #4
0
 def _make_runtime(self, flow, initial_state=None):
     compilation = compiler.PatternCompiler(flow).compile()
     flow_detail = pu.create_flow_detail(flow)
     store = storage.Storage(flow_detail)
     nodes_iter = compilation.execution_graph.nodes_iter(data=True)
     for node, node_attrs in nodes_iter:
         if node_attrs['kind'] in ('task', 'retry'):
             store.ensure_atom(node)
     if initial_state:
         store.set_flow_state(initial_state)
     atom_notifier = notifier.Notifier()
     task_executor = executor.SerialTaskExecutor()
     retry_executor = executor.SerialRetryExecutor()
     task_executor.start()
     self.addCleanup(task_executor.stop)
     r = runtime.Runtime(compilation, store, atom_notifier, task_executor,
                         retry_executor)
     r.compile()
     return r