From 6051a7446bdf415e18ddc5f25697759ca488be17 Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Wed, 11 Jan 2017 14:23:25 +0000 Subject: [PATCH] Fail the validation 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: I2170afac89e8261c1e2289da8e9220694fadbad0 Related-Bug: #1651704 --- workbooks/validations.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/workbooks/validations.yaml b/workbooks/validations.yaml index 678eec4c7..fa838f878 100644 --- a/workbooks/validations.yaml +++ b/workbooks/validations.yaml @@ -59,6 +59,11 @@ workflows: stdout: <% $.stdout %> stderr: <% $.stderr %> execution: <% execution() %> + on-success: + - fail_workflow: <% $.get('status') = "FAILED" %> + + fail_workflow: + action: std.fail run_validations: input: @@ -109,6 +114,11 @@ workflows: plan: <% $.plan %> status: <% $.get('status', 'SUCCESS') %> execution: <% execution() %> + on-success: + - fail_workflow: <% $.get('status') = "FAILED" %> + + fail_workflow: + action: std.fail run_groups: input: @@ -167,6 +177,11 @@ workflows: plan: <% $.plan %> status: <% $.get('status', 'SUCCESS') %> execution: <% execution() %> + on-success: + - fail_workflow: <% $.get('status') = "FAILED" %> + + fail_workflow: + action: std.fail list: input: