Fail the deployment workflows when sending a "FAILED" message
When Mistral workflows execute a second workflow (a sub-workflow execution), the parent workflow can't easily determine if sub-workflow failed. This is because the failure is communicated via a Zaqar message only and when a workflow ends with a successful Zaqar message it appears have been successful. This problem surfaces because parent workflows should have an "on-error" attribute but it is never called, as the workflow doesn't error. This change marks the workflow as failed if the message has the status "FAILED". Now when a sub-workflow fails, the task that called it should have the on-error triggered. Previously it would always go to on-success. Change-Id: Ic1781bcf3922da61d42970cf2b42c951f83f7a74 Related-Bug: #1651704
This commit is contained in:
parent
8362e4ac74
commit
12f734562c
@ -42,6 +42,11 @@ workflows:
|
||||
stdout: <% task(deploy_config).result.deploy_stdout %>
|
||||
stderr: <% task(deploy_config).result.deploy_stderr %>
|
||||
execution: <% execution() %>
|
||||
on-success:
|
||||
- fail_workflow: <% $.get('status') = "FAILED" %>
|
||||
|
||||
fail_workflow:
|
||||
action: std.fail
|
||||
|
||||
deploy_on_servers:
|
||||
|
||||
@ -97,6 +102,10 @@ workflows:
|
||||
status: FAILED
|
||||
message: <% task(deploy_on_servers).result %>
|
||||
execution: <% execution() %>
|
||||
on-success: fail_workflow
|
||||
|
||||
fail_workflow:
|
||||
action: std.fail
|
||||
|
||||
# Deploys a workload cloud stack
|
||||
deploy_plan:
|
||||
@ -138,3 +147,8 @@ workflows:
|
||||
status: <% $.get('status', 'SUCCESS') %>
|
||||
message: <% $.get('message', '') %>
|
||||
execution: <% execution() %>
|
||||
on-success:
|
||||
- fail_workflow: <% $.get('status') = "FAILED" %>
|
||||
|
||||
fail_workflow:
|
||||
action: std.fail
|
||||
|
Loading…
Reference in New Issue
Block a user