---
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: <% $.get('status', 'SUCCESS') %>
          execution: <% execution() %>
          message: <% $.get('message', '') %>
