d1619ed9ea
The create_swift_backup_container_plan workflow was getting run on overcloud deploy but not upgrade because it was called only on the task split for the clone_git_repo task. This patch ensures it is run regardless of if the call to clone_git_repo is necessary. The create_swift_backup_container_plan workflow is used by Ceph and Swift so in theory this was a bug for Swift upgrades too. Also, updates rename_ceph_ansible_fetch_directory.yaml's notify_zaqar task to send a meaningful message, as previously the workflow failed because it tried to reference a variable as if it were a task. Change-Id: Ifab82c9a5b0a206c14ae7976d2c1c7f0e9fa3d9d Closes-Bug: #1799945
106 lines
4.0 KiB
YAML
106 lines
4.0 KiB
YAML
---
|
|
version: '2.0'
|
|
name: tripleo.rename_ceph_ansible_fetch_directory.v1
|
|
description: TripleO rename ceph-ansible fetch directory backup in Swift Workflow v1
|
|
|
|
workflows:
|
|
check_and_rename:
|
|
description: >
|
|
If the name of the tarball containing the ceph-ansible fetch directory
|
|
matches the format found in Queens, then rename it to match the format
|
|
expected in Rocky. I.e if temporary_dir-20180915-191756.tar.gz is found
|
|
then rename it to temporary_dir.tar.gz. This workflow is idempotent and
|
|
should be run before upgrading from Queens to Rocky.
|
|
input:
|
|
- container: overcloud
|
|
- queue_name: tripleo
|
|
- container_suffix: "_ceph_ansible_fetch_dir"
|
|
- swift_tar: "temporary_dir.tar.gz"
|
|
tags:
|
|
- tripleo-common-managed
|
|
tasks:
|
|
swift_container:
|
|
publish:
|
|
swift_container: "<% $.container %><% $.container_suffix %>"
|
|
on-complete: verify_container_exists
|
|
|
|
verify_container_exists:
|
|
action: swift.head_container container=<% $.swift_container %>
|
|
on-success: get_object_list
|
|
on-error: verify_container_exists_set_status_failed
|
|
|
|
get_object_list:
|
|
# the get_container result[1] will be a list of objects (even if list is empty)
|
|
action: swift.get_container container=<% $.swift_container %>
|
|
publish:
|
|
object_list: <% task().result[1] %>
|
|
on-success: set_need_rename
|
|
on-error: get_object_list_set_status_failed
|
|
|
|
set_need_rename:
|
|
# if the list is empty, do not rename; otherwise check if name matches queens pattern
|
|
publish:
|
|
need_rename: <% switch($.object_list.len() = 0 => false, $.object_list.len() = 1 => $.object_list.first().get("name").matches("temporary_dir-[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])-(2[0-3]|[01][0-9])[0-5][0-9][0-5][0-9].tar.gz")) %>
|
|
on-success: switch_on_need_rename
|
|
on-error: set_need_rename_set_status_failed
|
|
|
|
switch_on_need_rename:
|
|
on-success:
|
|
- copy_to_new_name: <% $.need_rename = true %>
|
|
- set_status_success: <% $.need_rename != true %>
|
|
|
|
copy_to_new_name:
|
|
action: swift.copy_object container=<% $.swift_container %> obj=<% $.object_list.first().get("name") %> destination=<% concat($.swift_container, '/', $.swift_tar) %>
|
|
on-success: remove_old_name
|
|
on-error: copy_to_new_name_set_status_failed
|
|
|
|
remove_old_name:
|
|
action: swift.delete_object container=<% $.swift_container %> obj=<% $.object_list.first().get("name") %>
|
|
on-success: set_status_success
|
|
on-error: remove_old_name_set_status_failed
|
|
|
|
set_status_success:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: SUCCESS
|
|
message: <% switch($.need_rename = true => "The backup of the ceph-ansible fetch directory was renamed", $.need_rename != true => "The backup of the ceph-ansible fetch directory did not need to be renamed") %>
|
|
|
|
verify_container_exists_set_status_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(verify_container_exists).result %>
|
|
|
|
get_object_list_set_status_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(get_object_list).result %>
|
|
|
|
set_need_rename_set_status_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(set_need_rename).result %>
|
|
|
|
copy_to_new_name_set_status_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(copy_to_new_name).result %>
|
|
|
|
remove_old_name_set_status_failed:
|
|
on-success: notify_zaqar
|
|
publish:
|
|
status: FAILED
|
|
message: <% task(remove_old_name).result %>
|
|
|
|
notify_zaqar:
|
|
workflow: tripleo.messaging.v1.send
|
|
input:
|
|
queue_name: <% $.queue_name %>
|
|
type: <% execution().name %>
|
|
status: <% $.get('status', 'SUCCESS') %>
|
|
message: <% $.get('message', '') %>
|
|
execution: <% execution() %>
|