From 10f2249621bbf843833e33187f40b755c2394c13 Mon Sep 17 00:00:00 2001 From: Mathieu Bultel Date: Mon, 5 Feb 2018 11:38:28 +0100 Subject: [PATCH] Add upload plan-environment action for update and upgrade In order to re-used the Deploy functionnalities, we need to upload the plan-environment when updating the plan, in order to keep the user data in place during the update and upgrade Change-Id: Ica4bb404cd3a38a97300b8af36af41c35f09825c --- setup.cfg | 1 + tripleo_common/actions/templates.py | 15 +++++++++++++++ workbooks/package_update.yaml | 9 +-------- workbooks/plan_management.yaml | 8 ++++++++ 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/setup.cfg b/setup.cfg index c82c32e61..08759a71c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -125,6 +125,7 @@ mistral.actions = tripleo.swift.swift_information = tripleo_common.actions.swifthelper:SwiftInformationAction tripleo.templates.process = tripleo_common.actions.templates:ProcessTemplatesAction tripleo.templates.upload = tripleo_common.actions.templates:UploadTemplatesAction + tripleo.templates.upload_plan_environment = tripleo_common.actions.templates:UploadPlanEnvironmentAction tripleo.validations.check_boot_images = tripleo_common.actions.validations:CheckBootImagesAction tripleo.validations.check_flavors = tripleo_common.actions.validations:CheckFlavorsAction tripleo.validations.check_node_boot_configuration = tripleo_common.actions.validations:CheckNodeBootConfigurationAction diff --git a/tripleo_common/actions/templates.py b/tripleo_common/actions/templates.py index 1a95a5a20..ea054dc5c 100644 --- a/tripleo_common/actions/templates.py +++ b/tripleo_common/actions/templates.py @@ -94,6 +94,21 @@ class UploadTemplatesAction(base.TripleOAction): self.container) +class UploadPlanEnvironmentAction(base.TripleOAction): + """Upload the plan environment into swift""" + def __init__(self, plan_environment, + container=constants.DEFAULT_CONTAINER_NAME): + super(UploadPlanEnvironmentAction, self).__init__() + self.container = container + self.plan_environment = plan_environment + + def run(self, context): + # Get object client + swift = self.get_object_client(context) + # Push plan environment to the swift container + plan_utils.put_env(swift, self.plan_environment) + + class ProcessTemplatesAction(base.TripleOAction): """Process Templates and Environments diff --git a/workbooks/package_update.yaml b/workbooks/package_update.yaml index e267e639e..6c3b36caf 100644 --- a/workbooks/package_update.yaml +++ b/workbooks/package_update.yaml @@ -22,15 +22,8 @@ workflows: - tripleo-common-managed tasks: - update_plan: - action: tripleo.plan.update_from_dir - input: - container: <% $.container %> - on-success: update - on-error: set_update_failed - update: - action: tripleo.package_update.update_stack container=<% $.container %> timeout=<% $.timeout %> container_registry=<% $.container_registry %> ceph_ansible_playbook=<% $.ceph_ansible_playbook %> + action: tripleo.package_update.update_stack input: timeout: <% $.timeout %> container: <% $.container %> diff --git a/workbooks/plan_management.yaml b/workbooks/plan_management.yaml index 4d2c9f514..67a5d5fe2 100644 --- a/workbooks/plan_management.yaml +++ b/workbooks/plan_management.yaml @@ -218,6 +218,7 @@ workflows: - source_url: null - queue_name: tripleo - generate_passwords: true + - plan_environment: null tags: - tripleo-common-managed tasks: @@ -268,6 +269,13 @@ workflows: process_templates: action: tripleo.templates.process container=<% $.container %> + on-success: + - set_status_success: <% $.plan_environment = null %> + - upload_plan_environment: <% $.plan_environment != null %> + on-error: process_templates_set_status_failed + + upload_plan_environment: + action: tripleo.templates.upload_plan_environment container=<% $.container %> plan_environment=<% $.plan_environment %> on-success: set_status_success on-error: process_templates_set_status_failed