cohydra.workflow¶
Allow fault-injection by executing a sequence of instructions.
Classes
A workflow is a contains a list of commands for planned execution during the simulation. |
-
class
cohydra.workflow.Workflow(task)[source]¶ Bases:
objectA workflow is a contains a list of commands for planned execution during the simulation.
This is based on the work of Arne Boockmeyer’s dasylab-testbed.
Note
Every
Workflowcreates a thread.Example
Please use it with a decorator provided by the
Scenario:@scenario.workflow def workflow_function_name(workflow): do_something() workflow.sleep(5) do_another_thing()
- Parameters
task (callable) – The function to be executed in the workflow.
-
stop_event= None¶ An event indicating when to stop the workflow thread.
-
current_waiting_events= None¶ These events are waiting on some condition to come true.
-
task= None¶ The function being executed by the workflow thread.
-
stop()[source]¶ Stop the workflow.
Warning: Do not call this manually. This is done by the
Simulation.
-
start()[source]¶ Start the workflow.
Warning: Do not call this manually. This is done by the
Simulation.
-
sleep(duration)[source]¶ Sleep and wait.
- Parameters
duration (float) – The duration to sleep in seconds.
-
wait_until(expression, expected_result, global_variables, local_variables)[source]¶ Wait until an expression is equal to a specific value.
Like
sleep()this is a blocking call.- Parameters
expression – The expression to evaluate. Warning: not all expressions are supported. See https://github.com/active-expressions/active-expressions-static-python for further infos.
expected_result – The value to compare againt.
global_variables – In order to work properly, you need to pass the global variable space with
globals().local_variables – In order to work properly, you need to pass the global variable space with
locals().
-
wait_until_true(expression, global_variables, local_variables)[source]¶ Wait until an expression is equal to True.
Like
sleep()this is a blocking call.- Parameters
expression – The expression to evaluate. Warning: not all expressions are supported. See https://github.com/active-expressions/active-expressions-static-python for further infos.
global_variables – In order to work properly, you need to pass the global variable space with
globals().local_variables – In order to work properly, you need to pass the global variable space with
locals().
Inheritance Diagramm
