Fail the scale 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: I73c5965627e45b8151f67aaf8025369bf6c870bb
Related-Bug: #1651704
This commit is contained in:
Dougal Matthews 2017-01-11 14:21:06 +00:00
parent 8362e4ac74
commit c2fb9b025d

View File

@ -51,3 +51,8 @@ workflows:
status: <% $.get('status', 'SUCCESS') %> status: <% $.get('status', 'SUCCESS') %>
message: <% $.get('message', '') %> message: <% $.get('message', '') %>
execution: <% execution() %> execution: <% execution() %>
on-success:
- fail_workflow: <% $.get('status') = "FAILED" %>
fail_workflow:
action: std.fail