Ensure Swift Rings backup container and URLs

Swift Rings backup container and URLs for it are created only
during deploy but there is possibility of minor update or
change of deployment when they should be created. Adding them
in plan_management update_deployment_plan fixes these cases.

Closes-Bug: #1695778
Resolves: rhbz#1455616
Change-Id: Ifcedd54da5c74f12c863b8ec63679360673dd8f6
(cherry picked from commit bfabb3f575)
This commit is contained in:
Lukas Bezdicka 2017-05-29 22:54:33 +02:00
parent 67599bbc80
commit 5046bea8c9
3 changed files with 117 additions and 40 deletions

View File

@ -128,7 +128,7 @@ workflows:
queue_name: <% $.queue_name %>
on-complete:
- run_validations: <% $.run_validations %>
- check_container: <% not $.run_validations %>
- create_swift_rings_backup_plan: <% not $.run_validations %>
run_validations:
workflow: tripleo.validations.v1.run_groups
@ -137,7 +137,7 @@ workflows:
- 'pre-deployment'
plan: <% $.container %>
queue_name: <% $.queue_name %>
on-success: check_container
on-success: create_swift_rings_backup_plan
on-error: set_validations_failed
set_validations_failed:
@ -146,45 +146,14 @@ workflows:
status: FAILED
message: <% task(run_validations).result %>
check_container:
action: swift.head_container container=<% $.container %>
on-success: get_tempurl
on-error: create_container
create_container:
action: tripleo.plan.create_container container="<% $.container %>-swift-rings"
on-success: get_tempurl
get_tempurl:
action: tripleo.swift.tempurl
on-success: set_get_tempurl
input:
container: "<% $.container %>-swift-rings"
obj: "swift-rings.tar.gz"
set_get_tempurl:
action: tripleo.parameters.update
input:
parameters:
SwiftRingGetTempurl: <% task(get_tempurl).result %>
container: <% $.container %>
on-success: put_tempurl
put_tempurl:
action: tripleo.swift.tempurl
on-success: set_put_tempurl
input:
container: "<% $.container %>-swift-rings"
obj: "swift-rings.tar.gz"
method: "PUT"
set_put_tempurl:
action: tripleo.parameters.update
input:
parameters:
SwiftRingPutTempurl: <% task(put_tempurl).result %>
container: <% $.container %>
create_swift_rings_backup_plan:
workflow: tripleo.swift_rings_backup.v1.create_swift_rings_backup_container_plan
on-success: get_heat_stack
on-error: create_swift_rings_backup_plan_set_status_failed
input:
container: <% $.container %>
queue_name: <% $.queue_name %>
use_default_templates: true
get_heat_stack:
action: heat.stacks_get stack_id=<% $.container %>
@ -208,6 +177,12 @@ workflows:
on-success: send_message
on-error: set_deployment_failed
create_swift_rings_backup_plan_set_status_failed:
on-success: send_message
publish:
status: FAILED
message: <% task(create_swift_rings_backup_plan).result %>
set_deployment_failed:
on-success: send_message
publish:

View File

@ -76,6 +76,15 @@ workflows:
- queue_name: tripleo
- generate_passwords: true
tasks:
create_swift_rings_backup_plan:
workflow: tripleo.swift_rings_backup.v1.create_swift_rings_backup_container_plan
on-success: update_plan
on-error: create_swift_rings_backup_plan_set_status_failed
input:
container: <% $.container %>
queue_name: <% $.queue_name %>
use_default_templates: true
update_plan:
action: tripleo.plan.update container=<% $.container %>
on-success:
@ -99,6 +108,12 @@ workflows:
status: SUCCESS
message: <% task(update_plan).result %>
create_swift_rings_backup_plan_set_status_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(create_swift_rings_backup_plan).result %>
update_plan_set_status_failed:
on-success: notify_zaqar
publish:

View File

@ -0,0 +1,87 @@
---
version: '2.0'
name: tripleo.swift_rings_backup.v1
description: TripleO Swift Rings backup container Deployment Workflow v1
workflows:
create_swift_rings_backup_container_plan:
description: >
This plan ensures existence of container for Swift Rings backup.
input:
- container
- queue_name: tripleo
tasks:
check_container:
action: swift.head_container container=<% $.container %>
on-success: get_tempurl
on-error: create_container
create_container:
action: tripleo.plan.create_container container="<% $.container %>-swift-rings"
on-error: set_create_container_failed
on-success: get_tempurl
get_tempurl:
action: tripleo.swift.tempurl
on-success: set_get_tempurl
input:
container: "<% $.container %>-swift-rings"
obj: "swift-rings.tar.gz"
set_get_tempurl:
action: tripleo.parameters.update
input:
parameters:
SwiftRingGetTempurl: <% task(get_tempurl).result %>
container: <% $.container %>
on-success: put_tempurl
put_tempurl:
action: tripleo.swift.tempurl
on-success: set_put_tempurl
input:
container: "<% $.container %>-swift-rings"
obj: "swift-rings.tar.gz"
method: "PUT"
set_put_tempurl:
action: tripleo.parameters.update
input:
parameters:
SwiftRingPutTempurl: <% task(put_tempurl).result %>
container: <% $.container %>
on-success: set_status_success
on-error: set_put_tempurl_failed
set_status_success:
on-success: notify_zaqar
publish:
status: SUCCESS
message: <% task(set_put_tempurl).result %>
set_put_tempurl_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(set_put_tempurl).result %>
set_create_container_failed:
on-success: notify_zaqar
publish:
status: FAILED
message: <% task(create_container_failed).result %>
notify_zaqar:
action: zaqar.queue_post
input:
queue_name: <% $.queue_name %>
messages:
body:
type: tripleo.swift_rings_backup.v1.create_swift_rings_backup_container_plan
payload:
status: <% $.status %>
message: <% $.get('message', '') %>
execution: <% execution() %>
on-success:
- fail: <% $.get('status') = "FAILED" %>