tripleo-common/workbooks/plan_management.yaml

181 lines
5.3 KiB
YAML

---
version: '2.0'
name: tripleo.plan_management.v1
description: TripleO Overcloud Deployment Workflows v1
workflows:
create_deployment_plan:
input:
- container
- queue_name: tripleo
tasks:
create_plan:
action: tripleo.create_plan container=<% $.container %>
on-success: process_templates
on-error: create_plan_set_status_failed
process_templates:
action: tripleo.process_templates container=<% $.container %>
on-success: set_status_success
on-error: process_templates_set_status_failed
set_status_success:
on-success: notify_zaqar
publish:
status: SUCCESS
message: <% task(process_templates).result %>
create_plan_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(create_plan).result %>
process_templates_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(process_templates).result %>
notify_zaqar:
action: zaqar.queue_post
input:
queue_name: <% $.queue_name %>
messages:
body:
type: tripleo.plan_management.v1.create_deployment_plan
payload:
status: <% $.status %>
message: <% $.message or '' %>
execution: <% execution() %>
update_deployment_plan:
input:
- container
- queue_name: tripleo
tasks:
update_plan:
action: tripleo.plan.update container=<% $.container %>
on-success: process_templates
on-error: update_plan_set_status_failed
process_templates:
action: tripleo.process_templates container=<% $.container %>
on-success: set_status_success
on-error: process_templates_set_status_failed
set_status_success:
on-success: notify_zaqar
publish:
status: SUCCESS
message: <% task(update_plan).result %>
update_plan_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(update_plan).result %>
process_templates_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(process_templates).result %>
notify_zaqar:
action: zaqar.queue_post
input:
queue_name: <% $.queue_name %>
messages:
body:
type: tripleo.plan_management.v1.update_deployment_plan
payload:
status: <% $.status %>
message: <% $.message or '' %>
execution: <% execution() %>
create_default_deployment_plan:
input:
- container
- queue_name: tripleo
tasks:
verify_container_doesnt_exist:
action: swift.head_container container=<% $.container %>
on-success: notify_zaqar
on-error: verify_environment_doesnt_exist
publish:
status: FAILED
message: "Unable to create plan. The Swift container already exists"
verify_environment_doesnt_exist:
action: mistral.environments_get name=<% $.container %>
on-success: notify_zaqar
on-error: create_container
publish:
status: FAILED
message: "Unable to create plan. The Mistral environment already exists"
create_container:
action: tripleo.create_container container=<% $.container %>
on-success: upload_to_container
on-error: container_set_status_failed
upload_to_container:
action: tripleo.upload_default_templates container=<% $.container %>
on-success: create_plan
on-error: upload_set_status_failed
create_plan:
action: tripleo.create_plan container=<% $.container %>
on-success: plan_process_templates
on-error: plan_set_status_failed
plan_process_templates:
action: tripleo.process_templates container=<% $.container %>
on-success: plan_set_status_success
on-error: process_templates_set_status_failed
plan_set_status_success:
on-success: notify_zaqar
publish:
status: SUCCESS
message: <% task(create_plan).result %>
plan_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(create_plan).result %>
process_templates_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(plan_process_templates).result %>
upload_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(upload_to_container).result %>
container_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(create_container).result %>
notify_zaqar:
action: zaqar.queue_post
input:
queue_name: <% $.queue_name %>
messages:
body:
type: tripleo.plan_management.v1.create_default_deployment_plan
payload:
status: <% $.status %>
message: <% $.message or '' %>
execution: <% execution() %>