UI components for rerunning a failed workflow or step
Background
When something has gone wrong with a workflow or workflow step, a user should be able to rerun it.
Scenarios:
- One or more workflow steps have failed. This includes steps (jobs) that have timed out.
- One or more workflow steps have been invalidated. Note: Rerun should be disallowed if invalidation was not propagated.
Note: If an entire workflow has been invalidated, it should not be possible to rerun. For this scenario, a new order/workflow should instead be created.
Implementation
Workflow
Button for workflow: "Rerun"
Place after "Invalidate" button on workflow row (but consider a new modal for both)
Rules:
If no FAILED or invalidated steps in workflow: Disable/hide button
Else, on button press:
+ Warning/explanatory message
+ Confirm
For all steps that are FAILED or are invalidated (with propagation): Rerun
Workflow step
Button for workflow step: "Rerun"
Place in Details modal together with "Invalidate" button (to be moved)
Rules:
If step is not FAILED or invalidated (with propagation): Disable/hide button
Else, on button press:
+ Warning/explanatory message
+ Confirm
Rerun step
Note: Start with FAILED scenario, for "invalidated" we need to consider how to handle propagation. Rerun should not be possible in cases where invalidation is done on a single step/artefact without propagation, as this will lead to disconnected, duplicate artefacts. Either:
- Make propagation mandatory (check if propagated, else hide/disable Rerun button)
- Provide options when pushing Rerun button, e.g. button "Propagate invalidation for all steps that are already invalidated"
- Automatically perform propagation for all steps/artefacts that are already invalidated
Other, related tasks:
- Hide "Invalidate" button for workflow step when no output artefacts (status: pending or running)
- Add "Invalidate" button for Input artefacts
- Add status: RUNNING
- Add possibility to set specific time-outs for individual steps