5435d9d823
In changes12f7345
,c2fb9b0
,6051a74
,c7b01eb
andab946c4
Mistral Workflows were marked as failed if they sent a Zaqar message with the status "FAILED". This is correct, but it turns out there is an easier way to do it. Mistral has a engine command designed for this purpose, using it removes some of the duplication we have incurred. We use on-success rather than on-complete to surface the best error on the workflow. If the Zaqar queue post fails, then the workflow will fail with this error. If, on-complete we then manually mark the workflow as failed it will ovrwrite the Zaqar error with a generic one. Closes-Bug: #1664918 Related-Bug: #1651704 Change-Id: I9ef9cfef1b8740a535e005769ec0c3ad67ecb103
66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
---
|
|
version: '2.0'
|
|
name: tripleo.scale.v1
|
|
description: TripleO Overcloud Deployment Workflows v1
|
|
|
|
workflows:
|
|
|
|
delete_node:
|
|
description: deletes given overcloud nodes and updates the stack
|
|
|
|
input:
|
|
- container
|
|
- nodes
|
|
- timeout: 240
|
|
- queue_name: tripleo
|
|
|
|
tasks:
|
|
|
|
delete_node:
|
|
action: tripleo.scale.delete_node nodes=<% $.nodes %> timeout=<% $.timeout %> container=<% $.container %>
|
|
on-success: wait_for_stack_in_progress
|
|
on-error: set_delete_node_failed
|
|
|
|
set_delete_node_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(delete_node).result %>
|
|
|
|
wait_for_stack_in_progress:
|
|
workflow: tripleo.stack.v1.wait_for_stack_in_progress stack=<% $.container %>
|
|
on-success: wait_for_stack_complete
|
|
on-error: wait_for_stack_in_progress_failed
|
|
|
|
wait_for_stack_in_progress_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(wait_for_stack_in_progress).result %>
|
|
|
|
wait_for_stack_complete:
|
|
workflow: tripleo.stack.v1.wait_for_stack_complete_or_failed stack=<% $.container %>
|
|
on-success: send_message
|
|
on-error: wait_for_stack_complete_failed
|
|
|
|
wait_for_stack_complete_failed:
|
|
on-success: send_message
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(wait_for_stack_complete).result %>
|
|
|
|
send_message:
|
|
action: zaqar.queue_post
|
|
retry: count=5 delay=1
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
messages:
|
|
body:
|
|
type: tripleo.scale.v1.delete_node
|
|
payload:
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|
|
on-success:
|
|
- fail: <% $.get('status') = "FAILED" %>
|