flowserv.controller.serial.engine.runner module

Execute a serial workflow for given user input arguments.

flowserv.controller.serial.engine.runner.exec_workflow(steps: List[flowserv.model.workflow.step.WorkflowStep], workers: flowserv.controller.worker.manager.WorkerPool, volumes: flowserv.volume.manager.VolumeManager, result: flowserv.controller.serial.workflow.result.RunResult) flowserv.controller.serial.workflow.result.RunResult

Execute steps in a serial workflow.

The workflow arguments are part of the execution context that is contained in the flowserv.controller.serial.workflow.result.RunResult. The result object is used to maintain the results for executed workflow steps.

Executes workflow steps in sequence. Terminates early if the execution of a workflow step returns a non-zero value. Uses the given worker factory to create workers for steps that are of class flowserv.model.workflow.step.ContainerStep.

Parameters
  • steps (list of flowserv.model.workflow.step.WorkflowStep) – Steps in the serial workflow that are executed in the given context.

  • workers (flowserv.controller.worker.manager.WorkerPool, default=None) – Factory for flowserv.model.workflow.step.ContainerStep steps.

  • volumes (flowserv.volume.manager.VolumeManager) – Manager for storage volumes that are used by the different workers.

  • result (flowserv.controller.serial.workflow.result.RunResult) – Collector for results from executed workflow steps. Contains the context within which the workflow is executed.

Return type

flowserv.controller.worker.result.RunResult