[openstack-dev] [Mistral] Proposal for the Resume Feature

W Chan m4d.coder at gmail.com
Mon Jun 15 23:44:54 UTC 2015

I want to continue the discussion on the workflow "resume" feature.

Resuming from our last conversation @
I don't think we should limit how users resume. There may be different
possible scenarios. User can fix the environment or condition that led to
the failure of the current task and the user wants to just re-run the
failed task.  Or user can actually fix the environment/condition which
include fixing what the task was doing, then just want to continue the next
set of task(s).

The following is a list of proposed changes.

   1. A new CLI operation to resume WF (i.e. mistral workflow-resume).
      1. If no additional info is provided, assume this WF is manually
      paused and there are no task/action execution errors. The WF state is
      updated to RUNNING. Update using the put method @
ExecutionsController. The
      put method checks that there's no task/action execution errors.
      2. If WF is in an error state
         1. To resume from failed task, the workflow-resume command
         requires the WF execution ID, task name, and/or task input.
         2. To resume from failed with-items task
            1. Re-run the entire task (re-run all items) requires WF
            execution ID, task name and/or task input.
            2. Re-run a single item requires WF execution ID, task name,
            with-items index, and/or task input for the item.
            3. Re-run selected items requires WF execution ID, task name,
            with-items indices, and/or task input for each items.
         3. To resume from the next task(s), the workflow-resume command
         requires the WF execution ID, failed task name, output for
the failed task,
         and a flag to skip the failed task.

   1. Make ERROR -> RUNNING as valid state transition @ is_valid_transition

   1. Add a comments field to Execution model. Add a note that indicates
   the execution is launched by workflow-resume. Auto-populated in this case.

   1. Resume from failed task.
      1. Re-run task with the same task inputs >> POST new action execution
      for the task execution @ ActionExecutionsController
      2. Re-run task with different task inputs >> POST new action
      execution for the task execution, allowed for different input @

   1. Resume from next task(s).
      1. Inject a noop task execution or noop action execution (undecided
      yet) for the failed task with appropriate output.  The spec is an adhoc
      spec that copies conditions from the failed task. This provides
some audit
      functionality and should trigger the next set of task executions (in case
      of branching and such).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150615/c99685aa/attachment-0001.html>

More information about the OpenStack-dev mailing list