From 20e89f5e3ad83b80b4379d7e6d60e7da42e314c7 Mon Sep 17 00:00:00 2001 From: Yurii Prokulevych Date: Mon, 9 Apr 2018 16:41:46 +0200 Subject: [PATCH] Pass env-files and roles-data file to update/upgrade prepare cli. To bypass issue described in RHBZ#1541024 it's needed to pass all the environment files, used during initial overcloud deploy, to the 'overcloud update|upgrade prepare' cli. Depends-On: I9db2c9256ed20d4d0b74bb467ee6ae0a9633bcc8 Change-Id: I9b488d84fa6e86ed9ce03c7b5fda5d42f713724d (cherry picked from commit 937274088c25b20ead6ec41d1622888898b67eb4) --- tasks/common/auxilary-facts.yaml | 21 +++++++++++++++++++++ tasks/update/create-update-scripts.yaml | 8 ++++++++ tasks/upgrade/create-upgrade-scripts.yaml | 8 ++++++++ templates/overcloud_update_prepare.sh.j2 | 6 ++++++ templates/overcloud_upgrade_prepare.sh.j2 | 7 ++++++- 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 tasks/common/auxilary-facts.yaml diff --git a/tasks/common/auxilary-facts.yaml b/tasks/common/auxilary-facts.yaml new file mode 100644 index 00000000..3694138e --- /dev/null +++ b/tasks/common/auxilary-facts.yaml @@ -0,0 +1,21 @@ +--- +- name: get env files used during deploy + shell: | + awk '/-e\s|--environment-file\s/ {gsub(/[[:space:]]/, "", $2); print $2}' {{ overcloud_deploy_script }} + register: initial_env_file + +- name: set initial_env_file fact + set_fact: + initial_env_file: "{{ initial_env_file }}" + +- name: fetch roles-data file referenced in initial deploy script + shell: | + awk '/-r\s|--roles-file\s/ {gsub(/[[:space:]]/, "", $2); print $2}' {{ overcloud_deploy_script }} + register: roles_data_file + +- name: set roles-data fact + vars: + default_roles_data: "{{ tht_directory }}/roles_data.yaml" + roles_data: "{{ roles_data_file.stdout }}" + set_fact: + roles_data: "{{ (roles_data_file.stdout|length > 0) | ternary(roles_data, default_roles_data)}}" diff --git a/tasks/update/create-update-scripts.yaml b/tasks/update/create-update-scripts.yaml index 1caf7f72..ae9be84e 100644 --- a/tasks/update/create-update-scripts.yaml +++ b/tasks/update/create-update-scripts.yaml @@ -1,4 +1,12 @@ --- +- name: create a comptatible deployment scripts from oooq + include: ../upgrade/use_oooq.yaml + tags: use_oooq + when: use_oooq|bool + +- name: get auxiliary facts for major upgrades + include: ../common/auxilary-facts.yaml + - name: create undercloud update script vars: log_prefix: "update" diff --git a/tasks/upgrade/create-upgrade-scripts.yaml b/tasks/upgrade/create-upgrade-scripts.yaml index 22f01977..40e73f48 100644 --- a/tasks/upgrade/create-upgrade-scripts.yaml +++ b/tasks/upgrade/create-upgrade-scripts.yaml @@ -1,4 +1,12 @@ --- +- name: create a comptatible deployment scripts from oooq + include: use_oooq.yaml + tags: use_oooq + when: use_oooq|bool + +- name: get auxiliary facts for major upgrades + include: ../common/auxilary-facts.yaml + - name: register is_upstream variable shell: | rpm -q openstack-tripleo-heat-templates | grep '\.el[[:digit:]]\.' diff --git a/templates/overcloud_update_prepare.sh.j2 b/templates/overcloud_update_prepare.sh.j2 index dfbaecda..c1c5fc85 100644 --- a/templates/overcloud_update_prepare.sh.j2 +++ b/templates/overcloud_update_prepare.sh.j2 @@ -15,4 +15,10 @@ openstack overcloud update prepare --templates {{ tht_directory }} \ {% if tripleo_upgrade_validations_non_fatal|bool %} --validation-errors-nonfatal \ {% endif %} + {% if initial_env_file is defined and initial_env_file.stdout_lines|length > 0 %} + {% for _env in initial_env_file.stdout_lines %} + -e {{ _env }} \ + {% endfor %} + {% endif %} + --roles-file {{ roles_data }} \ --container-registry-file {{ working_dir }}/{{ container_registry_file }} 2>&1 diff --git a/templates/overcloud_upgrade_prepare.sh.j2 b/templates/overcloud_upgrade_prepare.sh.j2 index 248893bd..a594f670 100644 --- a/templates/overcloud_upgrade_prepare.sh.j2 +++ b/templates/overcloud_upgrade_prepare.sh.j2 @@ -15,7 +15,12 @@ openstack overcloud upgrade prepare --templates --stack {{ overcloud_stack_name --validation-errors-nonfatal \ {% endif %} --container-registry-file {{ working_dir }}/{{ container_registry_file }} \ + {% if initial_env_file is defined and initial_env_file.stdout_lines|length > 0 %} + {% for _env in initial_env_file.stdout_lines %} + -e {{ _env }} \ + {% endfor %} + {% endif %} {% if upgrade_prepare_extra_params %} -e {{ upgrade_prepare_extra_params | join(' -e ') }} \ {% endif %} - -e {{ tht_directory }}/environments/noop-deploy-steps.yaml 2>&1 + --roles-file {{ roles_data }} 2>&1