tripleo-common/workbooks/scale.yaml
Dougal Matthews 4c24a04977 Use the standard messaging in the scale workbook
Update the scale workbook to use the standard message sending
workflow. This workflow reduces the boilerplate that is copied between
workflows by defining the message structure, providing the retry logic
and ensuring the task on a "FAILED" message.

The workflow also offers optional persistence in Swift. If the plan name
is given to the workflow it will store the messages in a Swift container
named <plan_name>-messages.

Change-Id: I906e0ae92bcd084f4bf6ec669d6be0f71dc7a29b
Related-Bug: #1757372
2018-06-18 16:54:29 +01:00

63 lines
1.7 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
tags:
- tripleo-common-managed
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:
workflow: tripleo.messaging.v1.send
input:
queue_name: <% $.queue_name %>
type: <% execution().name %>
status: <% $.status %>
execution: <% execution() %>
message: <% $.get('message', '') %>