diff --git a/docker/services/aodh-api.yaml b/docker/services/aodh-api.yaml index 6e729bc776..86485bed8d 100644 --- a/docker/services/aodh-api.yaml +++ b/docker/services/aodh-api.yaml @@ -179,16 +179,18 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if aodh api is running" shell: systemctl status 'httpd' | grep -q aodh - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop and disable aodh service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no + - name: Set fact for removal of openstack-aodh-api package + when: step|int == 2 + set_fact: + remove_aodh_api_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-aodh-api package if operator requests it yum: name=openstack-aodh-api state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_aodh_api_package|bool) and (step|int == 2) metadata_settings: get_attr: [AodhApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/aodh-evaluator.yaml b/docker/services/aodh-evaluator.yaml index b693c42fdf..09f22b2391 100644 --- a/docker/services/aodh-evaluator.yaml +++ b/docker/services/aodh-evaluator.yaml @@ -130,14 +130,16 @@ outputs: register: aodh_evaluator_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-evaluator is running" command: systemctl is-active --quiet openstack-aodh-evaluator - when: aodh_evaluator_enabled.rc == 0 - tags: step0,validation + when: (aodh_evaluator_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable openstack-aodh-evaluator service - tags: step2 - when: aodh_evaluator_enabled.rc == 0 + when: (aodh_evaluator_enabled.rc == 0) and (step|int == 2) service: name=openstack-aodh-evaluator.service state=stopped enabled=no + - name: Set fact for removal of openstack-aodh-evaluator package + when: step|int == 2 + set_fact: + remove_aodh_evaluator_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-aodh-evaluator package if operator requests it yum: name=openstack-aodh-evaluator state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_aodh_evaluator_package|bool) and (step|int == 2) diff --git a/docker/services/aodh-listener.yaml b/docker/services/aodh-listener.yaml index f8e70c7324..29feab56a3 100644 --- a/docker/services/aodh-listener.yaml +++ b/docker/services/aodh-listener.yaml @@ -130,14 +130,16 @@ outputs: register: aodh_listener_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-listener is running" command: systemctl is-active --quiet openstack-aodh-listener - when: aodh_listener_enabled.rc == 0 - tags: step0,validation + when: (aodh_listener_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable openstack-aodh-listener service - tags: step2 - when: aodh_listener_enabled.rc == 0 + when: (aodh_listener_enabled.rc == 0) and (step|int == 2) service: name=openstack-aodh-listener.service state=stopped enabled=no + - name: Set fact for removal of openstack-aodh-listener package + when: step|int == 2 + set_fact: + remove_aodh_listener_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-aodh-listener package if operator requests it yum: name=openstack-aodh-listener state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_aodh_listener_package|bool) and (step|int == 2) diff --git a/docker/services/aodh-notifier.yaml b/docker/services/aodh-notifier.yaml index 6c7711ed33..f9cf4e959d 100644 --- a/docker/services/aodh-notifier.yaml +++ b/docker/services/aodh-notifier.yaml @@ -130,14 +130,16 @@ outputs: register: aodh_notifier_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-notifier is running" command: systemctl is-active --quiet openstack-aodh-notifier - when: aodh_notifier_enabled.rc == 0 - tags: step0,validation + when: (aodh_notifier_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable openstack-aodh-notifier service - tags: step2 - when: aodh_notifier_enabled.rc == 0 - service: name=openstack-aodh-notifier state=stopped enabled=no + when: (aodh_notifier_enabled.rc == 0) and (step|int == 2) + service: name=openstack-aodh-notifier.service state=stopped enabled=no + - name: Set fact for removal of openstack-aodh-notifier package + when: step|int == 2 + set_fact: + remove_aodh_notifier_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-aodh-notifier package if operator requests it yum: name=openstack-aodh-notifier state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_aodh_notifier_package|bool) and (step|int == 2) diff --git a/docker/services/barbican-api.yaml b/docker/services/barbican-api.yaml index 62a7275021..e8e02745ac 100644 --- a/docker/services/barbican-api.yaml +++ b/docker/services/barbican-api.yaml @@ -214,16 +214,17 @@ outputs: register: barbican_enabled - name: "PreUpgrade step0,validation: Check service barbican-api is running" command: systemctl is-active --quiet openstack-barbican-api - when: barbican_enabled.rc == 0 - tags: step0,validation + when: (barbican_enabled.rc == 0) and (step|int == 0) - name: Stop and disable barbican_api service - tags: step2 - when: barbican_enabled.rc == 0 + when: (barbican_enabled.rc == 0) and (step|int == 2) service: name=openstack-barbican-api state=stopped enabled=no + - name: Set fact for removal of openstack-barbican-api package + when: step|int == 2 + set_fact: + remove_barbican_api_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-barbican-api package if operator requests it yum: name=openstack-barbican-api state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_barbican_api_package|bool) and (step|int == 2) metadata_settings: get_attr: [BarbicanApiBase, role_data, metadata_settings] diff --git a/docker/services/ceilometer-agent-central.yaml b/docker/services/ceilometer-agent-central.yaml index 82890e2332..54e2182c05 100644 --- a/docker/services/ceilometer-agent-central.yaml +++ b/docker/services/ceilometer-agent-central.yaml @@ -143,14 +143,16 @@ outputs: register: ceilometer_agent_central_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-central is running" command: systemctl is-active --quiet openstack-ceilometer-central - when: ceilometer_agent_central_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_agent_central_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ceilometer agent central service - tags: step2 service: name=openstack-ceilometer-central state=stopped enabled=no - when: ceilometer_agent_central_enabled.rc == 0 + when: (ceilometer_agent_central_enabled.rc == 0) and (step|int == 2) + - name: Set fact for removal of openstack-ceilometer-central package + when: step|int == 2 + set_fact: + remove_ceilometer_central_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-ceilometer-central package if operator requests it yum: name=openstack-ceilometer-central state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_ceilometer_central_package|bool) and (step|int == 2) diff --git a/docker/services/ceilometer-agent-compute.yaml b/docker/services/ceilometer-agent-compute.yaml index 4fe7a011ba..9fa9fac445 100644 --- a/docker/services/ceilometer-agent-compute.yaml +++ b/docker/services/ceilometer-agent-compute.yaml @@ -122,27 +122,27 @@ outputs: register: openstack_ceilometer_polling_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-compute is running" command: systemctl is-active --quiet openstack-ceilometer-compute - when: openstack_ceilometer_compute_enabled.rc == 0 - tags: step0,validation + when: (openstack_ceilometer_compute_enabled.rc == 0) and (step|int == 0) + tags: validation - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-polling is running" command: systemctl is-active --quiet openstack-ceilometer-polling - when: openstack_ceilometer_polling_enabled.rc == 0 - tags: step0,validation + when: (openstack_ceilometer_polling_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ceilometer compute agent - tags: step2 service: name=openstack-ceilometer-compute state=stopped enabled=no - when: openstack_ceilometer_compute_enabled.rc|default('') == 0 + when: (openstack_ceilometer_compute_enabled.rc|default('') == 0) and (step|int == 2) - name: Stop and disable ceilometer polling agent - tags: step2 service: name=openstack-ceilometer-polling state=stopped enabled=no - when: openstack_ceilometer_polling_enabled.rc|default('') == 0 + when: (openstack_ceilometer_polling_enabled.rc|default('') == 0) and (step|int == 2) + - name: Set fact for removal of openstack-ceilometer-compute and polling package + when: step|int == 2 + set_fact: + remove_ceilometer_compute_polling_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-ceilometer-compute package if operator requests it yum: name=openstack-ceilometer-compute state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_ceilometer_compute_polling_package|bool) and (step|int == 2) - name: Remove openstack-ceilometer-polling package if operator requests it yum: name=openstack-ceilometer-polling state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_ceilometer_compute_polling_package|bool) and (step|int == 2) diff --git a/docker/services/ceilometer-agent-ipmi.yaml b/docker/services/ceilometer-agent-ipmi.yaml index 1afe42a0eb..0fa72e9b06 100644 --- a/docker/services/ceilometer-agent-ipmi.yaml +++ b/docker/services/ceilometer-agent-ipmi.yaml @@ -125,14 +125,16 @@ outputs: register: ceilometer_ipmi_enabled - name: "PreUpgrade step0,validation: Check if openstack-ceilometer-ipmi is running" command: systemctl is-active --quiet openstack-ceilometer-ipmi - when: ceilometer_ipmi_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_ipmi_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ceilometer agent ipmi service - tags: step2 service: name=openstack-ceilometer-agent-ipmi state=stopped enabled=no - when: ceilometer_ipmi_enabled.rc == 0 + when: (ceilometer_ipmi_enabled.rc == 0) and (step|int == 2) + - name: Set fact for removal of openstack-ceilometer-ipmi package + when: step|int == 2 + set_fact: + remove_ceilometer_ipmi_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-ceilometer-ipmi package if operator requests it yum: name=openstack-ceilometer-ipmi state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_ceilometer_ipmi_package|bool) and (step|int == 2) diff --git a/docker/services/ceilometer-agent-notification.yaml b/docker/services/ceilometer-agent-notification.yaml index 6234274c61..b80dfe3253 100644 --- a/docker/services/ceilometer-agent-notification.yaml +++ b/docker/services/ceilometer-agent-notification.yaml @@ -135,14 +135,16 @@ outputs: register: ceilometer_agent_notification_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-notification is running" command: systemctl is-active --quiet openstack-ceilometer-notification - when: ceilometer_agent_notification_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_agent_notification_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ceilometer agent notification service - tags: step2 service: name=openstack-ceilometer-notification state=stopped enabled=no - when: ceilometer_agent_notification_enabled.rc == 0 + when: (ceilometer_agent_notification_enabled.rc == 0) and (step|int == 2) + - name: Set fact for removal of openstack-ceilometer-notification package + when: step|int == 2 + set_fact: + remove_ceilometer_notification_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-ceilometer-notification package if operator requests it yum: name=openstack-ceilometer-notification state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_ceilometer_notification_package|bool) and (step|int == 2) diff --git a/docker/services/cinder-api.yaml b/docker/services/cinder-api.yaml index 15c68e4133..b803889fcb 100644 --- a/docker/services/cinder-api.yaml +++ b/docker/services/cinder-api.yaml @@ -207,28 +207,29 @@ outputs: register: cinder_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-api is running" shell: systemctl is-active --quiet openstack-cinder-api - when: cinder_api_enabled.rc == 0 - tags: step0,validation + when: (cinder_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable cinder_api service (pre-upgrade not under httpd) - tags: step2 service: name=openstack-cinder-api state=stopped enabled=no - when: cinder_api_enabled.rc == 0 + when: (cinder_api_enabled.rc == 0) and (step|int == 2) - name: check for cinder_api running under apache (post upgrade) - tags: step2 shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder" register: cinder_api_apache ignore_errors: true + when: step|int == 2 - name: Stop and disable cinder_api service - tags: step2 service: name=httpd state=stopped enabled=no - when: cinder_api_apache.rc == 0 + when: (cinder_api_apache.rc == 0) and (step|int == 2) - name: remove old cinder cron jobs - tags: step2 + when: step|int == 2 file: path: /var/spool/cron/cinder state: absent + - name: Set fact for removal of httpd package + when: step|int == 2 + set_fact: + remove_httpd_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove httpd package if operator requests it yum: name=httpd state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_httpd_package|bool) and (step|int == 2) diff --git a/docker/services/cinder-backup.yaml b/docker/services/cinder-backup.yaml index e667e340b9..6314bea860 100644 --- a/docker/services/cinder-backup.yaml +++ b/docker/services/cinder-backup.yaml @@ -166,10 +166,13 @@ outputs: state: directory upgrade_tasks: - name: Stop and disable cinder_backup service - tags: step2 + when: step|int == 2 service: name=openstack-cinder-backup state=stopped enabled=no + - name: Set fact for removal of openstack-cinder package + when: step|int == 2 + set_fact: + remove_cinder_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-cinder package if operator requests it yum: name=openstack-cinder state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_cinder_package|bool) and (step|int == 2) diff --git a/docker/services/cinder-scheduler.yaml b/docker/services/cinder-scheduler.yaml index 45c774c4c6..11948b6af0 100644 --- a/docker/services/cinder-scheduler.yaml +++ b/docker/services/cinder-scheduler.yaml @@ -138,14 +138,16 @@ outputs: register: cinder_scheduler_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-scheduler is running" shell: systemctl is-active --quiet openstack-cinder-scheduler - when: cinder_scheduler_enabled.rc == 0 - tags: step0,validation + when: (cinder_scheduler_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable cinder_scheduler service - tags: step2 - when: cinder_scheduler_enabled.rc == 0 + when: (cinder_scheduler_enabled.rc == 0) and (step|int == 2) service: name=openstack-cinder-scheduler state=stopped enabled=no + - name: Set fact for removal of openstack-cinder package + when: step|int == 2 + set_fact: + remove_cinder_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-cinder package if operator requests it yum: name=openstack-cinder state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_cinder_package|bool) and (step|int == 2) diff --git a/docker/services/cinder-volume.yaml b/docker/services/cinder-volume.yaml index 6e78b69069..bbf5a10195 100644 --- a/docker/services/cinder-volume.yaml +++ b/docker/services/cinder-volume.yaml @@ -214,14 +214,16 @@ outputs: register: cinder_volume_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-volume is running" shell: systemctl is-active --quiet openstack-cinder-volume - when: cinder_volume_enabled.rc == 0 - tags: step0,validation + when: (cinder_volume_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable cinder_volume service - tags: step2 - when: cinder_volume_enabled.rc == 0 + when: (cinder_volume_enabled.rc == 0) and (step|int == 2) service: name=openstack-cinder-volume state=stopped enabled=no + - name: Set fact for removal of openstack-cinder package + when: step|int == 2 + set_fact: + remove_cinder_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-cinder package if operator requests it yum: name=openstack-cinder state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_cinder_package|bool) and (step|int == 2) diff --git a/docker/services/collectd.yaml b/docker/services/collectd.yaml index 0fde1bebbb..933c497838 100644 --- a/docker/services/collectd.yaml +++ b/docker/services/collectd.yaml @@ -126,14 +126,16 @@ outputs: register: collectd_enabled - name: "PreUpgrade step0,validation: Check service collectd service is running" command: systemctl is-active --quiet collectd - when: collectd_enabled.rc == 0 - tags: step0,validation + when: (collectd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable collectd service - tags: step2 - when: collectd_enabled.rc == 0 + when: (collectd_enabled.rc == 0) and (step|int == 2) service: name=collectd.service state=stopped enabled=no + - name: Set fact for removal of collectd package + when: step|int == 2 + set_fact: + remove_collectd_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove collectd package if operator requests it yum: name=collectd state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_collectd_package|bool) and (step|int == 2) diff --git a/docker/services/congress.yaml b/docker/services/congress.yaml index 982a756865..55033a5a80 100644 --- a/docker/services/congress.yaml +++ b/docker/services/congress.yaml @@ -155,14 +155,16 @@ outputs: register: congress_enabled - name: "PreUpgrade step0,validation: Check service openstack-congress-server is running" command: systemctl is-active --quiet openstack-congress-server - when: congress_enabled.rc == 0 - tags: step0,validation + when: (congress_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable congress_api service - tags: step2 - when: congress_enabled.rc == 0 + when: (congress_enabled.rc == 0) and (step|int == 2) service: name=openstack-congress-server state=stopped enabled=no + - name: Set fact for removal of openstack-congress package + when: step|int == 2 + set_fact: + remove_congress_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-congress package if operator requests it yum: name=openstack-congress state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_congress_package|bool) and (step|int == 2) diff --git a/docker/services/database/mongodb.yaml b/docker/services/database/mongodb.yaml index 6560e6a766..23b9f45e3b 100644 --- a/docker/services/database/mongodb.yaml +++ b/docker/services/database/mongodb.yaml @@ -172,9 +172,8 @@ outputs: register: mongod_enabled - name: "PreUpgrade step0,validation: Check if mongod is running" command: systemctl is-active --quiet mongod - when: mongod_enabled.rc == 0 - tags: step0,validation + when: (mongod_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable mongodb service - tags: step2 - when: mongod_enabled.rc == 0 + when: (mongod_enabled.rc == 0) and (step|int == 2) service: name=mongod state=stopped enabled=no diff --git a/docker/services/database/mysql.yaml b/docker/services/database/mysql.yaml index 53f820e4fe..d226c9c223 100644 --- a/docker/services/database/mysql.yaml +++ b/docker/services/database/mysql.yaml @@ -243,9 +243,8 @@ outputs: register: mariadb_enabled - name: "PreUpgrade step0,validation: Check if mysql service is running" command: systemctl is-active --quiet mariadb - when: mariadb_enabled.rc == 0 - tags: step0,validation + when: (mariadb_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable mysql service - tags: step2 - when: mariadb_enabled.rc == 0 + when: (mariadb_enabled.rc == 0) and (step|int == 2) service: name=mariadb state=stopped enabled=no diff --git a/docker/services/database/redis.yaml b/docker/services/database/redis.yaml index 8fda989d42..7c78737522 100644 --- a/docker/services/database/redis.yaml +++ b/docker/services/database/redis.yaml @@ -129,9 +129,8 @@ outputs: register: redis_enabled - name: "PreUpgrade step0,validation: Check if redis is running" command: systemctl is-active --quiet redis - when: redis_enabled.rc == 0 - tags: step0,validation + when: (redis_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable redis service - tags: step2 - when: redis_enabled.rc == 0 + when: (redis_enabled.rc == 0) and (step|int == 2) service: name=redis state=stopped enabled=no diff --git a/docker/services/ec2-api.yaml b/docker/services/ec2-api.yaml index c644c2fe71..30c8c6a9b3 100644 --- a/docker/services/ec2-api.yaml +++ b/docker/services/ec2-api.yaml @@ -217,19 +217,17 @@ outputs: register: ec2_api_metadata_enabled - name: "PreUpgrade step0,validation: Check if openstack-ec2-api is running" command: systemctl is-active --quiet openstack-ec2-api - when: ec2_api_enabled.rc == 0 - tags: step0,validation + when: (ec2_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: "PreUpgrade step0,validation: Check if openstack-ec2-metadata-api is running" command: systemctl is-active --quiet openstack-ec2-api-metadata - when: ec2_api_metadata_enabled.rc == 0 - tags: step0,validation + when: (ec2_api_metadata_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable EC2-API service - tags: step2 - when: ec2_api_enabled.rc == 0 + when: (ec2_api_enabled.rc == 0) and (step|int == 2) service: name=openstack-ec2-api state=stopped enabled=no - name: Stop and disable EC2-API-METADATA service - tags: step2 - when: ec2_api_metadata_enabled.rc == 0 + when: (ec2_api_metadata_enabled.rc == 0) and (step|int == 2) service: name=openstack-ec2-api-metadata state=stopped enabled=no metadata_settings: get_attr: [Ec2ApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/etcd.yaml b/docker/services/etcd.yaml index a3a7150b2a..8c2211f776 100644 --- a/docker/services/etcd.yaml +++ b/docker/services/etcd.yaml @@ -122,9 +122,8 @@ outputs: register: etcd_enabled - name: "PreUpgrade step0,validation: Check if etcd is running" command: systemctl is-active --quiet etcd - when: etcd_enabled.rc == 0 - tags: step0,validation + when: (etcd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable etcd service - tags: step2 - when: etcd_enabled.rc == 0 + when: (etcd_enabled.rc == 0) and (step|int == 2) service: name=etcd state=stopped enabled=no diff --git a/docker/services/fluentd.yaml b/docker/services/fluentd.yaml index f054a834e8..22175c2291 100644 --- a/docker/services/fluentd.yaml +++ b/docker/services/fluentd.yaml @@ -122,6 +122,6 @@ outputs: state: directory upgrade_tasks: - name: Stop and disable fluentd service - tags: step2 + when: step|int == 2 service: name=fluentd.service state=stopped enabled=no diff --git a/docker/services/glance-api.yaml b/docker/services/glance-api.yaml index 7814f46dad..bea9bdd047 100644 --- a/docker/services/glance-api.yaml +++ b/docker/services/glance-api.yaml @@ -240,16 +240,18 @@ outputs: register: glance_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-glance-api is running" command: systemctl is-active --quiet openstack-glance-api - tags: step0,validation - when: glance_api_enabled.rc == 0 + tags: validation + when: (glance_api_enabled.rc == 0) and (step|int == 0) - name: Stop and disable glance_api service - tags: step2 - when: glance_api_enabled.rc == 0 + when: (glance_api_enabled.rc == 0) and (step|int == 2) service: name=openstack-glance-api state=stopped enabled=no + - name: Set fact for removal of openstack-glance package + when: step|int == 2 + set_fact: + remove_glance_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-glance package if operator requests it yum: name=openstack-glance state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_glance_package|bool) and (step|int == 2) metadata_settings: get_attr: [GlanceApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/gnocchi-api.yaml b/docker/services/gnocchi-api.yaml index 7a6864c5b7..5659def883 100644 --- a/docker/services/gnocchi-api.yaml +++ b/docker/services/gnocchi-api.yaml @@ -202,12 +202,11 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service openstack-gnocchi-api is running" command: systemctl is-active --quiet openstack-gnocchi-api - when: gnocchi_api_enabled.rc == 0 and httpd_enabled.rc != 0 - tags: step0,validation + when: (gnocchi_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) + tags: validation - name: Stop and disable gnocchi_api service - tags: step2 service: name=openstack-gnocchi-api state=stopped enabled=no - when: gnocchi_api_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (gnocchi_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) - name: Check if httpd service is running command: systemctl is-active --quiet httpd tags: common @@ -215,11 +214,10 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if gnocchi_api_wsgi is running" shell: systemctl status 'httpd' | grep -q gnocchi - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop and disable httpd service - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no metadata_settings: get_attr: [GnocchiApiPuppetBase, role_data, metadata_settings] diff --git a/docker/services/gnocchi-metricd.yaml b/docker/services/gnocchi-metricd.yaml index 11fb414c42..085471a9a6 100644 --- a/docker/services/gnocchi-metricd.yaml +++ b/docker/services/gnocchi-metricd.yaml @@ -141,9 +141,8 @@ outputs: register: gnocchi_metricd_enabled - name: "PreUpgrade step0,validation: Check service openstack-gnocchi-metricd is running" command: systemctl is-active --quiet openstack-gnocchi-metricd - when: gnocchi_metricd_enabled.rc == 0 - tags: step0,validation + when: (gnocchi_metricd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable openstack-gnocchi-metricd service - tags: step2 - when: gnocchi_metricd_enabled.rc == 0 + when: (gnocchi_metricd_enabled.rc == 0) and (step|int == 2) service: name=openstack-gnocchi-metricd.service state=stopped enabled=no diff --git a/docker/services/gnocchi-statsd.yaml b/docker/services/gnocchi-statsd.yaml index 1df107d053..19d30953ef 100644 --- a/docker/services/gnocchi-statsd.yaml +++ b/docker/services/gnocchi-statsd.yaml @@ -141,9 +141,8 @@ outputs: register: gnocchi_statsd_enabled - name: "PreUpgrade step0,validation: Check service openstack-gnocchi-statsd is running" command: systemctl is-active --quiet openstack-gnocchi-statsd - when: gnocchi_statsd_enabled.rc == 0 - tags: step0,validation + when: (gnocchi_statsd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable openstack-gnocchi-statsd service - tags: step2 - when: gnocchi_statsd_enabled.rc == 0 + when: (gnocchi_statsd_enabled.rc == 0) and (step|int == 2) service: name=openstack-gnocchi-statsd.service state=stopped enabled=no diff --git a/docker/services/heat-api-cfn.yaml b/docker/services/heat-api-cfn.yaml index 66d85371b3..d98cc372f6 100644 --- a/docker/services/heat-api-cfn.yaml +++ b/docker/services/heat-api-cfn.yaml @@ -142,24 +142,22 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-api-cfn is running" command: systemctl is-active --quiet openstack-heat-api-cfn - when: heat_api_cfn_enabled.rc == 0 and httpd_enabled.rc != 0 - tags: step0,validation + when: (heat_api_cfn_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) + tags: validation - name: Stop and disable heat_api_cfn service (pre-upgrade not under httpd) - tags: step2 service: name=openstack-heat-api-cfn state=stopped enabled=no - when: heat_api_cfn_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (heat_api_cfn_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) - name: Check if httpd service is running command: systemctl is-active --quiet httpd tags: common ignore_errors: True register: httpd_running - name: "PreUpgrade step0,validation: Check if heat_api_cfn_wsgi is running" - tags: step0,validation + tags: validation shell: systemctl status 'httpd' | grep -q heat_api_cfn_wsgi - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop heat_api_cfn service (running under httpd) - tags: step2 service: name=httpd state=stopped - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) metadata_settings: get_attr: [HeatBase, role_data, metadata_settings] diff --git a/docker/services/heat-api.yaml b/docker/services/heat-api.yaml index bb4a300a89..fae16ef1dc 100644 --- a/docker/services/heat-api.yaml +++ b/docker/services/heat-api.yaml @@ -180,12 +180,11 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-api is running" command: systemctl is-active --quiet openstack-heat-api - when: heat_api_enabled.rc == 0 and httpd_enabled.rc != 0 - tags: step0,validation + when: (heat_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) + tags: validation - name: Stop and disable heat_api service (pre-upgrade not under httpd) - tags: step2 service: name=openstack-heat-api state=stopped enabled=no - when: heat_api_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (heat_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) - name: Check if httpd is running tags: common command: systemctl is-active --quiet httpd @@ -193,14 +192,13 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if heat_api_wsgi is running" shell: systemctl status 'httpd' | grep -q heat_api_wsgi - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop heat_api service (running under httpd) - tags: step2 service: name=httpd state=stopped - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) - name: remove old heat cron jobs - tags: step2 + when: step|int == 2 file: path: /var/spool/cron/heat state: absent diff --git a/docker/services/heat-engine.yaml b/docker/services/heat-engine.yaml index f94b05b4b5..1f3d4c5202 100644 --- a/docker/services/heat-engine.yaml +++ b/docker/services/heat-engine.yaml @@ -141,9 +141,8 @@ outputs: register: heat_engine_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-engine is running" command: systemctl is-active --quiet openstack-heat-engine - when: heat_engine_enabled.rc == 0 - tags: step0,validation + when: (heat_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable heat_engine service - tags: step2 - when: heat_engine_enabled.rc == 0 + when: (heat_engine_enabled.rc == 0) and (step|int == 2) service: name=openstack-heat-engine state=stopped enabled=no diff --git a/docker/services/horizon.yaml b/docker/services/horizon.yaml index f293a0eb00..b6f026d19d 100644 --- a/docker/services/horizon.yaml +++ b/docker/services/horizon.yaml @@ -194,11 +194,10 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check if horizon is running" shell: systemctl is-active --quiet httpd - when: httpd_enabled.rc == 0 - tags: step0,validation + when: (httpd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable horizon service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 + when: (httpd_enabled.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no metadata_settings: get_attr: [HorizonBase, role_data, metadata_settings] diff --git a/docker/services/ironic-api.yaml b/docker/services/ironic-api.yaml index fbb4657a52..733e0e2aa1 100644 --- a/docker/services/ironic-api.yaml +++ b/docker/services/ironic-api.yaml @@ -163,11 +163,10 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service openstack-ironic-api is running" command: systemctl is-active --quiet openstack-ironic-api - when: ironic_api_enabled.rc == 0 and httpd_enabled.rc != 0 - tags: step0,validation + when: (ironic_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) + tags: validation - name: Stop and disable ironic_api service - tags: step2 - when: ironic_api_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (ironic_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) service: name=openstack-ironic-api state=stopped enabled=no - name: Check if httpd service is running command: systemctl is-active --quiet httpd @@ -176,9 +175,8 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if ironic_api_wsgi is running" shell: systemctl status 'httpd' | grep -q ironic - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop ironic_api service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no diff --git a/docker/services/ironic-conductor.yaml b/docker/services/ironic-conductor.yaml index a70d705e25..456ea73fde 100644 --- a/docker/services/ironic-conductor.yaml +++ b/docker/services/ironic-conductor.yaml @@ -174,9 +174,8 @@ outputs: register: ironic_conductor_enabled - name: "PreUpgrade step0,validation: Check service openstack-ironic-conductor is running" command: systemctl is-active --quiet openstack-ironic-conductor - tags: step0,validation - when: ironic_conductor_enabled.rc == 0 + tags: validation + when: (ironic_conductor_enabled.rc == 0) and (step|int == 0) - name: Stop and disable ironic_conductor service - tags: step2 - when: ironic_conductor_enabled.rc == 0 + when: (ironic_conductor_enabled.rc == 0) and (step|int == 2) service: name=openstack-ironic-conductor state=stopped enabled=no diff --git a/docker/services/ironic-inspector.yaml b/docker/services/ironic-inspector.yaml index 6ab0930290..a3870e997e 100644 --- a/docker/services/ironic-inspector.yaml +++ b/docker/services/ironic-inspector.yaml @@ -171,9 +171,9 @@ outputs: /var/log/containers/ironic-inspector. ignore_errors: true upgrade_tasks: - - name: Stop and disable ironic_inspector service - tags: step2 - service: name=openstack-ironic-inspector state=stopped enabled=no - - name: Stop and disable ironic_inspector dnsmasq service - tags: step2 - service: name=openstack-ironic-inspector-dnsmasq state=stopped enabled=no + - when: step|int ==2 + block: + - name: Stop and disable ironic_inspector service + service: name=openstack-ironic-inspector state=stopped enabled=no + - name: Stop and disable ironic_inspector dnsmasq service + service: name=openstack-ironic-inspector-dnsmasq state=stopped enabled=no diff --git a/docker/services/iscsid.yaml b/docker/services/iscsid.yaml index dd534a139f..41c439a457 100644 --- a/docker/services/iscsid.yaml +++ b/docker/services/iscsid.yaml @@ -117,11 +117,10 @@ outputs: register: iscsid_enabled - name: "PreUpgrade step0,validation: Check if iscsid is running" command: systemctl is-active --quiet iscsid - when: iscsid_enabled.rc == 0 - tags: step0,validation + when: (iscsid_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable iscsid service - tags: step2 - when: iscsid_enabled.rc == 0 + when: (iscsid_enabled.rc == 0) and (step|int == 2) service: name=iscsid state=stopped enabled=no - name: Check if iscsid.socket service is deployed tags: common @@ -130,9 +129,8 @@ outputs: register: iscsid_socket_enabled - name: "PreUpgrade step0,validation: Check if iscsid.socket is running" command: systemctl is-active --quiet iscsid.socket - when: iscsid_socket_enabled.rc == 0 - tags: step0,validation + when: (iscsid_socket_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable iscsid.socket service - tags: step2 - when: iscsid_socket_enabled.rc == 0 + when: (iscsid_socket_enabled.rc == 0) and (step|int == 2) service: name=iscsid.socket state=stopped enabled=no diff --git a/docker/services/keystone.yaml b/docker/services/keystone.yaml index 76a1751282..b4210e4d4c 100644 --- a/docker/services/keystone.yaml +++ b/docker/services/keystone.yaml @@ -209,14 +209,13 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if keystone_wsgi is running under httpd" shell: systemctl status 'httpd' | grep -q keystone - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop and disable keystone service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no - name: remove old keystone cron jobs - tags: step2 + when: step|int == 2 file: path: /var/spool/cron/keystone state: absent diff --git a/docker/services/manila-api.yaml b/docker/services/manila-api.yaml index 2a18a538de..d04ae8a7cf 100644 --- a/docker/services/manila-api.yaml +++ b/docker/services/manila-api.yaml @@ -145,9 +145,8 @@ outputs: register: manila_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-manila-api is running" command: systemctl is-active --quiet openstack-manila-api - when: manila_api_enabled.rc == 0 - tags: step0,validation + when: (manila_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable manila_api service - tags: step2 - when: manila_api_enabled.rc == 0 + when: (manila_api_enabled.rc == 0) and (step|int == 2) service: name=openstack-manila-api state=stopped enabled=no diff --git a/docker/services/manila-scheduler.yaml b/docker/services/manila-scheduler.yaml index 06e07fdffc..84d2dffa0b 100644 --- a/docker/services/manila-scheduler.yaml +++ b/docker/services/manila-scheduler.yaml @@ -121,9 +121,8 @@ outputs: register: manila_scheduler_enabled - name: "PreUpgrade step0,validation: Check service openstack-manila-scheduler is running" command: systemctl is-active --quiet openstack-manila-scheduler - when: manila_scheduler_enabled.rc == 0 - tags: step0,validation + when: (manila_scheduler_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable manila_scheduler service - tags: step2 - when: manila_scheduler_enabled.rc == 0 + when: (manila_scheduler_enabled.rc == 0) and (step|int == 2) service: name=openstack-manila-scheduler state=stopped enabled=no diff --git a/docker/services/manila-share.yaml b/docker/services/manila-share.yaml index 8a2d3c9f09..cc6f0557e2 100644 --- a/docker/services/manila-share.yaml +++ b/docker/services/manila-share.yaml @@ -140,9 +140,8 @@ outputs: register: manila_share_enabled - name: "PreUpgrade step0,validation: Check service openstack-manila-share is running" command: systemctl is-active --quiet openstack-manila-share - when: manila_share_enabled.rc == 0 - tags: step0,validation + when: (manila_share_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable manila_share service - tags: step2 - when: manila_share_enabled.rc == 0 + when: (manila_share_enabled.rc == 0) and (step|int == 2) service: name=openstack-manila-share state=stopped enabled=no diff --git a/docker/services/memcached.yaml b/docker/services/memcached.yaml index d05ec30467..dee84eb8ee 100644 --- a/docker/services/memcached.yaml +++ b/docker/services/memcached.yaml @@ -122,9 +122,8 @@ outputs: register: memcached_enabled - name: "PreUpgrade step0,validation: Check service memcached is running" command: systemctl is-active --quiet memcached - when: memcached_enabled.rc == 0 - tags: step0,validation + when: (memcached_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable memcached service - tags: step2 - when: memcached_enabled.rc == 0 + when: (memcached_enabled.rc == 0) and (step|int == 2) service: name=memcached state=stopped enabled=no diff --git a/docker/services/mistral-api.yaml b/docker/services/mistral-api.yaml index 34326d404c..5897b697c5 100644 --- a/docker/services/mistral-api.yaml +++ b/docker/services/mistral-api.yaml @@ -205,11 +205,10 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check if openstack-mistral-api is running" command: systemctl is-active --quiet openstack-mistral-api - when: mistral_api_enabled.rc == 0 and httpd_enabled.rc != 0 - tags: step0,validation + when: (mistral_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) + tags: validation - name: Stop and disable mistral_api service (pre-upgrade not under httpd) - tags: step2 - when: mistral_api_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (mistral_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) service: name=openstack-mistral-api state=stopped enabled=no - name: Check if httpd service is running command: systemctl is-active --quiet httpd @@ -218,9 +217,8 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if mistral_api_wsgi is running" shell: systemctl status 'httpd' | grep -q mistral - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop mistral_api service (running under httpd) - tags: step2 service: name=httpd state=stopped enabled=no - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) diff --git a/docker/services/mistral-engine.yaml b/docker/services/mistral-engine.yaml index 350172696b..8a06024a6e 100644 --- a/docker/services/mistral-engine.yaml +++ b/docker/services/mistral-engine.yaml @@ -128,9 +128,8 @@ outputs: register: mistral_engine_enabled - name: "PreUpgrade step0,validation: Check if openstack-mistral-engine is running" command: systemctl is-active --quiet openstack-mistral-engine - when: mistral_engine_enabled.rc == 0 - tags: step0,validation + when: (mistral_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable mistral_engine service - tags: step2 - when: mistral_engine_enabled.rc == 0 + when: (mistral_engine_enabled.rc == 0) and (step|int == 2) service: name=openstack-mistral-engine state=stopped enabled=no diff --git a/docker/services/mistral-event-engine.yaml b/docker/services/mistral-event-engine.yaml index 20b1b19239..71c2163e4f 100644 --- a/docker/services/mistral-event-engine.yaml +++ b/docker/services/mistral-event-engine.yaml @@ -126,9 +126,8 @@ outputs: register: mistral_event_engine_enabled - name: "PreUpgrade step0,validation: Check if openstack-mistral-event-engine is running" command: systemctl is-active --quiet openstack-mistral-event-engine - when: mistral_event_engine_enabled.rc == 0 - tags: step0,validation + when: (mistral_event_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable mistral_event_engine service - tags: step2 - when: mistral_event_engine_enabled.rc == 0 + when: (mistral_event_engine_enabled.rc == 0) and (step|int == 2) service: name=openstack-mistral-event-engine state=stopped enabled=no diff --git a/docker/services/mistral-executor.yaml b/docker/services/mistral-executor.yaml index 075cd55eee..0499e08320 100644 --- a/docker/services/mistral-executor.yaml +++ b/docker/services/mistral-executor.yaml @@ -132,9 +132,8 @@ outputs: register: mistral_executor_enabled - name: "PreUpgrade step0,validation: Check if openstack-mistral-executor is running" command: systemctl is-active --quiet openstack-mistral-executor - when: mistral_executor_enabled.rc == 0 - tags: step0,validation + when: (mistral_executor_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable mistral_executor service - tags: step2 - when: mistral_executor_enabled.rc == 0 + when: (mistral_executor_enabled.rc == 0) and (step|int == 2) service: name=openstack-mistral-executor state=stopped enabled=no diff --git a/docker/services/multipathd.yaml b/docker/services/multipathd.yaml index 200be18f44..bbbd0e991c 100644 --- a/docker/services/multipathd.yaml +++ b/docker/services/multipathd.yaml @@ -93,9 +93,8 @@ outputs: register: multipathd_enabled - name: "PreUpgrade step0,validation: Check service multipathd is running" command: systemctl is-active --quiet multipathd - when: multipathd_enabled.rc == 0 - tags: step0,validation + when: (multipathd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable multipathd service - tags: step2 - when: multipathd_enabled.rc == 0 + when: (multipathd_enabled.rc == 0) and (step|int == 2) service: name=multipathd state=stopped enabled=no diff --git a/docker/services/neutron-api.yaml b/docker/services/neutron-api.yaml index 8309243023..6fdeddc79d 100644 --- a/docker/services/neutron-api.yaml +++ b/docker/services/neutron-api.yaml @@ -188,16 +188,18 @@ outputs: register: neutron_server_enabled - name: "PreUpgrade step0,validation: Check service neutron-server is running" command: systemctl is-active --quiet neutron-server - when: neutron_server_enabled.rc == 0 - tags: step0,validation + when: (neutron_server_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_api service - tags: step2 - when: neutron_server_enabled.rc == 0 + when: (neutron_server_enabled.rc == 0) and (step|int == 2) service: name=neutron-server state=stopped enabled=no + - name: Set fact for removal of openstack-neutron package + when: step|int == 2 + set_fact: + remove_neutron_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-neutron package if operator requests it yum: name=openstack-neutron state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_neutron_package|bool) and (step|int == 2) metadata_settings: get_attr: [NeutronBase, role_data, metadata_settings] diff --git a/docker/services/neutron-dhcp.yaml b/docker/services/neutron-dhcp.yaml index 59a9a12d12..2e91c9a04e 100644 --- a/docker/services/neutron-dhcp.yaml +++ b/docker/services/neutron-dhcp.yaml @@ -127,9 +127,8 @@ outputs: register: neutron_dhcp_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-dhcp-agent is running" command: systemctl is-active --quiet neutron-dhcp-agent - when: neutron_dhcp_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_dhcp_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_dhcp service - tags: step2 - when: neutron_dhcp_agent_enabled.rc == 0 + when: (neutron_dhcp_agent_enabled.rc == 0) and (step|int == 2) service: name=neutron-dhcp-agent state=stopped enabled=no diff --git a/docker/services/neutron-l3.yaml b/docker/services/neutron-l3.yaml index 4486ea5a8a..1470b8607c 100644 --- a/docker/services/neutron-l3.yaml +++ b/docker/services/neutron-l3.yaml @@ -125,9 +125,8 @@ outputs: register: neutron_l3_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-l3-agent is running" command: systemctl is-active --quiet neutron-l3-agent - when: neutron_l3_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_l3_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_l3 service - tags: step2 - when: neutron_l3_agent_enabled.rc == 0 + when: (neutron_l3_agent_enabled.rc == 0) and (step|int == 2) service: name=neutron-l3-agent state=stopped enabled=no diff --git a/docker/services/neutron-metadata.yaml b/docker/services/neutron-metadata.yaml index 44e6b8780d..84329424f8 100644 --- a/docker/services/neutron-metadata.yaml +++ b/docker/services/neutron-metadata.yaml @@ -124,9 +124,8 @@ outputs: register: neutron_metadata_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-metadata-agent is running" command: systemctl is-active --quiet neutron-metadata-agent - when: neutron_metadata_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_metadata_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_metadata service - tags: step2 - when: neutron_metadata_agent_enabled.rc == 0 + when: (neutron_metadata_agent_enabled.rc == 0) and (step|int == 2) service: name=neutron-metadata-agent state=stopped enabled=no diff --git a/docker/services/neutron-ovs-agent.yaml b/docker/services/neutron-ovs-agent.yaml index e1dfe63e6e..2d94957145 100644 --- a/docker/services/neutron-ovs-agent.yaml +++ b/docker/services/neutron-ovs-agent.yaml @@ -150,14 +150,16 @@ outputs: register: neutron_ovs_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-openvswitch-agent is running" command: systemctl is-active --quiet neutron-openvswitch-agent - when: neutron_ovs_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_ovs_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_ovs_agent service - tags: step2 - when: neutron_ovs_agent_enabled.rc == 0 + when: (neutron_ovs_agent_enabled.rc == 0) and (step|int == 2) service: name=neutron-openvswitch-agent state=stopped enabled=no + - name: Set fact for removal of openstack-neutron-openvswitch package + when: step|int == 2 + set_fact: + remove_neutron_openvswitch_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-neutron-openvswitch package if operator requests it yum: name=openstack-neutron-openvswitch state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_neutron_openvswitch_package|bool) and (step|int == 2) diff --git a/docker/services/neutron-sriov-agent.yaml b/docker/services/neutron-sriov-agent.yaml index c96a413e6a..2acdf81eff 100644 --- a/docker/services/neutron-sriov-agent.yaml +++ b/docker/services/neutron-sriov-agent.yaml @@ -112,9 +112,8 @@ outputs: register: neutron_sriov_nic_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-sriov-nic-agent is running" command: systemctl is-active --quiet neutron-sriov-nic-agent - when: neutron_sriov_nic_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_sriov_nic_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable neutron_sriov_agent service - tags: step2 - when: neutron_sriov_nic_agent_enabled.rc == 0 + when: (neutron_sriov_nic_agent_enabled.rc == 0) and (step|int == 2) service: name=neutron-sriov-nic-agent state=stopped enabled=no diff --git a/docker/services/nova-api.yaml b/docker/services/nova-api.yaml index 5d672cf661..fe4bcacfbc 100644 --- a/docker/services/nova-api.yaml +++ b/docker/services/nova-api.yaml @@ -318,11 +318,10 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-api is running" command: systemctl is-active --quiet openstack-nova-api - tags: step0,validation - when: nova_api_enabled.rc == 0 and httpd_enabled.rc != 0 + tags: validation + when: (nova_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 0) - name: Stop and disable nova_api service - tags: step2 - when: nova_api_enabled.rc == 0 and httpd_enabled.rc != 0 + when: (nova_api_enabled.rc == 0) and (httpd_enabled.rc != 0) and (step|int == 2) service: name=openstack-nova-api state=stopped enabled=no - name: Check if httpd service is running command: systemctl is-active --quiet httpd @@ -330,20 +329,22 @@ outputs: ignore_errors: True register: httpd_running - name: "PreUpgrade step0,validation: Check if nova_wsgi is running" - tags: step0,validation + tags: validation shell: systemctl status 'httpd' | grep -q 'nova' - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop nova_api service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped + - name: Set fact for removal of openstack-nova-api package + when: step|int == 2 + set_fact: + remove_nova_api_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-api package if operator requests it yum: name=openstack-nova-api state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_api_package|bool) and (step|int == 2) - name: remove old nova cron jobs - tags: step2 + when: step|int == 2 file: path: /var/spool/cron/nova state: absent diff --git a/docker/services/nova-compute.yaml b/docker/services/nova-compute.yaml index adc21b47e9..2e5e7830c3 100644 --- a/docker/services/nova-compute.yaml +++ b/docker/services/nova-compute.yaml @@ -194,7 +194,7 @@ outputs: ignore_errors: True register: nova_compute_enabled - name: Set compute upgrade level to auto - tags: step1 + when: step|int == 1 ini_file: str_replace: template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" @@ -202,14 +202,16 @@ outputs: LEVEL: {get_param: UpgradeLevelNovaCompute} - name: "PreUpgrade step0,validation: Check service openstack-nova-compute is running" command: systemctl is-active --quiet openstack-nova-compute - tags: step0,validation - when: nova_compute_enabled.rc == 0 + tags: validation + when: (nova_compute_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova-compute service - tags: step2 - when: nova_compute_enabled.rc == 0 + when: (nova_compute_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-compute state=stopped enabled=no + - name: Set fact for removal of openstack-nova-compute package + when: step|int == 2 + set_fact: + remove_nova_compute_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-compute package if operator requests it yum: name=openstack-nova-compute state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_compute_package|bool) and (step|int == 2) diff --git a/docker/services/nova-conductor.yaml b/docker/services/nova-conductor.yaml index cf205d7ae5..40a39331e3 100644 --- a/docker/services/nova-conductor.yaml +++ b/docker/services/nova-conductor.yaml @@ -134,7 +134,7 @@ outputs: ignore_errors: True register: nova_conductor_enabled - name: Set compute upgrade level to auto - tags: step1 + when: step|int == 1 ini_file: str_replace: template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" @@ -142,14 +142,16 @@ outputs: LEVEL: {get_param: UpgradeLevelNovaCompute} - name: "PreUpgrade step0,validation: Check service openstack-nova-conductor is running" command: systemctl is-active --quiet openstack-nova-conductor - tags: step0,validation - when: nova_conductor_enabled.rc == 0 + tags: validation + when: (nova_conductor_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova_conductor service - tags: step2 - when: nova_conductor_enabled.rc == 0 + when: (nova_conductor_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-conductor state=stopped enabled=no + - name: Set fact for removal of openstack-nova-conductor package + when: step|int == 2 + set_fact: + remove_nova_conductor_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-conductor package if operator requests it yum: name=openstack-nova-conductor state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_conductor_package|bool) and (step|int == 2) diff --git a/docker/services/nova-consoleauth.yaml b/docker/services/nova-consoleauth.yaml index 71250b43e3..d654bb571c 100644 --- a/docker/services/nova-consoleauth.yaml +++ b/docker/services/nova-consoleauth.yaml @@ -130,14 +130,16 @@ outputs: register: nova_consoleauth_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-consoleauth is running" command: systemctl is-active --quiet openstack-nova-consoleauth - tags: step0,validation - when: nova_consoleauth_enabled.rc == 0 + tags: validation + when: (nova_consoleauth_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova_consoleauth service - tags: step2 - when: nova_consoleauth_enabled.rc == 0 + when: (nova_consoleauth_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-consoleauth state=stopped enabled=no + - name: Set fact for removal of openstack-nova-console package + when: step|int == 2 + set_fact: + remove_nova_console_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-console package if operator requests it yum: name=openstack-nova-console state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_console_package|bool) and (step|int == 2) diff --git a/docker/services/nova-ironic.yaml b/docker/services/nova-ironic.yaml index 4843c0f8fe..3ff9a574f0 100644 --- a/docker/services/nova-ironic.yaml +++ b/docker/services/nova-ironic.yaml @@ -137,9 +137,8 @@ outputs: register: nova_ironic_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-compute is running" command: systemctl is-active --quiet openstack-nova-compute - tags: step0,validation - when: nova_ironic_enabled.rc == 0 + tags: validation + when: (nova_ironic_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova-compute service - tags: step2 - when: nova_ironic_enabled.rc == 0 + when: (nova_ironic_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-compute state=stopped enabled=no diff --git a/docker/services/nova-libvirt.yaml b/docker/services/nova-libvirt.yaml index a6401920be..29bb0229c4 100644 --- a/docker/services/nova-libvirt.yaml +++ b/docker/services/nova-libvirt.yaml @@ -317,9 +317,8 @@ outputs: register: nova_libvirt_enabled - name: "PreUpgrade step0,validation: Check service libvirtd is running" command: systemctl is-active --quiet libvirtd - tags: step0,validation - when: nova_libvirt_enabled.rc == 0 + tags: validation + when: (nova_libvirt_enabled.rc == 0) and (step|int == 0) - name: Stop and disable libvirtd service - tags: step2 - when: nova_libvirt_enabled.rc == 0 + when: (nova_libvirt_enabled.rc == 0) and (step|int == 2) service: name=libvirtd state=stopped enabled=no diff --git a/docker/services/nova-metadata.yaml b/docker/services/nova-metadata.yaml index 4bbbbf0f92..b609196e6c 100644 --- a/docker/services/nova-metadata.yaml +++ b/docker/services/nova-metadata.yaml @@ -124,9 +124,8 @@ outputs: register: nova_metadata_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-api is running" command: systemctl is-active --quiet openstack-nova-api - tags: step0,validation - when: nova_metadata_enabled.rc == 0 + tags: validation + when: (nova_metadata_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova_api service - tags: step2 - when: nova_metadata_enabled.rc == 0 + when: (nova_metadata_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-api state=stopped enabled=no diff --git a/docker/services/nova-placement.yaml b/docker/services/nova-placement.yaml index d46a671f52..80bee561e6 100644 --- a/docker/services/nova-placement.yaml +++ b/docker/services/nova-placement.yaml @@ -150,15 +150,17 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if placement_wsgi is running" shell: systemctl status 'httpd' | grep -q placement_wsgi - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop and disable nova_placement service (running under httpd) - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no + - name: Set fact for removal of httpd package + when: step|int == 2 + set_fact: + remove_httpd_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove httpd package if operator requests it yum: name=httpd state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_httpd_package|bool) and (step|int == 2) diff --git a/docker/services/nova-scheduler.yaml b/docker/services/nova-scheduler.yaml index 85346dca56..13b4636662 100644 --- a/docker/services/nova-scheduler.yaml +++ b/docker/services/nova-scheduler.yaml @@ -131,14 +131,16 @@ outputs: register: nova_scheduler_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-scheduler is running" command: systemctl is-active --quiet openstack-nova-scheduler - tags: step0,validation - when: nova_scheduler_enabled.rc == 0 + tags: validation + when: (nova_scheduler_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova_scheduler service - tags: step2 - when: nova_scheduler_enabled.rc == 0 + when: (nova_scheduler_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-scheduler state=stopped enabled=no + - name: Set fact for removal of openstack-nova-scheduler package + when: step|int == 2 + set_fact: + remove_nova_scheduler_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-scheduler package if operator requests it yum: name=openstack-nova-scheduler state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_scheduler_package|bool) and (step|int == 2) diff --git a/docker/services/nova-vnc-proxy.yaml b/docker/services/nova-vnc-proxy.yaml index a57e35cc9d..d7be00a630 100644 --- a/docker/services/nova-vnc-proxy.yaml +++ b/docker/services/nova-vnc-proxy.yaml @@ -130,14 +130,16 @@ outputs: register: nova_vncproxy_enabled - name: "PreUpgrade step0,validation: Check service openstack-nova-novncproxy is running" command: systemctl is-active --quiet openstack-nova-novncproxy - tags: step0,validation - when: nova_vncproxy_enabled.rc == 0 + tags: validation + when: (nova_vncproxy_enabled.rc == 0) and (step|int == 0) - name: Stop and disable nova_vnc_proxy service - tags: step2 - when: nova_vncproxy_enabled.rc == 0 + when: (nova_vncproxy_enabled.rc == 0) and (step|int == 2) service: name=openstack-nova-novncproxy state=stopped enabled=no + - name: Set fact for removal of openstack-nova-novncproxy package + when: step|int == 2 + set_fact: + remove_nova_novncproxy_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-nova-novncproxy package if operator requests it yum: name=openstack-nova-novncproxy state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_nova_novncproxy_package|bool) and (step|int == 2) diff --git a/docker/services/octavia-api.yaml b/docker/services/octavia-api.yaml index 8bdadc92ff..715a3840d2 100644 --- a/docker/services/octavia-api.yaml +++ b/docker/services/octavia-api.yaml @@ -184,5 +184,5 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable octavia_api service - tags: step2 + when: step|int == 2 service: name=openstack-octavia-api state=stopped enabled=no diff --git a/docker/services/octavia-health-manager.yaml b/docker/services/octavia-health-manager.yaml index 03627a0789..0a4d8932e3 100644 --- a/docker/services/octavia-health-manager.yaml +++ b/docker/services/octavia-health-manager.yaml @@ -126,10 +126,13 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable octavia_health_manager service - tags: step2 + when: step|int == 2 service: name=openstack-octavia-health-manager state=stopped enabled=no + - name: Set fact for removal of openstack-octavia-health-manager package + when: step|int == 2 + set_fact: + remove_octavia_health_manager_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-octavia-health-manager package if operator requests it yum: name=openstack-octavia-health-manager state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_octavia_health_manager_package|bool) and (step|int == 2) diff --git a/docker/services/octavia-housekeeping.yaml b/docker/services/octavia-housekeeping.yaml index 9d0a86b8c1..13e96792bc 100644 --- a/docker/services/octavia-housekeeping.yaml +++ b/docker/services/octavia-housekeeping.yaml @@ -122,5 +122,5 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable octavia_housekeeping service - tags: step2 + when: step|int == 2 service: name=openstack-octavia-housekeeping state=stopped enabled=no diff --git a/docker/services/octavia-worker.yaml b/docker/services/octavia-worker.yaml index 37a8211af3..19ee74aaf7 100644 --- a/docker/services/octavia-worker.yaml +++ b/docker/services/octavia-worker.yaml @@ -122,5 +122,5 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable octavia_worker service - tags: step2 + when: step|int == 2 service: name=openstack-octavia-worker state=stopped enabled=no diff --git a/docker/services/opendaylight-api.yaml b/docker/services/opendaylight-api.yaml index 82aa1e15bb..709d4b5292 100644 --- a/docker/services/opendaylight-api.yaml +++ b/docker/services/opendaylight-api.yaml @@ -129,9 +129,8 @@ outputs: register: opendaylight_enabled - name: "PreUpgrade step0,validation: Check service opendaylight is running" command: systemctl is-active --quiet opendaylight - when: opendaylight_enabled.rc == 0 - tags: step0,validation + when: (opendaylight_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable opendaylight_api service - tags: step2 - when: opendaylight_enabled.rc == 0 + when: (opendaylight_enabled.rc == 0) and (step|int == 2) service: name=opendaylight state=stopped enabled=no diff --git a/docker/services/ovn-controller.yaml b/docker/services/ovn-controller.yaml index e418354e52..f7299ae7f4 100644 --- a/docker/services/ovn-controller.yaml +++ b/docker/services/ovn-controller.yaml @@ -120,9 +120,8 @@ outputs: register: ovn_controller_enabled - name: "PreUpgrade step0,validation: Check service ovn_controller is running" command: systemctl is-active --quiet ovn-controller - when: ovn_controller_enabled.rc == 0 - tags: step0,validation + when: (ovn_controller_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ovn-controller service - tags: step2 - when: ovn_controller_enabled.rc == 0 + when: (ovn_controller_enabled.rc == 0) and (step|int == 2) service: name=ovn-controller state=stopped enabled=no diff --git a/docker/services/ovn-dbs.yaml b/docker/services/ovn-dbs.yaml index 3908305184..44a32ec662 100644 --- a/docker/services/ovn-dbs.yaml +++ b/docker/services/ovn-dbs.yaml @@ -212,9 +212,8 @@ outputs: register: ovn_northd_enabled - name: "PreUpgrade step0,validation: Check service ovn_northd is running" command: systemctl is-active --quiet ovn-northd - when: ovn_northd_enabled.rc == 0 - tags: step0,validation + when: (ovn_northd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable ovn-northd service - tags: step2 - when: ovn_northd_enabled.rc == 0 + when: (ovn_northd_enabled.rc == 0) and (step|int == 2) service: name=ovn-northd state=stopped enabled=no diff --git a/docker/services/pacemaker/cinder-backup.yaml b/docker/services/pacemaker/cinder-backup.yaml index 4aca1bd7e8..9ed09d9dba 100644 --- a/docker/services/pacemaker/cinder-backup.yaml +++ b/docker/services/pacemaker/cinder-backup.yaml @@ -213,38 +213,36 @@ outputs: - name: set is_bootstrap_node fact tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - - name: Disable the openstack-cinder-backup cluster resource - tags: step2 - pacemaker_resource: - resource: openstack-cinder-backup - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node - - name: Delete the stopped openstack-cinder-backup cluster resource. - tags: step2 - pacemaker_resource: - resource: openstack-cinder-backup - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node + - when: (is_bootstrap_node) and (step|int == 2) + block: + - name: Disable the openstack-cinder-backup cluster resource + pacemaker_resource: + resource: openstack-cinder-backup + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped openstack-cinder-backup cluster resource. + pacemaker_resource: + resource: openstack-cinder-backup + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 - name: Disable cinder_backup service - tags: step2 + when: step|int == 2 service: name=openstack-cinder-backup enabled=no update_tasks: - name: Get docker Cinder-Backup image set_fact: docker_image: {get_param: DockerCinderBackupImage} docker_image_latest: *cinder_backup_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Pull latest Cinder-Backup images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Get previous Cinder-Backup image id shell: "docker images | awk '/cinder-backup.* pcmklatest/{print $3}'" register: cinder_backup_image_id @@ -259,10 +257,10 @@ outputs: - name: Remove previous Cinder-Backup images shell: "docker rmi -f {{cinder_backup_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - cinder_backup_image_id.stdout != '' - name: Retag pcmklatest to latest Cinder-Backup image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/cinder-volume.yaml b/docker/services/pacemaker/cinder-volume.yaml index 96bf1ff6c5..3fcb3b1388 100644 --- a/docker/services/pacemaker/cinder-volume.yaml +++ b/docker/services/pacemaker/cinder-volume.yaml @@ -238,35 +238,33 @@ outputs: - name: set is_bootstrap_node fact tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - - name: Disable the openstack-cinder-volume cluster resource - tags: step2 - pacemaker_resource: - resource: openstack-cinder-volume - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node - - name: Delete the stopped openstack-cinder-volume cluster resource. - tags: step2 - pacemaker_resource: - resource: openstack-cinder-volume - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node + - when: (is_bootstrap_node) and (step|int == 2) + block: + - name: Disable the openstack-cinder-volume cluster resource + pacemaker_resource: + resource: openstack-cinder-volume + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped openstack-cinder-volume cluster resource. + pacemaker_resource: + resource: openstack-cinder-volume + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 - name: Disable cinder_volume service from boot - tags: step2 + when: step|int == 2 service: name=openstack-cinder-volume enabled=no update_tasks: - name: Get docker Cinder-Volume image set_fact: docker_image: {get_param: DockerCinderVolumeImage} docker_image_latest: *cinder_volume_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Cinder-Volume image id shell: "docker images | awk '/cinder-volume.* pcmklatest/{print $3}'" register: cinder_volume_image_id @@ -281,13 +279,13 @@ outputs: - name: Remove previous Cinder-Volume images shell: "docker rmi -f {{cinder_volume_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - cinder_volume_image_id.stdout != '' - name: Pull latest Cinder-Volume images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Cinder-Volume image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/database/mysql.yaml b/docker/services/pacemaker/database/mysql.yaml index 83cd401aad..d8b7259f03 100644 --- a/docker/services/pacemaker/database/mysql.yaml +++ b/docker/services/pacemaker/database/mysql.yaml @@ -277,48 +277,47 @@ outputs: tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Check cluster resource status - tags: step2 + when: step|int == 2 pacemaker_resource: resource: galera state: master check_mode: true ignore_errors: true register: galera_res - - name: Disable the galera cluster resource - tags: step2 - pacemaker_resource: - resource: galera - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and galera_res|succeeded - - name: Delete the stopped galera cluster resource. - tags: step2 - pacemaker_resource: - resource: galera - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and galera_res|succeeded + - when: (is_bootstrap_node) and (galera_res|succeeded) and (step|int == 2) + block: + - name: Disable the galera cluster resource + pacemaker_resource: + resource: galera + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped galera cluster resource. + when: step|int == 2 + pacemaker_resource: + resource: galera + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 - name: Disable mysql service - tags: step2 + when: step|int == 2 service: name=mariadb enabled=no - name: Remove clustercheck service from xinetd - tags: step2 + when: step|int == 2 file: state=absent path=/etc/xinetd.d/galera-monitor - name: Restart xinetd service after clustercheck removal - tags: step2 + when: step|int == 2 service: name=xinetd state=restarted update_tasks: - name: Get docker Mariadb image set_fact: docker_image: {get_param: DockerMysqlImage} docker_image_latest: *mysql_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Mariadb image id shell: "docker images | awk '/mariadb.* pcmklatest/{print $3}'" register: mariadb_image_id @@ -333,13 +332,13 @@ outputs: - name: Remove previous Mariadb images shell: "docker rmi -f {{mariadb_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - mariadb_image_id.stdout != '' - name: Pull latest Mariadb images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Mariadb image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/database/redis.yaml b/docker/services/pacemaker/database/redis.yaml index f56460f59b..b2e86f5fe7 100644 --- a/docker/services/pacemaker/database/redis.yaml +++ b/docker/services/pacemaker/database/redis.yaml @@ -190,42 +190,40 @@ outputs: tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Check cluster resource status - tags: step2 + when: step|int == 2 pacemaker_resource: resource: {get_attr: [RedisBase, role_data, service_name]} state: master check_mode: true ignore_errors: true register: redis_res - - name: Disable the redis cluster resource - tags: step2 - pacemaker_resource: - resource: {get_attr: [RedisBase, role_data, service_name]} - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and redis_res|succeeded - - name: Delete the stopped redis cluster resource. - tags: step2 - pacemaker_resource: - resource: {get_attr: [RedisBase, role_data, service_name]} - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and redis_res|succeeded + - when: (is_bootstrap_node) and (redis_res|succeeded) and (step|int == 2) + block: + - name: Disable the redis cluster resource + pacemaker_resource: + resource: {get_attr: [RedisBase, role_data, service_name]} + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped redis cluster resource. + pacemaker_resource: + resource: {get_attr: [RedisBase, role_data, service_name]} + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 - name: Disable redis service - tags: step2 + when: step|int == 2 service: name=redis enabled=no update_tasks: - name: Get docker Redis image set_fact: docker_image: {get_param: DockerRedisImage} docker_image_latest: *redis_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Redis image id shell: "docker images | awk '/redis.* pcmklatest/{print $3}'" register: redis_image_id @@ -240,13 +238,13 @@ outputs: - name: Remove previous Redis images shell: "docker rmi -f {{redis_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - redis_image_id.stdout != '' - name: Pull latest Redis images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Redis image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/haproxy.yaml b/docker/services/pacemaker/haproxy.yaml index f955d61de0..68f0ff4cfb 100644 --- a/docker/services/pacemaker/haproxy.yaml +++ b/docker/services/pacemaker/haproxy.yaml @@ -227,39 +227,37 @@ outputs: tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Check cluster resource status - tags: step2 + when: step|int == 2 pacemaker_resource: resource: {get_attr: [HAProxyBase, role_data, service_name]} state: started check_mode: true ignore_errors: true register: haproxy_res - - name: Disable the haproxy cluster resource. - tags: step2 - pacemaker_resource: - resource: {get_attr: [HAProxyBase, role_data, service_name]} - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and haproxy_res|succeeded - - name: Delete the stopped haproxy cluster resource. - tags: step2 - pacemaker_resource: - resource: {get_attr: [HAProxyBase, role_data, service_name]} - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and haproxy_res|succeeded + - when: (is_bootstrap_node) and (haproxy_res|succeeded) and (step|int == 2) + block: + - name: Disable the haproxy cluster resource. + pacemaker_resource: + resource: {get_attr: [HAProxyBase, role_data, service_name]} + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped haproxy cluster resource. + pacemaker_resource: + resource: {get_attr: [HAProxyBase, role_data, service_name]} + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 update_tasks: - name: Get docker Haproxy image set_fact: docker_image: {get_param: DockerHAProxyImage} docker_image_latest: *haproxy_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Haproxy image id shell: "docker images | awk '/haproxy.* pcmklatest/{print $3}'" register: haproxy_image_id @@ -274,13 +272,13 @@ outputs: - name: Remove previous Haproxy images shell: "docker rmi -f {{haproxy_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - haproxy_image_id.stdout != '' - name: Pull latest Haproxy images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Haproxy image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/manila-share.yaml b/docker/services/pacemaker/manila-share.yaml index f59217407a..aa549dc14b 100644 --- a/docker/services/pacemaker/manila-share.yaml +++ b/docker/services/pacemaker/manila-share.yaml @@ -177,14 +177,14 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable manila_share service - tags: step2 + when: step|int == 2 service: name=openstack-manila-share state=stopped enabled=no update_tasks: - name: Get docker Manila-Share image set_fact: docker_image: {get_param: DockerManilaShareImage} docker_image_latest: *manila_share_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Manila-Share image id shell: "docker images | awk '/manila-share.* pcmklatest/{print $3}'" register: manila_share_image_id @@ -199,13 +199,13 @@ outputs: - name: Remove previous Manila-Share images shell: "docker rmi -f {{manila_share_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - manila_share_image_id.stdout != '' - name: Pull latest Manila-Share images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Manila-Share image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/pacemaker/ovn-dbs.yaml b/docker/services/pacemaker/ovn-dbs.yaml index 4aaf311db8..7043023995 100644 --- a/docker/services/pacemaker/ovn-dbs.yaml +++ b/docker/services/pacemaker/ovn-dbs.yaml @@ -144,5 +144,5 @@ outputs: ignore_errors: true upgrade_tasks: - name: Stop and disable ovn-northd service - tags: step2 + when: step|int == 2 service: name=ovn-northd state=stopped enabled=no diff --git a/docker/services/pacemaker/rabbitmq.yaml b/docker/services/pacemaker/rabbitmq.yaml index 7ed9e49db7..1cf45e9497 100644 --- a/docker/services/pacemaker/rabbitmq.yaml +++ b/docker/services/pacemaker/rabbitmq.yaml @@ -228,42 +228,40 @@ outputs: tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Check cluster resource status - tags: step2 + when: step|int == 2 pacemaker_resource: resource: {get_attr: [RabbitmqBase, role_data, service_name]} state: started check_mode: true ignore_errors: true register: rabbitmq_res - - name: Disable the rabbitmq cluster resource. - tags: step2 - pacemaker_resource: - resource: {get_attr: [RabbitmqBase, role_data, service_name]} - state: disable - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and rabbitmq_res|succeeded - - name: Delete the stopped rabbitmq cluster resource. - tags: step2 - pacemaker_resource: - resource: {get_attr: [RabbitmqBase, role_data, service_name]} - state: delete - wait_for_resource: true - register: output - retries: 5 - until: output.rc == 0 - when: is_bootstrap_node and rabbitmq_res|succeeded + - when: (is_bootstrap_node) and (rabbitmq_res|succeeded) and (step|int == 2) + block: + - name: Disable the rabbitmq cluster resource. + pacemaker_resource: + resource: {get_attr: [RabbitmqBase, role_data, service_name]} + state: disable + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 + - name: Delete the stopped rabbitmq cluster resource. + pacemaker_resource: + resource: {get_attr: [RabbitmqBase, role_data, service_name]} + state: delete + wait_for_resource: true + register: output + retries: 5 + until: output.rc == 0 - name: Disable rabbitmq service - tags: step2 + when: step|int == 2 service: name=rabbitmq-server enabled=no update_tasks: - name: Get docker Rabbitmq image set_fact: docker_image: {get_param: DockerRabbitmqImage} docker_image_latest: *rabbitmq_image_pcmklatest - when: step == '2' + when: step|int == 2 - name: Get previous Rabbitmq image id shell: "docker images | awk '/rabbitmq.* pcmklatest/{print $3}'" register: rabbitmq_image_id @@ -278,13 +276,13 @@ outputs: - name: Remove previous Rabbitmq images shell: "docker rmi -f {{rabbitmq_image_id.stdout}}" when: - - step == '2' + - step|int == 2 - rabbitmq_image_id.stdout != '' - name: Pull latest Rabbitmq images command: "docker pull {{docker_image}}" - when: step == "2" + when: step|int == 2 - name: Retag pcmklatest to latest Rabbitmq image shell: "docker tag {{docker_image}} {{docker_image_latest}}" - when: step == "2" + when: step|int == 2 # Got to check that pacemaker_is_active is working fine with bundle. # TODO: pacemaker_is_active resource doesn't support bundle. diff --git a/docker/services/rabbitmq.yaml b/docker/services/rabbitmq.yaml index 36e1c8f4df..8c98a89f06 100644 --- a/docker/services/rabbitmq.yaml +++ b/docker/services/rabbitmq.yaml @@ -232,11 +232,10 @@ outputs: register: rabbitmq_enabled - name: "PreUpgrade step0,validation: Check service rabbitmq server is running" command: systemctl is-active --quiet rabbitmq-server - when: rabbitmq_enabled.rc == 0 - tags: step0,validation + when: (rabbitmq_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable rabbitmq service - tags: step2 - when: rabbitmq_enabled.rc == 0 + when: (rabbitmq_enabled.rc == 0) and (step|int == 2) service: name=rabbitmq-server state=stopped enabled=no update_tasks: # TODO: Are we sure we want to support this. Rolling update diff --git a/docker/services/sahara-api.yaml b/docker/services/sahara-api.yaml index 762053e15e..c8034ecc5b 100644 --- a/docker/services/sahara-api.yaml +++ b/docker/services/sahara-api.yaml @@ -152,14 +152,16 @@ outputs: register: sahara_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-sahara-api is running" command: systemctl is-active --quiet openstack-sahara-api - when: sahara_api_enabled.rc == 0 - tags: step0,validation + when: (sahara_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable sahara_api service - tags: step2 - when: sahara_api_enabled.rc == 0 + when: (sahara_api_enabled.rc == 0) and (step|int == 2) service: name=openstack-sahara-api state=stopped enabled=no + - name: Set fact for removal of openstack-sahara-api package + when: step|int == 2 + set_fact: + remove_sahara_api_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-sahara-api package if operator requests it yum: name=openstack-sahara-api state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_sahara_api_package|bool) and (step|int == 2) diff --git a/docker/services/sahara-engine.yaml b/docker/services/sahara-engine.yaml index 3ec2dd469f..7d71b80e99 100644 --- a/docker/services/sahara-engine.yaml +++ b/docker/services/sahara-engine.yaml @@ -137,14 +137,16 @@ outputs: register: sahara_engine_enabled - name: "PreUpgrade step0,validation: Check service openstack-sahara-engine is running" command: systemctl is-active --quiet openstack-sahara-engine - when: sahara_engine_enabled.rc == 0 - tags: step0,validation + when: (sahara_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable sahara_engine service - tags: step2 - when: sahara_engine_enabled.rc == 0 + when: (sahara_engine_enabled.rc == 0) and (step|int == 2) service: name=openstack-sahara-engine state=stopped enabled=no + - name: Set fact for removal of openstack-sahara-engine package + when: step|int == 2 + set_fact: + remove_sahara_engine_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-sahara-engine package if operator requests it yum: name=openstack-sahara-engine state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_sahara_engine_package|bool) and (step|int == 2) diff --git a/docker/services/sensu-client.yaml b/docker/services/sensu-client.yaml index 6db183afe6..3411e25dc0 100644 --- a/docker/services/sensu-client.yaml +++ b/docker/services/sensu-client.yaml @@ -160,9 +160,8 @@ outputs: register: sensu_enabled - name: "PreUpgrade step0,validation: Check if sensu client is running" command: systemctl is-active --quiet sensu-client - when: sensu_enabled.rc == 0 - tags: step0,validation + when: (sensu_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable sensu-client service - tags: step2 - when: sensu_enabled.rc == 0 + when: (sensu_enabled.rc == 0) and (step|int == 2) service: name=sensu-client state=stopped enabled=no diff --git a/docker/services/swift-proxy.yaml b/docker/services/swift-proxy.yaml index 477da55630..04b2d15932 100644 --- a/docker/services/swift-proxy.yaml +++ b/docker/services/swift-proxy.yaml @@ -157,18 +157,20 @@ outputs: - openstack-swift-object-expirer - name: "PreUpgrade step0,validation: Check service openstack-swift-proxy and openstack-swift-object-expirer are running" command: systemctl is-active --quiet "{{ item.item }}" - when: item.rc == 0 - tags: step0,validation + when: (item.rc == 0) and (step|int == 0) + tags: validation with_items: "{{ swift_proxy_services_enabled.results }}" - name: Stop and disable swift-proxy and swift-object-expirer services - tags: step2 - when: item.rc == 0 + when: (item.rc == 0) and (step|int == 2) service: name={{ item.item }} state=stopped enabled=no with_items: "{{ swift_proxy_services_enabled.results }}" + - name: Set fact for removal of openstack-swift-proxy package + when: step|int == 2 + set_fact: + remove_swift_proxy_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-swift-proxy package if operator requests it yum: name=openstack-swift-proxy state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_swift_proxy_package|bool) and (step|int == 2) metadata_settings: get_attr: [SwiftProxyBase, role_data, metadata_settings] diff --git a/docker/services/swift-storage.yaml b/docker/services/swift-storage.yaml index 1c34737642..e8a4f55027 100644 --- a/docker/services/swift-storage.yaml +++ b/docker/services/swift-storage.yaml @@ -504,28 +504,30 @@ outputs: - openstack-swift-object - name: "PreUpgrade step0,validation: Check swift storage services are running" command: systemctl is-active --quiet "{{ item.item }}" - tags: step0,validation + tags: validation with_items: "{{ swift_services_enabled.results }}" - when: item.rc == 0 + when: (item.rc == 0) and (step|int == 0) - name: Stop and disable swift storage services - tags: step2 service: name={{ item.item }} state=stopped enabled=no with_items: "{{ swift_services_enabled.results }}" - when: item.rc == 0 + when: (item.rc == 0) and (step|int == 2) + - name: Set fact for removal of openstack-swift-container,object,account package + when: step|int == 2 + set_fact: + remove_swift_package: {get_param: UpgradeRemoveUnusedPackages} - name: Remove openstack-swift-container,object,account packages if operator requests it yum: name={{ item }} state=removed - tags: step2 ignore_errors: True - when: {get_param: UpgradeRemoveUnusedPackages} + when: (remove_swift_package|bool) and (step|int == 2) with_items: - openstack-swift-container - openstack-swift-object - openstack-swift-account - name: Remove rsync service from xinetd - tags: step2 file: state=absent path=/etc/xinetd.d/rsync + when: step|int == 2 - name: Restart xinetd service after rsync removal - tags: step2 + when: step|int == 2 service: name=xinetd state=restarted update_tasks: - name: Ensure rsyncd pid file is absent diff --git a/docker/services/tacker.yaml b/docker/services/tacker.yaml index cd335a7de7..ad560b16e6 100644 --- a/docker/services/tacker.yaml +++ b/docker/services/tacker.yaml @@ -150,9 +150,8 @@ outputs: register: tacker_enabled - name: "PreUpgrade step0,validation: Check if tacker is running" command: systemctl is-active --quiet openstack-tacker-server - when: tacker_enabled.rc == 0 - tags: step0,validation + when: (tacker_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop and disable tacker-server service - tags: step2 - when: tacker_enabled.rc == 0 + when: (tacker_enabled.rc == 0) and (step|int == 2) service: name=openstack-tacker-server state=stopped enabled=no diff --git a/docker/services/zaqar.yaml b/docker/services/zaqar.yaml index 09ffcfb1ad..3e1a7adf0c 100644 --- a/docker/services/zaqar.yaml +++ b/docker/services/zaqar.yaml @@ -207,11 +207,10 @@ outputs: register: httpd_running - name: "PreUpgrade step0,validation: Check if zaqar_wsgi is running" shell: systemctl status 'httpd' | grep -q zaqar_wsgi - tags: step0,validation - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + tags: validation + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 0) - name: Stop and disable zaqar service - tags: step2 - when: httpd_enabled.rc == 0 and httpd_running.rc == 0 + when: (httpd_enabled.rc == 0) and (httpd_running.rc == 0) and (step|int == 2) service: name=httpd state=stopped enabled=no metadata_settings: get_attr: [ZaqarBase, role_data, metadata_settings] diff --git a/extraconfig/services/kubernetes-master.yaml b/extraconfig/services/kubernetes-master.yaml index 615353523d..c2387d267a 100644 --- a/extraconfig/services/kubernetes-master.yaml +++ b/extraconfig/services/kubernetes-master.yaml @@ -63,7 +63,7 @@ outputs: external_deploy_tasks: # FIXME: remove this block when kubespray is packaged - name: kubernetes_master step 2 kubespray repository - when: step == '2' + when: step|int == 2 block: - name: check kubespray directory existence stat: @@ -93,7 +93,7 @@ outputs: # do not overwrite existing contents when: not kubespray_stat.stat.exists and not kubespray_cloned_stat.stat.exists - name: kubernetes_master step 2 - when: step == '2' + when: step|int == 2 block: - name: create kubespray temp dirs file: diff --git a/puppet/services/README.rst b/puppet/services/README.rst index 98b0f87c18..7ecdd67521 100644 --- a/puppet/services/README.rst +++ b/puppet/services/README.rst @@ -133,6 +133,10 @@ has more details about the expected dictionary. Batch Upgrade Steps ------------------- +Note: the `upgrade_batch_tasks` are no longer used and deprecated for Queens. +The information below applies to upgrade_batch_tasks as they were used for the +Ocata major upgrade. The `upgrade_batch_tasks` were used exclusively by the +ceph services and for Pike ceph is now configured by ceph-ansible. Each service template may optionally define a `upgrade_batch_tasks` key, which is a list of ansible tasks to be performed during the upgrade process. @@ -164,26 +168,15 @@ Each service template may optionally define a `upgrade_tasks` key, which is a list of ansible tasks to be performed during the upgrade process. Similar to the step_config, we allow a series of steps for the per-service -upgrade sequence, defined as ansible tasks with a tag e.g "step1" for the first -step, "step2" for the second, etc. +upgrade sequence, defined as ansible tasks with a "when: step|int == 1" for +for the first step, "== 2" for the second, etc. - Steps/tags correlate to the following: + Steps correlate to the following: - 1) Stop all control-plane services. - - 2) Quiesce the control-plane, e.g disable LoadBalancer, stop - pacemaker cluster: this will stop the following resource: - - ocata: - - galera - - rabbit - - redis - - haproxy - - vips - - cinder-volumes - - cinder-backup - - manilla-share - - rbd-mirror + 1) Perform any pre-upgrade validations. + 2) Stop the control-plane services, e.g disable LoadBalancer, stop + pacemaker cluster and stop any managed resources. The exact order is controlled by the cluster constraints. 3) Perform a package update and install new packages: A general @@ -205,9 +198,8 @@ Each service template may optionally define a `update_tasks` key, which is a list of ansible tasks to be performed during the minor update process. Similar to the upgrade_tasks, we allow a series of steps for the per-service -update sequence, but note update_task selects the steps via a conditional -referencing the step variable e.g when: step == 2, which is different to the -tags based approach used for upgrade_tasks (the two may be aligned in future). +update sequence via conditionals referencing a step variable e.g when: +step|int == 2. Nova Server Metadata Settings diff --git a/puppet/services/aodh-api.yaml b/puppet/services/aodh-api.yaml index e106c58998..59d2113a20 100644 --- a/puppet/services/aodh-api.yaml +++ b/puppet/services/aodh-api.yaml @@ -120,5 +120,5 @@ outputs: - get_attr: [ApacheServiceBase, role_data, upgrade_tasks] - - name: Stop aodh_api service (running under httpd) - tags: step1 + when: step|int == 1 service: name=httpd state=stopped diff --git a/puppet/services/aodh-evaluator.yaml b/puppet/services/aodh-evaluator.yaml index 6590892c1d..9e26ca527f 100644 --- a/puppet/services/aodh-evaluator.yaml +++ b/puppet/services/aodh-evaluator.yaml @@ -63,9 +63,8 @@ outputs: register: aodh_evaluator_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-evaluator is running" shell: /usr/bin/systemctl show 'openstack-aodh-evaluator' --property ActiveState | grep '\bactive\b' - when: aodh_evaluator_enabled.rc == 0 - tags: step0,validation + when: (aodh_evaluator_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop aodh_evaluator service - tags: step1 - when: aodh_evaluator_enabled.rc == 0 + when: (aodh_evaluator_enabled.rc == 0) and (step|int == 1) service: name=openstack-aodh-evaluator state=stopped diff --git a/puppet/services/aodh-listener.yaml b/puppet/services/aodh-listener.yaml index da7aca9950..49510e427f 100644 --- a/puppet/services/aodh-listener.yaml +++ b/puppet/services/aodh-listener.yaml @@ -63,9 +63,8 @@ outputs: register: aodh_listener_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-listener is running" shell: /usr/bin/systemctl show 'openstack-aodh-listener' --property ActiveState | grep '\bactive\b' - when: aodh_listener_enabled.rc == 0 - tags: step0,validation + when: (aodh_listener_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop aodh_listener service - tags: step1 - when: aodh_listener_enabled.rc == 0 + when: (aodh_listener_enabled.rc == 0) and (step|int == 1) service: name=openstack-aodh-listener state=stopped diff --git a/puppet/services/aodh-notifier.yaml b/puppet/services/aodh-notifier.yaml index 8752db3e7f..a2e8eb762b 100644 --- a/puppet/services/aodh-notifier.yaml +++ b/puppet/services/aodh-notifier.yaml @@ -63,9 +63,8 @@ outputs: register: aodh_notifier_enabled - name: "PreUpgrade step0,validation: Check service openstack-aodh-notifier is running" shell: /usr/bin/systemctl show 'openstack-aodh-notifier' --property ActiveState | grep '\bactive\b' - when: aodh_notifier_enabled.rc == 0 - tags: step0,validation + when: (aodh_notifier_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop aodh_notifier service - tags: step1 - when: aodh_notifier_enabled.rc == 0 + when: (aodh_notifier_enabled.rc == 0) and (step|int == 1) service: name=openstack-aodh-notifier state=stopped diff --git a/puppet/services/apache.yaml b/puppet/services/apache.yaml index 33f5b70b0a..9506a7c7d6 100644 --- a/puppet/services/apache.yaml +++ b/puppet/services/apache.yaml @@ -131,8 +131,8 @@ outputs: register: httpd_enabled - name: "PreUpgrade step0,validation: Check service httpd is running" shell: /usr/bin/systemctl show 'httpd' --property ActiveState | grep '\bactive\b' - when: httpd_enabled.rc == 0 - tags: step0,validation + when: (httpd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Ensure mod_ssl package is installed - tags: step3 + when: step|int == 3 yum: name=mod_ssl state=latest diff --git a/puppet/services/auditd.yaml b/puppet/services/auditd.yaml index 99c1832a4b..b2bb7f857b 100644 --- a/puppet/services/auditd.yaml +++ b/puppet/services/auditd.yaml @@ -54,9 +54,8 @@ outputs: shell: > /usr/bin/systemctl show 'auditd' --property ActiveState | grep '\bactive\b' - when: auditd_enabled.rc == 0 - tags: step0,validation + when: (auditd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop auditd service - tags: step2 - when: auditd_enabled.rc == 0 + when: (auditd_enabled.rc == 0) and (step|int == 2) service: name=auditd state=stopped diff --git a/puppet/services/barbican-api.yaml b/puppet/services/barbican-api.yaml index 822dbdb9b8..a41c8a2783 100644 --- a/puppet/services/barbican-api.yaml +++ b/puppet/services/barbican-api.yaml @@ -209,9 +209,8 @@ outputs: register: barbican_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-barbican-api is running" shell: /usr/bin/systemctl show 'openstack-barbican-api' --property ActiveState | grep '\bactive\b' - when: barbican_api_enabled.rc == 0 - tags: step0,validation + when: (barbican_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Install openstack-barbican-api package if it was disabled - tags: step3 yum: name=openstack-barbican-api state=latest - when: barbican_api_enabled.rc != 0 + when: (barbican_api_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/ceilometer-agent-central.yaml b/puppet/services/ceilometer-agent-central.yaml index ee0dcbd5ee..c033a480cb 100644 --- a/puppet/services/ceilometer-agent-central.yaml +++ b/puppet/services/ceilometer-agent-central.yaml @@ -80,9 +80,8 @@ outputs: register: ceilometer_agent_central_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-central is running" shell: /usr/bin/systemctl show 'openstack-ceilometer-central' --property ActiveState | grep '\bactive\b' - when: ceilometer_agent_central_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_agent_central_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop ceilometer_agent_central service - tags: step1 - when: ceilometer_agent_central_enabled.rc == 0 + when: (ceilometer_agent_central_enabled.rc == 0) and (step|int == 1) service: name=openstack-ceilometer-central state=stopped diff --git a/puppet/services/ceilometer-agent-compute.yaml b/puppet/services/ceilometer-agent-compute.yaml index 5a8a321764..945323fad4 100644 --- a/puppet/services/ceilometer-agent-compute.yaml +++ b/puppet/services/ceilometer-agent-compute.yaml @@ -79,9 +79,8 @@ outputs: register: ceilometer_agent_compute_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-compute is running" shell: /usr/bin/systemctl show 'openstack-ceilometer-compute' --property ActiveState | grep '\bactive\b' - when: ceilometer_agent_compute_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_agent_compute_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop ceilometer_agent_compute service - tags: step1 - when: ceilometer_agent_compute_enabled.rc == 0 + when: (ceilometer_agent_compute_enabled.rc == 0) and (step|int == 1) service: name=openstack-ceilometer-compute state=stopped diff --git a/puppet/services/ceilometer-agent-ipmi.yaml b/puppet/services/ceilometer-agent-ipmi.yaml index 237bddc828..236a3392b0 100644 --- a/puppet/services/ceilometer-agent-ipmi.yaml +++ b/puppet/services/ceilometer-agent-ipmi.yaml @@ -80,13 +80,11 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-ceilometer-ipmi' --property ActiveState | grep '\bactive\b' - when: ceilometer_ipmi_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_ipmi_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop openstack-ceilometer-ipmi service - tags: step1 - when: ceilometer_ipmi_enabled.rc == 0 + when: (ceilometer_ipmi_enabled.rc == 0) and (step|int == 1) service: name=openstack-ceilometer-ipmi state=stopped - name: Install openstack-ceilometer-ipmi package if it was disabled - tags: step3 yum: name=openstack-ceilometer-ipmi state=latest - when: ceilometer_ipmi_enabled.rc != 0 + when: (ceilometer_ipmi_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/ceilometer-agent-notification.yaml b/puppet/services/ceilometer-agent-notification.yaml index fd57a7c37a..60e6fc4a82 100644 --- a/puppet/services/ceilometer-agent-notification.yaml +++ b/puppet/services/ceilometer-agent-notification.yaml @@ -74,9 +74,8 @@ outputs: register: ceilometer_agent_notification_enabled - name: "PreUpgrade step0,validation: Check service openstack-ceilometer-notification is running" shell: /usr/bin/systemctl show 'openstack-ceilometer-notification' --property ActiveState | grep '\bactive\b' - when: ceilometer_agent_notification_enabled.rc == 0 - tags: step0,validation + when: (ceilometer_agent_notification_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop ceilometer_agent_notification service - tags: step1 - when: ceilometer_agent_notification_enabled.rc == 0 + when: (ceilometer_agent_notification_enabled.rc == 0) and (step|int == 1) service: name=openstack-ceilometer-notification state=stopped diff --git a/puppet/services/ceph-mon.yaml b/puppet/services/ceph-mon.yaml index 8ab911f2c6..3e23a3d7d7 100644 --- a/puppet/services/ceph-mon.yaml +++ b/puppet/services/ceph-mon.yaml @@ -152,37 +152,36 @@ outputs: step_config: | include ::tripleo::profile::base::ceph::mon upgrade_batch_tasks: + # NOTE: upgrade_batch_tasks are deprecated in Queens. # Note we perform these tasks in list order, but they are all step0 so # we can perform a rolling upgrade of all mon nodes in step0, then a # rolling upgrade of all osd nodes in step1 - - name: Check status - tags: step0,validation - shell: ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN" - - name: Stop CephMon - tags: step0 - service: - name: ceph-mon@{{ ansible_hostname }} - state: stopped - - name: Update Ceph packages - tags: step0 - yum: - name: ceph-mon - state: latest - - name: Start CephMon - tags: step0 - service: - name: ceph-mon@{{ ansible_hostname }} - state: started - # ceph-ansible - # https://github.com/ceph/ceph-ansible/blob/master/infrastructure-playbooks/rolling_update.yml#L149-L157 - - name: Wait for the monitor to join the quorum... - tags: step0,ceph_quorum_validation - shell: | - ceph -s | grep monmap | sed 's/.*quorum//' | egrep -sq {{ ansible_hostname }} - register: ceph_quorum_nodecheck - until: ceph_quorum_nodecheck.rc == 0 - retries: {get_param: CephValidationRetries} - delay: {get_param: CephValidationDelay} - - name: ceph osd crush tunables default - tags: step0 - shell: ceph osd crush tunables default + - when: step|int == 0 + block: + - name: Check status + tags: validation + shell: ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN" + - name: Stop CephMon + service: + name: ceph-mon@{{ ansible_hostname }} + state: stopped + - name: Update Ceph packages + yum: + name: ceph-mon + state: latest + - name: Start CephMon + service: + name: ceph-mon@{{ ansible_hostname }} + state: started + # ceph-ansible + # https://github.com/ceph/ceph-ansible/blob/master/infrastructure-playbooks/rolling_update.yml#L149-L157 + - name: Wait for the monitor to join the quorum... + tags: ceph_quorum_validation + shell: | + ceph -s | grep monmap | sed 's/.*quorum//' | egrep -sq {{ ansible_hostname }} + register: ceph_quorum_nodecheck + until: ceph_quorum_nodecheck.rc == 0 + retries: {get_param: CephValidationRetries} + delay: {get_param: CephValidationDelay} + - name: ceph osd crush tunables default + shell: ceph osd crush tunables default diff --git a/puppet/services/ceph-osd.yaml b/puppet/services/ceph-osd.yaml index 088f8d669c..df64b14d29 100644 --- a/puppet/services/ceph-osd.yaml +++ b/puppet/services/ceph-osd.yaml @@ -79,66 +79,57 @@ outputs: step_config: | include ::tripleo::profile::base::ceph::osd upgrade_batch_tasks: - - name: Check status - tags: step1,validation - shell: ceph health | grep -qv HEALTH_ERR - - name: Get OSD IDs - tags: step1 - shell: ls /var/lib/ceph/osd | awk 'BEGIN { FS = "-" } ; { print $2 }' - register: osd_ids - # "so that mirrors aren't rebalanced as if the OSD died" - gfidente / leseb - - name: ceph osd set noout - tags: step1 - command: ceph osd set noout - - name: ceph osd set norebalance - tags: step1 - command: ceph osd set norebalance - - name: ceph osd set nodeep-scrub - tags: step1 - command: ceph osd set nodeep-scrub - - name: ceph osd set noscrub - tags: step1 - command: ceph osd set noscrub - - name: Stop CephOSD - tags: step1 - service: - name: ceph-osd@{{ item }} - state: stopped - with_items: "{{osd_ids.stdout.strip().split()}}" - - name: Update Ceph packages - tags: step1 - yum: - name: ceph-osd - state: latest - - name: Start CephOSD - tags: step1 - service: - name: ceph-osd@{{ item }} - state: started - with_items: "{{osd_ids.stdout.strip().split()}}" - # with awk we are meant to check if $2 and $4 are *the same* but it returns 1 when - # they are, so the check is inverted to produce an useful exit code - - name: Wait for clean pgs... - tags: step1,ceph_pgs_clean_validation - vars: - ignore_warnings: {get_param: IgnoreCephUpgradeWarnings} - shell: | - ceph pg stat | awk '{exit($2!=$4)}' && ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN" - register: ceph_pgs_healthcheck - until: ceph_pgs_healthcheck.rc == 0 - retries: {get_param: CephValidationRetries} - delay: {get_param: CephValidationDelay} - when: - - not ignore_warnings - - name: ceph osd unset noout - tags: step1 - command: ceph osd unset noout - - name: ceph osd unset norebalance - tags: step1 - command: ceph osd unset norebalance - - name: ceph osd unset nodeep-scrub - tags: step1 - command: ceph osd unset nodeep-scrub - - name: ceph osd unset noscrub - tags: step1 - command: ceph osd unset noscrub + # NOTE: upgrade_batch_tasks are deprecated in Queens. + - when: step|int == 1 + block: + - name: Check status + tags: validation + shell: ceph health | grep -qv HEALTH_ERR + - name: Get OSD IDs + shell: ls /var/lib/ceph/osd | awk 'BEGIN { FS = "-" } ; { print $2 }' + register: osd_ids + # "so that mirrors aren't rebalanced as if the OSD died" - gfidente / leseb + - name: ceph osd set noout + command: ceph osd set noout + - name: ceph osd set norebalance + command: ceph osd set norebalance + - name: ceph osd set nodeep-scrub + command: ceph osd set nodeep-scrub + - name: ceph osd set noscrub + command: ceph osd set noscrub + - name: Stop CephOSD + service: + name: ceph-osd@{{ item }} + state: stopped + with_items: "{{osd_ids.stdout.strip().split()}}" + - name: Update Ceph packages + yum: + name: ceph-osd + state: latest + - name: Start CephOSD + service: + name: ceph-osd@{{ item }} + state: started + with_items: "{{osd_ids.stdout.strip().split()}}" + # with awk we are meant to check if $2 and $4 are *the same* but it returns 1 when + # they are, so the check is inverted to produce an useful exit code + - name: Wait for clean pgs... + tags: ceph_pgs_clean_validation + vars: + ignore_warnings: {get_param: IgnoreCephUpgradeWarnings} + shell: | + ceph pg stat | awk '{exit($2!=$4)}' && ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN" + register: ceph_pgs_healthcheck + until: ceph_pgs_healthcheck.rc == 0 + retries: {get_param: CephValidationRetries} + delay: {get_param: CephValidationDelay} + when: + - not ignore_warnings + - name: ceph osd unset noout + command: ceph osd unset noout + - name: ceph osd unset norebalance + command: ceph osd unset norebalance + - name: ceph osd unset nodeep-scrub + command: ceph osd unset nodeep-scrub + - name: ceph osd unset noscrub + command: ceph osd unset noscrub diff --git a/puppet/services/ceph-rgw.yaml b/puppet/services/ceph-rgw.yaml index d169e8e72a..2440a0b271 100644 --- a/puppet/services/ceph-rgw.yaml +++ b/puppet/services/ceph-rgw.yaml @@ -104,11 +104,10 @@ outputs: register: ceph_rgw_enabled - name: Check status shell: /usr/bin/systemctl show ceph-radosgw@{{rgw_id.stdout}} --property ActiveState | grep '\bactive\b' - when: ceph_rgw_enabled.rc == 0 - tags: step0,validation + when: (ceph_rgw_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop RGW instance - tags: step1 - when: ceph_rgw_enabled.rc == 0 + when: (ceph_rgw_enabled.rc == 0) and (step|int == 1) service: name: ceph-radosgw@{{rgw_id.stdout}} state: stopped diff --git a/puppet/services/cinder-api.yaml b/puppet/services/cinder-api.yaml index dbb176b129..1c8d4e6515 100644 --- a/puppet/services/cinder-api.yaml +++ b/puppet/services/cinder-api.yaml @@ -194,18 +194,16 @@ outputs: register: cinder_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-api is running" shell: /usr/bin/systemctl show 'openstack-cinder-api' --property ActiveState | grep '\bactive\b' - when: cinder_api_enabled.rc == 0 - tags: step0,validation + when: (cinder_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: check for cinder running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q cinder" register: cinder_apache ignore_errors: true - name: Stop cinder_api service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: cinder_apache.rc == 0 + when: (cinder_apache.rc == 0) and (step|int == 1) - name: Stop and disable cinder_api service (pre-upgrade not under httpd) - tags: step1 - when: cinder_api_enabled.rc == 0 + when: (cinder_api_enabled.rc == 0) and (step|int == 1) service: name=openstack-cinder-api state=stopped enabled=no diff --git a/puppet/services/cinder-scheduler.yaml b/puppet/services/cinder-scheduler.yaml index 7aeaaa731b..2ed04b5a10 100644 --- a/puppet/services/cinder-scheduler.yaml +++ b/puppet/services/cinder-scheduler.yaml @@ -74,9 +74,8 @@ outputs: register: cinder_scheduler_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-scheduler is running" shell: /usr/bin/systemctl show 'openstack-cinder-scheduler' --property ActiveState | grep '\bactive\b' - when: cinder_scheduler_enabled.rc == 0 - tags: step0,validation + when: (cinder_scheduler_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop cinder_scheduler service - tags: step1 - when: cinder_scheduler_enabled.rc == 0 + when: (cinder_scheduler_enabled.rc == 0) and (step|int == 1) service: name=openstack-cinder-scheduler state=stopped diff --git a/puppet/services/cinder-volume.yaml b/puppet/services/cinder-volume.yaml index 9507d1d259..b4fa38f0be 100644 --- a/puppet/services/cinder-volume.yaml +++ b/puppet/services/cinder-volume.yaml @@ -159,9 +159,8 @@ outputs: register: cinder_volume_enabled - name: "PreUpgrade step0,validation: Check service openstack-cinder-volume is running" shell: /usr/bin/systemctl show 'openstack-cinder-volume' --property ActiveState | grep '\bactive\b' - when: cinder_volume_enabled.rc == 0 - tags: step0,validation + when: (cinder_volume_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop cinder_volume service - tags: step1 - when: cinder_volume_enabled.rc == 0 + when: (cinder_volume_enabled.rc == 0) and (step|int == 1) service: name=openstack-cinder-volume state=stopped diff --git a/puppet/services/congress.yaml b/puppet/services/congress.yaml index 8a4bf80bb2..aab4ab7739 100644 --- a/puppet/services/congress.yaml +++ b/puppet/services/congress.yaml @@ -148,13 +148,11 @@ outputs: register: congress_enabled - name: "PreUpgrade step0,validation: Check service openstack-congress-server is running" shell: /usr/bin/systemctl show 'openstack-congress-server' --property ActiveState | grep '\bactive\b' - when: congress_enabled.rc == 0 - tags: step0,validation + when: (congress_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop congress service - tags: step1 - when: congress_enabled.rc == 0 + when: (congress_enabled.rc == 0) and (step|int == 1) service: name=openstack-congress-server state=stopped - name: Install openstack-congress package if it was disabled - tags: step3 yum: name=openstack-congress state=latest - when: congress_enabled.rc != 0 + when: (congress_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/database/mongodb.yaml b/puppet/services/database/mongodb.yaml index 7fc43038ad..4677a9f4ce 100644 --- a/puppet/services/database/mongodb.yaml +++ b/puppet/services/database/mongodb.yaml @@ -127,10 +127,10 @@ outputs: include ::tripleo::profile::base::database::mongodb upgrade_tasks: - name: Stop mongodb service - tags: step2 + when: step|int == 2 service: name=mongod state=stopped - name: Start mongodb service - tags: step4 + when: step|int == 4 service: name=mongod state=started metadata_settings: if: diff --git a/puppet/services/database/mysql.yaml b/puppet/services/database/mysql.yaml index cb285ec6ba..f1dfb170e2 100644 --- a/puppet/services/database/mysql.yaml +++ b/puppet/services/database/mysql.yaml @@ -162,21 +162,21 @@ outputs: - null upgrade_tasks: - name: Check for galera root password - tags: step0 + when: step|int == 0 file: path=/root/.my.cnf state=file - name: Stop service - tags: step2 + when: step|int == 2 service: name=mariadb state=stopped - name: Start service - tags: step4 + when: step|int == 4 service: name=mariadb state=started - name: Setup cell_v2 (create cell0 database) - tags: step4 + when: step|int == 4 mysql_db: name: nova_cell0 state: present - name: Setup cell_v2 (grant access to the nova DB user) - tags: step4 + when: step|int == 4 mysql_user: str_replace: template: "name=nova password=PASSWORD host=\"%\" priv=\"nova.*:ALL/nova_cell0.*:ALL,GRANT\" state=present" diff --git a/puppet/services/database/redis.yaml b/puppet/services/database/redis.yaml index 4ed116e91c..a7cea42673 100644 --- a/puppet/services/database/redis.yaml +++ b/puppet/services/database/redis.yaml @@ -67,16 +67,14 @@ outputs: shell: > /usr/bin/systemctl show 'redis' --property ActiveState | grep '\bactive\b' - when: redis_enabled.rc == 0 - tags: step0,validation + when: (redis_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop redis service - tags: step1 - when: redis_enabled.rc == 0 + when: (redis_enabled.rc == 0) and (step|int == 1) service: name=redis state=stopped - name: Install redis package if it was disabled - tags: step3 yum: name=redis state=latest - when: redis_enabled.rc != 0 + when: (redis_enabled.rc != 0) and (step|int == 3) - name: Start redis service - tags: step4 + when: step|int == 4 service: name=redis state=started diff --git a/puppet/services/disabled/glance-registry-disabled.yaml b/puppet/services/disabled/glance-registry-disabled.yaml index 9079e99b73..af462490a7 100644 --- a/puppet/services/disabled/glance-registry-disabled.yaml +++ b/puppet/services/disabled/glance-registry-disabled.yaml @@ -38,5 +38,5 @@ outputs: service_name: glance_registry_disabled upgrade_tasks: - name: Stop and disable glance_registry service on upgrade - tags: step1 + when: step|int == 1 service: name=openstack-glance-registry state=stopped enabled=no diff --git a/puppet/services/disabled/heat-api-cloudwatch-disabled.yaml b/puppet/services/disabled/heat-api-cloudwatch-disabled.yaml index f7116af444..936fee781d 100644 --- a/puppet/services/disabled/heat-api-cloudwatch-disabled.yaml +++ b/puppet/services/disabled/heat-api-cloudwatch-disabled.yaml @@ -39,10 +39,9 @@ outputs: upgrade_tasks: - name: Check if heat_api_cloudwatch is deployed command: systemctl is-enabled openstack-heat-api-cloudwatch - tags: step1 + when: step|int == 1 ignore_errors: True register: heat_api_cloudwatch_enabled - name: Stop and disable heat_api_cloudwatch service (pre-upgrade not under httpd) - tags: step1 - when: heat_api_cloudwatch_enabled.rc == 0 + when: (heat_api_cloudwatch_enabled.rc == 0) and (step|int == 1) service: name=openstack-heat-api-cloudwatch state=stopped enabled=no diff --git a/puppet/services/disabled/mongodb-disabled.yaml b/puppet/services/disabled/mongodb-disabled.yaml index 808122179e..47cf8d2060 100644 --- a/puppet/services/disabled/mongodb-disabled.yaml +++ b/puppet/services/disabled/mongodb-disabled.yaml @@ -42,6 +42,5 @@ outputs: tags: common register: mongod_service - name: Stop and disable mongodb service on upgrade - tags: step1 service: name=mongod state=stopped enabled=no - when: mongod_service.stat.exists + when: (mongod_service.stat.exists) and (step|int == 1) diff --git a/puppet/services/docker.yaml b/puppet/services/docker.yaml index b53d7132cb..728866e4b7 100644 --- a/puppet/services/docker.yaml +++ b/puppet/services/docker.yaml @@ -89,5 +89,5 @@ outputs: include ::tripleo::profile::base::docker upgrade_tasks: - name: Install docker packages on upgrade if missing - tags: step3 + when: step|int == 3 yum: name=docker state=latest diff --git a/puppet/services/ec2-api.yaml b/puppet/services/ec2-api.yaml index 929c44c9ee..36bb6cf7c6 100644 --- a/puppet/services/ec2-api.yaml +++ b/puppet/services/ec2-api.yaml @@ -204,15 +204,13 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-ec2-api' --property ActiveState | grep '\bactive\b' - when: ec2_api_enabled.rc == 0 - tags: step0,validation + when: (ec2_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop openstack-ec2-api service - tags: step1 - when: ec2_api_enabled.rc == 0 + when: (ec2_api_enabled.rc == 0) and (step|int == 1) service: name=openstack-ec2-api state=stopped - name: Install openstack-ec2-api package if it was disabled - tags: step3 yum: name=openstack-ec2-api state=latest - when: ec2_api_enabled.rc != 0 + when: (ec2_api_enabled.rc != 0) and (step|int == 3) metadata_settings: get_attr: [TLSProxyBase, role_data, metadata_settings] diff --git a/puppet/services/etcd.yaml b/puppet/services/etcd.yaml index 42e4d7cc2a..7aceceda50 100644 --- a/puppet/services/etcd.yaml +++ b/puppet/services/etcd.yaml @@ -98,17 +98,18 @@ outputs: upgrade_tasks: - name: Check if etcd is deployed command: systemctl is-enabled etcd - tags: step0,validation + when: step|int == 0 + tags: validation ignore_errors: True register: etcd_enabled - name: "PreUpgrade step0,validation: Check if etcd is running" shell: > /usr/bin/systemctl show 'etcd' --property ActiveState | grep '\bactive\b' - when: etcd_enabled.rc == 0 - tags: step0,validation + when: (etcd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop etcd service - tags: step2 + when: step|int == 2 service: name=etcd state=stopped metadata_settings: if: diff --git a/puppet/services/glance-api.yaml b/puppet/services/glance-api.yaml index cbbe88ea82..1f6423edf0 100644 --- a/puppet/services/glance-api.yaml +++ b/puppet/services/glance-api.yaml @@ -299,13 +299,11 @@ outputs: register: glance_registry_enabled - name: "PreUpgrade step0,validation: Check service openstack-glance-api is running" shell: /usr/bin/systemctl show 'openstack-glance-api' --property ActiveState | grep '\bactive\b' - tags: step0,validation - when: glance_api_enabled.rc == 0 + tags: validation + when: (glance_api_enabled.rc == 0) and (step|int == 0) - name: Stop glance_api service - tags: step1 - when: glance_api_enabled.rc == 0 + when: (glance_api_enabled.rc == 0) and (step|int == 1) service: name=openstack-glance-api state=stopped - name: Stop and disable glance registry (removed for Ocata) - tags: step1 - when: glance_registry_enabled.rc == 0 + when: (glance_registry_enabled.rc == 0) and (step|int == 1) service: name=openstack-glance-registry state=stopped enabled=no diff --git a/puppet/services/gnocchi-api.yaml b/puppet/services/gnocchi-api.yaml index 1666edea29..285a347fbb 100644 --- a/puppet/services/gnocchi-api.yaml +++ b/puppet/services/gnocchi-api.yaml @@ -155,5 +155,15 @@ outputs: - get_attr: [ApacheServiceBase, role_data, upgrade_tasks] - - name: Stop gnocchi_api service (running under httpd) - tags: step1 + when: step|int == 1 service: name=httpd state=stopped + - name: get bootstrap nodeid + tags: common + command: hiera bootstrap_nodeid + register: bootstrap_node + - name: set is_bootstrap_node fact + tags: common + set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} + - name: Setup gnocchi db during upgrade + command: gnocchi-upgrade + when: (is_bootstrap_node) and (step|int == 5) diff --git a/puppet/services/gnocchi-metricd.yaml b/puppet/services/gnocchi-metricd.yaml index 08d3166aaf..dfceba706a 100644 --- a/puppet/services/gnocchi-metricd.yaml +++ b/puppet/services/gnocchi-metricd.yaml @@ -74,9 +74,8 @@ outputs: register: gnocchi_metricd_enabled - name: "PreUpgrade step0,validation: Check service openstack-gnocchi-metricd is running" shell: /usr/bin/systemctl show 'openstack-gnocchi-metricd' --property ActiveState | grep '\bactive\b' - when: gnocchi_metricd_enabled.rc == 0 - tags: step0,validation + when: (gnocchi_metricd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop gnocchi_metricd service - tags: step1 - when: gnocchi_metricd_enabled.rc == 0 + when: (gnocchi_metricd_enabled.rc == 0) and (step|int == 1) service: name=openstack-gnocchi-metricd state=stopped diff --git a/puppet/services/gnocchi-statsd.yaml b/puppet/services/gnocchi-statsd.yaml index ae831e0634..ec396f711d 100644 --- a/puppet/services/gnocchi-statsd.yaml +++ b/puppet/services/gnocchi-statsd.yaml @@ -68,9 +68,8 @@ outputs: register: gnocchi_statsd_enabled - name: "PreUpgrade step0,validation: Check service openstack-gnocchi-statsd is running" shell: /usr/bin/systemctl show 'openstack-gnocchi-statsd' --property ActiveState | grep '\bactive\b' - when: gnocchi_statsd_enabled.rc == 0 - tags: step0,validation + when: (gnocchi_statsd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop gnocchi_statsd service - tags: step1 - when: gnocchi_statsd_enabled.rc == 0 + when: (gnocchi_statsd_enabled.rc == 0) and (step|int == 1) service: name=openstack-gnocchi-statsd state=stopped diff --git a/puppet/services/haproxy.yaml b/puppet/services/haproxy.yaml index 0f5bc1f1c4..5707b6bebd 100644 --- a/puppet/services/haproxy.yaml +++ b/puppet/services/haproxy.yaml @@ -156,15 +156,13 @@ outputs: register: haproxy_enabled - name: "PreUpgrade step0,validation: Check service haproxy is running" shell: /usr/bin/systemctl show 'haproxy' --property ActiveState | grep '\bactive\b' - when: haproxy_enabled.rc == 0 - tags: step0,validation + when: (haproxy_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop haproxy service - tags: step2 - when: haproxy_enabled.rc == 0 + when: (haproxy_enabled.rc == 0) and (step|int == 2) service: name=haproxy state=stopped - name: Start haproxy service - tags: step4 # Needed at step 4 for mysql - when: haproxy_enabled.rc == 0 + when: (haproxy_enabled.rc == 0) and (step|int == 4) service: name=haproxy state=started metadata_settings: list_concat: diff --git a/puppet/services/heat-api-cfn.yaml b/puppet/services/heat-api-cfn.yaml index ecd7e3b137..7d0f39405d 100644 --- a/puppet/services/heat-api-cfn.yaml +++ b/puppet/services/heat-api-cfn.yaml @@ -140,18 +140,16 @@ outputs: register: heat_api_cfn_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-api-cfn is running" shell: /usr/bin/systemctl show 'openstack-heat-api-cfn' --property ActiveState | grep '\bactive\b' - when: heat_api_cfn_enabled.rc == 0 - tags: step0,validation + when: (heat_api_cfn_enabled.rc == 0) and (step|int == 0) + tags: validation - name: check for heat_api_cfn running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q heat_api_cfn_wsgi" register: heat_api_cfn_apache ignore_errors: true - name: Stop heat_api_cfn service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: heat_api_cfn_apache.rc == 0 + when: (heat_api_cfn_apache.rc == 0) and (step|int == 1) - name: Stop and disable heat_api_cfn service (pre-upgrade not under httpd) - tags: step1 - when: heat_api_cfn_enabled.rc == 0 + when: (heat_api_cfn_enabled.rc == 0) and (step|int == 1) service: name=openstack-heat-api-cfn state=stopped enabled=no diff --git a/puppet/services/heat-api-cloudwatch.yaml b/puppet/services/heat-api-cloudwatch.yaml index e123cb0986..5c89048287 100644 --- a/puppet/services/heat-api-cloudwatch.yaml +++ b/puppet/services/heat-api-cloudwatch.yaml @@ -124,18 +124,16 @@ outputs: register: heat_api_cloudwatch_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-api-cloudwatch is running" shell: /usr/bin/systemctl show 'openstack-heat-api-cloudwatch' --property ActiveState | grep '\bactive\b' - when: heat_api_cloudwatch_enabled.rc == 0 - tags: step0,validation + when: (heat_api_cloudwatch_enabled.rc == 0) and (step|int == 0) + tags: validation - name: check for heat_api_cloudwatch running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q heat_api_cloudwatch_wsgi" register: heat_api_cloudwatch_apache ignore_errors: true - name: Stop heat_api_cloudwatch service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: heat_api_cloudwatch_apache.rc == 0 + when: (heat_api_cloudwatch_apache.rc == 0) and (step|int == 1) - name: Stop and disable heat_api_cloudwatch service (pre-upgrade not under httpd) - tags: step1 - when: heat_api_cloudwatch_enabled.rc == 0 + when: (heat_api_cloudwatch_enabled.rc == 0) and (step|int == 1) service: name=openstack-heat-api-cloudwatch state=stopped enabled=no diff --git a/puppet/services/heat-api.yaml b/puppet/services/heat-api.yaml index 8a423f38ba..6d33d9b5c8 100644 --- a/puppet/services/heat-api.yaml +++ b/puppet/services/heat-api.yaml @@ -147,18 +147,16 @@ outputs: register: heat_api_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-api is running" shell: /usr/bin/systemctl show 'openstack-heat-api' --property ActiveState | grep '\bactive\b' - when: heat_api_enabled.rc == 0 - tags: step0,validation + when: (heat_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: check for heat_api running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q heat_api_wsgi" register: heat_api_apache ignore_errors: true - name: Stop heat_api service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: heat_api_apache.rc == 0 + when: (heat_api_apache.rc == 0) and (step|int == 1) - name: Stop and disable heat_api service (pre-upgrade not under httpd) - tags: step1 - when: heat_api_enabled.rc == 0 + when: (heat_api_enabled.rc == 0) and (step|int == 1) service: name=openstack-heat-api state=stopped enabled=no diff --git a/puppet/services/heat-engine.yaml b/puppet/services/heat-engine.yaml index 0bf0c63f19..108936574d 100644 --- a/puppet/services/heat-engine.yaml +++ b/puppet/services/heat-engine.yaml @@ -163,9 +163,8 @@ outputs: register: heat_engine_enabled - name: "PreUpgrade step0,validation: Check service openstack-heat-engine is running" shell: /usr/bin/systemctl show 'openstack-heat-engine' --property ActiveState | grep '\bactive\b' - when: heat_engine_enabled.rc == 0 - tags: step0,validation + when: (heat_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop heat_engine service - tags: step1 - when: heat_engine_enabled.rc == 0 + when: (heat_engine_enabled.rc == 0) and (step|int == 1) service: name=openstack-heat-engine state=stopped diff --git a/puppet/services/horizon.yaml b/puppet/services/horizon.yaml index bb3fb42cb7..cd885b2ed2 100644 --- a/puppet/services/horizon.yaml +++ b/puppet/services/horizon.yaml @@ -154,11 +154,10 @@ outputs: shell: > /usr/bin/systemctl show 'httpd' --property ActiveState | grep '\bactive\b' - when: httpd_enabled.rc == 0 - tags: step0,validation + when: (httpd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop Horizon (under httpd) - tags: step1 - when: httpd_enabled.rc == 0 + when: (httpd_enabled.rc == 0) and (step|int == 1) service: name=httpd state=stopped service_config_settings: haproxy: diff --git a/puppet/services/ironic-api.yaml b/puppet/services/ironic-api.yaml index d2272b8d23..86c9849699 100644 --- a/puppet/services/ironic-api.yaml +++ b/puppet/services/ironic-api.yaml @@ -137,8 +137,8 @@ outputs: - "%{hiera('mysql_bind_host')}" upgrade_tasks: - name: Stop ironic_api service (before httpd support) - tags: step1 + when: step|int == 1 service: name=openstack-ironic-api state=stopped enabled=no - name: Stop ironic_api service (running under httpd) - tags: step1 + when: step|int == 1 service: name=httpd state=stopped diff --git a/puppet/services/ironic-conductor.yaml b/puppet/services/ironic-conductor.yaml index 1a555ed3b8..a9f06e68b9 100644 --- a/puppet/services/ironic-conductor.yaml +++ b/puppet/services/ironic-conductor.yaml @@ -264,5 +264,5 @@ outputs: include ::tripleo::profile::base::ironic::conductor upgrade_tasks: - name: Stop ironic_conductor service - tags: step1 + when: step|int == 1 service: name=openstack-ironic-conductor state=stopped diff --git a/puppet/services/keepalived.yaml b/puppet/services/keepalived.yaml index c6c342dbce..baf57712fe 100644 --- a/puppet/services/keepalived.yaml +++ b/puppet/services/keepalived.yaml @@ -78,9 +78,9 @@ outputs: include ::tripleo::profile::base::keepalived upgrade_tasks: - name: Stop keepalived service - tags: step1 + when: step|int == 1 service: name=keepalived state=stopped - name: Start keepalived service - tags: step4 # Needed at step 4 for mysql + when: step|int == 4 # Needed at step 4 for mysql service: name=keepalived state=started diff --git a/puppet/services/keystone.yaml b/puppet/services/keystone.yaml index ae0f1ffd43..9b1b2a5cf4 100644 --- a/puppet/services/keystone.yaml +++ b/puppet/services/keystone.yaml @@ -530,5 +530,5 @@ outputs: - get_attr: [ApacheServiceBase, role_data, upgrade_tasks] - - name: Stop keystone service (running under httpd) - tags: step1 + when: step|int == 1 service: name=httpd state=stopped diff --git a/puppet/services/logging/fluentd.yaml b/puppet/services/logging/fluentd.yaml index db475b0698..5788b9e742 100644 --- a/puppet/services/logging/fluentd.yaml +++ b/puppet/services/logging/fluentd.yaml @@ -87,13 +87,11 @@ outputs: shell: > /usr/bin/systemctl show fluentd --property ActiveState | grep '\bactive\b' - when: fluentd_client_enabled.rc == 0 - tags: step0,validation + when: (fluentd_client_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop fluentd service - tags: step1 - when: fluentd_client_enabled.rc == 0 + when: (fluentd_client_enabled.rc == 0) and (step|int == 1) service: name=fluentd state=stopped - name: Install fluentd package if it was disabled - tags: step3 yum: name=fluentd state=latest - when: fluentd_client_enabled.rc != 0 + when: (fluentd_client_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/metrics/collectd.yaml b/puppet/services/metrics/collectd.yaml index b5afe2da6a..d621ea0b9f 100644 --- a/puppet/services/metrics/collectd.yaml +++ b/puppet/services/metrics/collectd.yaml @@ -285,13 +285,11 @@ outputs: shell: > /usr/bin/systemctl show collectd --property ActiveState | grep '\bactive\b' - when: collectd_enabled.rc == 0 - tags: step0,validation + when: (collectd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop collectd service - tags: step1 - when: collectd_enabled.rc == 0 + when: (collectd_enabled.rc == 0) and (step|int == 1) service: name=collectd state=stopped - name: Install collectd package if it was disabled - tags: step3 yum: name=collectd state=latest - when: collectd_enabled.rc != 0 + when: (collectd_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/mistral-api.yaml b/puppet/services/mistral-api.yaml index 903b57ab13..94843ee106 100644 --- a/puppet/services/mistral-api.yaml +++ b/puppet/services/mistral-api.yaml @@ -109,18 +109,16 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-mistral-api' --property ActiveState | grep '\bactive\b' - when: mistral_api_enabled.rc == 0 - tags: step0,validation + when: (mistral_api_enabled.rc == 0) and (step|int == 0) + tags: validation - name: check for mistral_api running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q mistral_api_wsgi" register: mistral_api_apache ignore_errors: true - name: Stop mistral_api service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: mistral_api_apache.rc == 0 + when: (mistral_api_apache.rc == 0) and (step|int == 1) - name: Stop and disable mistral_api service (pre-upgrade not under httpd) - tags: step1 - when: mistral_api_enabled.rc == 0 + when: (mistral_api_enabled.rc == 0) and (step|int == 1) service: name=openstack-mistral-api state=stopped enabled=no diff --git a/puppet/services/mistral-engine.yaml b/puppet/services/mistral-engine.yaml index b450f7453b..a9dbe3474e 100644 --- a/puppet/services/mistral-engine.yaml +++ b/puppet/services/mistral-engine.yaml @@ -68,12 +68,11 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-mistral-engine' --property ActiveState | grep '\bactive\b' - when: mistral_engine_enabled.rc == 0 - tags: step0,validation + when: (mistral_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop mistral_engine service - tags: step1 + when: step|int == 1 service: name=openstack-mistral-engine state=stopped - name: Install openstack-mistral-engine package if it was disabled - tags: step3 yum: name=openstack-mistral-engine state=latest - when: mistral_engine_enabled.rc != 0 + when: (mistral_engine_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/mistral-event-engine.yaml b/puppet/services/mistral-event-engine.yaml index 3486a23c71..700edc7661 100644 --- a/puppet/services/mistral-event-engine.yaml +++ b/puppet/services/mistral-event-engine.yaml @@ -61,12 +61,11 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-mistral-event-engine' --property ActiveState | grep '\bactive\b' - when: mistral_event_engine_enabled.rc == 0 - tags: step0,validation + when: (mistral_event_engine_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop mistral_event_engine service - tags: step1 + when: step|int == 1 service: name=openstack-mistral-event-engine state=stopped - name: Install openstack-mistral-event-engine package if it was disabled - tags: step3 yum: name=openstack-mistral-event-engine state=latest - when: mistral_event_engine_enabled.rc != 0 + when: (mistral_event_engine_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/mistral-executor.yaml b/puppet/services/mistral-executor.yaml index 38a15361ad..377ccd41f4 100644 --- a/puppet/services/mistral-executor.yaml +++ b/puppet/services/mistral-executor.yaml @@ -61,12 +61,11 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-mistral-executor' --property ActiveState | grep '\bactive\b' - when: mistral_executor_enabled.rc == 0 - tags: step0,validation + when: (mistral_executor_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop mistral_executor service - tags: step1 + when: step|int == 1 service: name=openstack-mistral-executor state=stopped - name: Install openstack-mistral-executor package if it was disabled - tags: step3 yum: name=openstack-mistral-executor state=latest - when: mistral_executor_enabled.rc != 0 + when: (mistral_executor_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/monitoring/sensu-client.yaml b/puppet/services/monitoring/sensu-client.yaml index 8f3b4a391f..873eafefd5 100644 --- a/puppet/services/monitoring/sensu-client.yaml +++ b/puppet/services/monitoring/sensu-client.yaml @@ -88,13 +88,11 @@ outputs: shell: > /usr/bin/systemctl show sensu-client --property ActiveState | grep '\bactive\b' - when: sensu_client_enabled.rc == 0 - tags: step0,validation + when: (sensu_client_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop sensu-client service - tags: step1 - when: sensu_client_enabled.rc == 0 + when: (sensu_client_enabled.rc == 0) and (step|int == 1) service: name=sensu-client state=stopped - name: Install sensu package if it was disabled - tags: step3 yum: name=sensu state=latest - when: sensu_client_enabled.rc != 0 + when: (sensu_client_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/neutron-api.yaml b/puppet/services/neutron-api.yaml index 5a1ca2de8c..de0c127720 100644 --- a/puppet/services/neutron-api.yaml +++ b/puppet/services/neutron-api.yaml @@ -228,11 +228,10 @@ outputs: register: neutron_server_enabled - name: "PreUpgrade step0,validation: Check service neutron-server is running" shell: /usr/bin/systemctl show 'neutron-server' --property ActiveState | grep '\bactive\b' - when: neutron_server_enabled.rc == 0 - tags: step0,validation + when: (neutron_server_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_api service - tags: step1 - when: neutron_server_enabled.rc == 0 + when: (neutron_server_enabled.rc == 0) and (step|int == 1) service: name=neutron-server state=stopped metadata_settings: get_attr: [TLSProxyBase, role_data, metadata_settings] diff --git a/puppet/services/neutron-dhcp.yaml b/puppet/services/neutron-dhcp.yaml index f9b421b414..871501b252 100644 --- a/puppet/services/neutron-dhcp.yaml +++ b/puppet/services/neutron-dhcp.yaml @@ -125,9 +125,8 @@ outputs: register: neutron_dhcp_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-dhcp-agent is running" shell: /usr/bin/systemctl show 'neutron-dhcp-agent' --property ActiveState | grep '\bactive\b' - when: neutron_dhcp_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_dhcp_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_dhcp service - tags: step1 - when: neutron_dhcp_agent_enabled.rc == 0 + when: (neutron_dhcp_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-dhcp-agent state=stopped diff --git a/puppet/services/neutron-l2gw-agent.yaml b/puppet/services/neutron-l2gw-agent.yaml index b64ea296a3..ff49bb1e03 100644 --- a/puppet/services/neutron-l2gw-agent.yaml +++ b/puppet/services/neutron-l2gw-agent.yaml @@ -118,9 +118,8 @@ outputs: register: neutron_l2gw_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-l2gw-agent is running" shell: /usr/bin/systemctl show 'neutron-l2gw-agent' --property ActiveState | grep '\bactive\b' - when: neutron_l2gw_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_l2gw_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_l2gw_agent service - tags: step1 - when: neutron_l2gw_agent_enabled.rc == 0 + when: (neutron_l2gw_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-l2gw-agent state=stopped diff --git a/puppet/services/neutron-l3.yaml b/puppet/services/neutron-l3.yaml index 5c2d10c005..1b9ca2f889 100644 --- a/puppet/services/neutron-l3.yaml +++ b/puppet/services/neutron-l3.yaml @@ -119,9 +119,8 @@ outputs: register: neutron_l3_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-l3-agent is running" shell: /usr/bin/systemctl show 'neutron-l3-agent' --property ActiveState | grep '\bactive\b' - when: neutron_l3_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_l3_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_l3 service - tags: step1 - when: neutron_l3_agent_enabled.rc == 0 + when: (neutron_l3_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-l3-agent state=stopped diff --git a/puppet/services/neutron-metadata.yaml b/puppet/services/neutron-metadata.yaml index 4fd1e043e9..02643fadde 100644 --- a/puppet/services/neutron-metadata.yaml +++ b/puppet/services/neutron-metadata.yaml @@ -136,9 +136,8 @@ outputs: register: neutron_metadata_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-metadata-agent is running" shell: /usr/bin/systemctl show 'neutron-metadata-agent' --property ActiveState | grep '\bactive\b' - when: neutron_metadata_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_metadata_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_metadata service - tags: step1 - when: neutron_metadata_agent_enabled.rc == 0 + when: (neutron_metadata_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-metadata-agent state=stopped diff --git a/puppet/services/neutron-ovs-agent.yaml b/puppet/services/neutron-ovs-agent.yaml index afbab36aa6..69530c074a 100644 --- a/puppet/services/neutron-ovs-agent.yaml +++ b/puppet/services/neutron-ovs-agent.yaml @@ -171,9 +171,8 @@ outputs: register: neutron_ovs_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-openvswitch-agent is running" shell: /usr/bin/systemctl show 'neutron-openvswitch-agent' --property ActiveState | grep '\bactive\b' - when: neutron_ovs_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_ovs_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_ovs_agent service - tags: step1 - when: neutron_ovs_agent_enabled.rc == 0 + when: (neutron_ovs_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-openvswitch-agent state=stopped diff --git a/puppet/services/neutron-sriov-agent.yaml b/puppet/services/neutron-sriov-agent.yaml index 03b6766e3d..7f2c96dbb2 100644 --- a/puppet/services/neutron-sriov-agent.yaml +++ b/puppet/services/neutron-sriov-agent.yaml @@ -122,9 +122,8 @@ outputs: register: neutron_sriov_nic_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-server is running" shell: /usr/bin/systemctl show 'neutron-sriov-nic-agent' --property ActiveState | grep '\bactive\b' - when: neutron_sriov_nic_agent_enabled.rc == 0 - tags: step0,validation + when: (neutron_sriov_nic_agent_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop neutron_sriov_nic_agent service - tags: step1 - when: neutron_sriov_nic_agent_enabled.rc == 0 + when: (neutron_sriov_nic_agent_enabled.rc == 0) and (step|int == 1) service: name=neutron-sriov-nic-agent state=stopped diff --git a/puppet/services/nova-api.yaml b/puppet/services/nova-api.yaml index 410d62ea64..98584c5f0e 100644 --- a/puppet/services/nova-api.yaml +++ b/puppet/services/nova-api.yaml @@ -208,15 +208,14 @@ outputs: tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Extra migration for nova tripleo/+bug/1656791 - tags: step0,pre-upgrade - when: is_bootstrap_node + tags: pre-upgrade + when: (is_bootstrap_node) and (step|int == 0) command: nova-manage db online_data_migrations - name: Stop and disable nova_api service (pre-upgrade not under httpd) - tags: step2 + when: step|int == 2 service: name=openstack-nova-api state=stopped enabled=no - name: Create puppet manifest to set transport_url in nova.conf - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) copy: dest: /root/nova-api_upgrade_manifest.pp mode: 0600 @@ -233,19 +232,16 @@ outputs: transport_url => $transport_url } - name: Run puppet apply to set tranport_url in nova.conf - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) command: puppet apply --summarize --modulepath /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules --detailed-exitcodes /root/nova-api_upgrade_manifest.pp register: puppet_apply_nova_api_upgrade failed_when: puppet_apply_nova_api_upgrade.rc not in [0,2] changed_when: puppet_apply_nova_api_upgrade.rc == 2 - name: Setup cell_v2 (map cell0) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) shell: nova-manage cell_v2 map_cell0 --database_connection=$(hiera nova::cell0_database_connection) - name: Setup cell_v2 (create default cell) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) # (owalsh) puppet-nova expects the cell name 'default' # (owalsh) pass the db uri explicitly to avoid https://bugs.launchpad.net/tripleo/+bug/1662344 shell: nova-manage cell_v2 create_cell --name='default' --database_connection=$(hiera nova::database_connection) @@ -253,29 +249,23 @@ outputs: failed_when: nova_api_create_cell.rc not in [0,2] changed_when: nova_api_create_cell.rc == 0 - name: Setup cell_v2 (sync nova/cell DB) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) command: nova-manage db sync async: {get_param: NovaDbSyncTimeout} poll: 10 - name: Setup cell_v2 (get cell uuid) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) shell: nova-manage cell_v2 list_cells | sed -e '1,3d' -e '$d' | awk -F ' *| *' '$2 == "default" {print $4}' register: nova_api_cell_uuid - name: Setup cell_v2 (migrate hosts) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) command: nova-manage cell_v2 discover_hosts --cell_uuid {{nova_api_cell_uuid.stdout}} --verbose - name: Setup cell_v2 (migrate instances) - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) command: nova-manage cell_v2 map_instances --cell_uuid {{nova_api_cell_uuid.stdout}} - name: Sync nova_api DB - tags: step5 command: nova-manage api_db sync - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) - name: Online data migration for nova - tags: step5 - when: is_bootstrap_node + when: (is_bootstrap_node) and (step|int == 5) command: nova-manage db online_data_migrations diff --git a/puppet/services/nova-compute.yaml b/puppet/services/nova-compute.yaml index ec0e272280..53f92e1a1c 100644 --- a/puppet/services/nova-compute.yaml +++ b/puppet/services/nova-compute.yaml @@ -223,20 +223,20 @@ outputs: collectd::plugin::virt::connection: 'qemu:///system' upgrade_tasks: - name: Stop nova-compute service - tags: step1 + when: step|int == 1 service: name=openstack-nova-compute state=stopped # If not already set by puppet (e.g a pre-ocata version), set the # upgrade_level for compute to "auto" - name: Set compute upgrade level to auto - tags: step3 + when: step|int == 3 ini_file: str_replace: template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" params: LEVEL: {get_param: UpgradeLevelNovaCompute} - name: install openstack-nova-migration - tags: step3 + when: step|int == 3 yum: name=openstack-nova-migration state=latest - name: Start nova-compute service - tags: step6 + when: step|int == 6 service: name=openstack-nova-compute state=started diff --git a/puppet/services/nova-conductor.yaml b/puppet/services/nova-conductor.yaml index 3747bd5153..652ef70d67 100644 --- a/puppet/services/nova-conductor.yaml +++ b/puppet/services/nova-conductor.yaml @@ -82,12 +82,12 @@ outputs: include tripleo::profile::base::nova::conductor upgrade_tasks: - name: Stop nova_conductor service - tags: step1 + when: step|int == 1 service: name=openstack-nova-conductor state=stopped # If not already set by puppet (e.g a pre-ocata version), set the # upgrade_level for compute to "auto" - name: Set compute upgrade level to auto - tags: step1 + when: step|int == 1 ini_file: str_replace: template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" diff --git a/puppet/services/nova-consoleauth.yaml b/puppet/services/nova-consoleauth.yaml index 3ec56581d5..0c8844db55 100644 --- a/puppet/services/nova-consoleauth.yaml +++ b/puppet/services/nova-consoleauth.yaml @@ -65,5 +65,5 @@ outputs: include tripleo::profile::base::nova::consoleauth upgrade_tasks: - name: Stop nova_consoleauth service - tags: step1 + when: step|int == 1 service: name=openstack-nova-consoleauth state=stopped diff --git a/puppet/services/nova-ironic.yaml b/puppet/services/nova-ironic.yaml index 44a05bc078..79ecf2d8c7 100644 --- a/puppet/services/nova-ironic.yaml +++ b/puppet/services/nova-ironic.yaml @@ -68,5 +68,5 @@ outputs: include tripleo::profile::base::nova::compute::ironic upgrade_tasks: - name: Stop openstack-nova-compute service - tags: step1 + when: step|int == 1 service: name=openstack-nova-compute state=stopped enabled=no diff --git a/puppet/services/nova-placement.yaml b/puppet/services/nova-placement.yaml index 39ac8254ac..4bb0a671a3 100644 --- a/puppet/services/nova-placement.yaml +++ b/puppet/services/nova-placement.yaml @@ -142,10 +142,10 @@ outputs: - "%{hiera('mysql_bind_host')}" upgrade_tasks: - name: Stop nova_placement service (running under httpd) - tags: step1 + when: step|int == 1 service: name=httpd state=stopped # The nova placement API isn't installed in newton images, so install # it on upgrade - name: Install nova-placement packages on upgrade - tags: step3 + when: step|int == 3 yum: name=openstack-nova-placement-api state=latest diff --git a/puppet/services/nova-scheduler.yaml b/puppet/services/nova-scheduler.yaml index 4a5cbe7656..81a7728621 100644 --- a/puppet/services/nova-scheduler.yaml +++ b/puppet/services/nova-scheduler.yaml @@ -98,5 +98,5 @@ outputs: include tripleo::profile::base::nova::scheduler upgrade_tasks: - name: Stop nova_scheduler service - tags: step1 + when: step|int == 1 service: name=openstack-nova-scheduler state=stopped diff --git a/puppet/services/nova-vnc-proxy.yaml b/puppet/services/nova-vnc-proxy.yaml index 31c65fbec5..5dd6864cc6 100644 --- a/puppet/services/nova-vnc-proxy.yaml +++ b/puppet/services/nova-vnc-proxy.yaml @@ -81,5 +81,5 @@ outputs: include tripleo::profile::base::nova::vncproxy upgrade_tasks: - name: Stop nova_vnc_proxy service - tags: step1 + when: step|int == 1 service: name=openstack-nova-consoleauth state=stopped diff --git a/puppet/services/opendaylight-api.yaml b/puppet/services/opendaylight-api.yaml index a23edc014f..b4a628dcaa 100644 --- a/puppet/services/opendaylight-api.yaml +++ b/puppet/services/opendaylight-api.yaml @@ -99,17 +99,16 @@ outputs: register: opendaylight_enabled - name: "PreUpgrade step0,validation: Check service opendaylight is running" shell: /usr/bin/systemctl show 'opendaylight' --property ActiveState | grep '\bactive\b' - when: opendaylight_enabled.rc == 0 - tags: step0,validation + when: (opendaylight_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop opendaylight service - tags: step1 - when: opendaylight_enabled.rc == 0 + when: (opendaylight_enabled.rc == 0) and (step|int == 1) service: name=opendaylight state=stopped - name: Removes ODL snapshots, data, journal directories file: state: absent path: /opt/opendaylight/{{item}} - tags: step2 + when: step|int == 2 with_items: - snapshots - data diff --git a/puppet/services/opendaylight-ovs.yaml b/puppet/services/opendaylight-ovs.yaml index 08e30a9f85..83706128d7 100644 --- a/puppet/services/opendaylight-ovs.yaml +++ b/puppet/services/opendaylight-ovs.yaml @@ -169,9 +169,8 @@ outputs: register: openvswitch_enabled - name: "PreUpgrade step0,validation: Check service openvswitch is running" shell: /usr/bin/systemctl show 'openvswitch' --property ActiveState | grep '\bactive\b' - when: openvswitch_enabled.rc == 0 - tags: step0,validation + when: (openvswitch_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop openvswitch service - tags: step1 - when: openvswitch_enabled.rc == 0 + when: (openvswitch_enabled.rc == 0) and (step|int == 1) service: name=openvswitch state=stopped diff --git a/puppet/services/openvswitch.yaml b/puppet/services/openvswitch.yaml index 5d55da2953..d6ad0b7ae5 100644 --- a/puppet/services/openvswitch.yaml +++ b/puppet/services/openvswitch.yaml @@ -152,12 +152,12 @@ outputs: upgrade_tasks: - name: Check openvswitch version. - tags: step2 + when: step|int == 2 register: ovs_version ignore_errors: true shell: rpm -qa | awk -F- '/^openvswitch-2/{print $2 "-" $3}' - name: Check openvswitch packaging. - tags: step2 + when: step|int == 2 shell: rpm -q --scripts openvswitch | awk '/postuninstall/,/*/' | grep -q "systemctl.*try-restart" register: ovs_packaging_issue ignore_errors: true @@ -188,7 +188,6 @@ outputs: chdir: /root/OVS_UPGRADE with_items: - "{{ovs_list_of_rpms.stdout_lines}}" - tags: step2 - when: "'2.5.0-14' in ovs_version.stdout|default('') + when: ("'2.5.0-14' in ovs_version.stdout|default('') or - ovs_packaging_issue|default(false)|succeeded" + ovs_packaging_issue|default(false)|succeeded") and (step|int == 2) diff --git a/puppet/services/ovn-controller.yaml b/puppet/services/ovn-controller.yaml index 563d9f03b2..6165cdc8dc 100644 --- a/puppet/services/ovn-controller.yaml +++ b/puppet/services/ovn-controller.yaml @@ -100,9 +100,8 @@ outputs: register: ovn_controller_enabled - name: "PreUpgrade step0,validation: Check service ovn-controller is running" shell: /usr/bin/systemctl show 'ovn-controller' --property ActiveState | grep '\bactive\b' - when: ovn_controller_enabled.rc == 0 - tags: step0,validation + when: (ovn_controller_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop ovn-controller service - tags: step1 - when: ovn_controller_enabled.rc == 0 + when: (ovn_controller_enabled.rc == 0) and (step|int == 1) service: name=ovn-controller state=stopped diff --git a/puppet/services/ovn-dbs.yaml b/puppet/services/ovn-dbs.yaml index 7361691b10..eb4ce1e3c2 100644 --- a/puppet/services/ovn-dbs.yaml +++ b/puppet/services/ovn-dbs.yaml @@ -65,9 +65,8 @@ outputs: register: ovn_northd_enabled - name: "PreUpgrade step0,validation: Check service ovn-northd is running" shell: /usr/bin/systemctl show 'ovn-northd' --property ActiveState | grep '\bactive\b' - when: ovn_northd_enabled.rc == 0 - tags: step0,validation + when: (ovn_northd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop ovn-northd service - tags: step1 - when: ovn_northd_enabled.rc == 0 + when: (ovn_northd_enabled.rc == 0) and (step|int == 1) service: name=ovn-northd state=stopped diff --git a/puppet/services/pacemaker.yaml b/puppet/services/pacemaker.yaml index 2a5a428990..b687fa80ae 100644 --- a/puppet/services/pacemaker.yaml +++ b/puppet/services/pacemaker.yaml @@ -146,25 +146,26 @@ outputs: include ::tripleo::profile::base::pacemaker upgrade_tasks: - name: Check pacemaker cluster running before upgrade - tags: step0,validation + when: step|int == 0 + tags: validation pacemaker_cluster: state=online check_and_fail=true async: 30 poll: 4 - name: Stop pacemaker cluster - tags: step3 + when: step|int == 3 pacemaker_cluster: state=offline - name: Start pacemaker cluster - tags: step4 + when: step|int == 4 pacemaker_cluster: state=online update_tasks: - name: Check pacemaker cluster running before the minor update - when: step == "0" # TODO(marios) disabling validations? + when: step|int == 0 # TODO(marios) disabling validations? pacemaker_cluster: state=online check_and_fail=true async: 30 poll: 4 - name: Stop pacemaker cluster - when: step == "1" + when: step|int == 1 pacemaker_cluster: state=offline - name: Start pacemaker cluster - when: step == "4" + when: step|int == 4 pacemaker_cluster: state=online diff --git a/puppet/services/pacemaker/cinder-volume.yaml b/puppet/services/pacemaker/cinder-volume.yaml index 13a8299116..9fde5d73fa 100644 --- a/puppet/services/pacemaker/cinder-volume.yaml +++ b/puppet/services/pacemaker/cinder-volume.yaml @@ -61,14 +61,14 @@ outputs: include ::tripleo::profile::pacemaker::cinder::volume upgrade_tasks: - name: Stop cinder_volume service (pacemaker) - tags: step1 + when: step|int == 1 pacemaker_resource: resource: openstack-cinder-volume state: disable wait_for_resource: true post_upgrade_tasks: - name: Start cinder_volume service (pacemaker) - tags: step1 + when: step|int == 1 pacemaker_resource: resource: openstack-cinder-volume state: enable diff --git a/puppet/services/pacemaker/database/mysql.yaml b/puppet/services/pacemaker/database/mysql.yaml index 94d6bcc617..7fcb4b3cac 100644 --- a/puppet/services/pacemaker/database/mysql.yaml +++ b/puppet/services/pacemaker/database/mysql.yaml @@ -79,5 +79,5 @@ outputs: get_attr: [MysqlBase, role_data, metadata_settings] upgrade_tasks: - name: Check for galera root password - tags: step0 + when: step|int == 0 file: path=/root/.my.cnf state=file diff --git a/puppet/services/panko-api.yaml b/puppet/services/panko-api.yaml index d9774b1d4a..4882ba177f 100644 --- a/puppet/services/panko-api.yaml +++ b/puppet/services/panko-api.yaml @@ -124,12 +124,11 @@ outputs: shell: > /usr/bin/systemctl show 'httpd' --property ActiveState | grep '\bactive\b' - when: httpd_enabled.rc == 0 - tags: step0,validation + when: (httpd_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop panko-api service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: httpd_enabled.rc == 0 + when: (httpd_enabled.rc == 0) and (step|int == 1) - name: Install openstack-panko-api package if it was not installed - tags: step3 + when: step|int == 3 yum: name=openstack-panko-api state=latest diff --git a/puppet/services/rabbitmq.yaml b/puppet/services/rabbitmq.yaml index 47762b1548..7e2c2f8e47 100644 --- a/puppet/services/rabbitmq.yaml +++ b/puppet/services/rabbitmq.yaml @@ -159,10 +159,10 @@ outputs: include ::tripleo::profile::base::rabbitmq upgrade_tasks: - name: Stop rabbitmq service - tags: step2 + when: step|int == 2 service: name=rabbitmq-server state=stopped - name: Start rabbitmq service - tags: step4 + when: step|int == 4 service: name=rabbitmq-server state=started metadata_settings: if: diff --git a/puppet/services/sahara-api.yaml b/puppet/services/sahara-api.yaml index 788c1caf72..f41fbc802f 100644 --- a/puppet/services/sahara-api.yaml +++ b/puppet/services/sahara-api.yaml @@ -114,5 +114,5 @@ outputs: - "%{hiera('mysql_bind_host')}" upgrade_tasks: - name: Stop sahara_api service - tags: step1 + when: step|int == 1 service: name=openstack-sahara-api state=stopped diff --git a/puppet/services/sahara-engine.yaml b/puppet/services/sahara-engine.yaml index 45858689d4..b419a9f3e0 100644 --- a/puppet/services/sahara-engine.yaml +++ b/puppet/services/sahara-engine.yaml @@ -66,5 +66,5 @@ outputs: include ::tripleo::profile::base::sahara::engine upgrade_tasks: - name: Stop sahara_engine service - tags: step1 + when: step|int == 1 service: name=openstack-sahara-engine state=stopped diff --git a/puppet/services/snmp.yaml b/puppet/services/snmp.yaml index 11f2213ae0..91e28a42f2 100644 --- a/puppet/services/snmp.yaml +++ b/puppet/services/snmp.yaml @@ -67,5 +67,5 @@ outputs: include ::tripleo::profile::base::snmp upgrade_tasks: - name: Stop snmp service - tags: step1 + when: step|int == 1 service: name=snmpd state=stopped diff --git a/puppet/services/swift-proxy.yaml b/puppet/services/swift-proxy.yaml index 68e13d6db1..486247213e 100644 --- a/puppet/services/swift-proxy.yaml +++ b/puppet/services/swift-proxy.yaml @@ -223,7 +223,7 @@ outputs: - ResellerAdmin upgrade_tasks: - name: Stop swift_proxy service - tags: step1 + when: step|int == 1 service: name=openstack-swift-proxy state=stopped metadata_settings: get_attr: [TLSProxyBase, role_data, metadata_settings] diff --git a/puppet/services/swift-storage.yaml b/puppet/services/swift-storage.yaml index 660e4e0bcf..815a04bf43 100644 --- a/puppet/services/swift-storage.yaml +++ b/puppet/services/swift-storage.yaml @@ -138,7 +138,7 @@ outputs: include ::tripleo::profile::base::swift::storage upgrade_tasks: - name: Stop swift storage services - tags: step1 + when: step|int == 1 service: name={{ item }} state=stopped with_items: - openstack-swift-account-auditor diff --git a/puppet/services/tacker.yaml b/puppet/services/tacker.yaml index 9dd8f49c73..f0ec2e5475 100644 --- a/puppet/services/tacker.yaml +++ b/puppet/services/tacker.yaml @@ -148,13 +148,11 @@ outputs: register: tacker_enabled - name: "PreUpgrade step0,validation: Check service openstack-tacker-server is running" shell: /usr/bin/systemctl show 'openstack-tacker-server' --property ActiveState | grep '\bactive\b' - when: tacker_enabled.rc == 0 - tags: step0,validation + when: (tacker_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop tacker service - tags: step1 - when: tacker_enabled.rc == 0 + when: (tacker_enabled.rc == 0) and (step|int == 1) service: name=openstack-tacker-server state=stopped - name: Install openstack-tacker package if it was disabled - tags: step3 yum: name=openstack-tacker state=latest - when: tacker_enabled.rc != 0 + when: (tacker_enabled.rc != 0) and (step|int == 3) diff --git a/puppet/services/tripleo-firewall.yaml b/puppet/services/tripleo-firewall.yaml index 4b9b20df60..b92be457ac 100644 --- a/puppet/services/tripleo-firewall.yaml +++ b/puppet/services/tripleo-firewall.yaml @@ -51,7 +51,7 @@ outputs: include ::tripleo::firewall upgrade_tasks: - name: blank ipv6 rule before activating ipv6 firewall. - tags: step3 + when: step|int == 3 shell: cat /etc/sysconfig/ip6tables > /etc/sysconfig/ip6tables.n-o-upgrade; cat/etc/sysconfig/ip6tables args: creates: /etc/sysconfig/ip6tables.n-o-upgrade diff --git a/puppet/services/tripleo-packages.yaml b/puppet/services/tripleo-packages.yaml index a9a23f0262..4140c10f95 100644 --- a/puppet/services/tripleo-packages.yaml +++ b/puppet/services/tripleo-packages.yaml @@ -46,22 +46,21 @@ outputs: include ::tripleo::packages upgrade_tasks: - name: Check yum for rpm-python present - tags: step0 + when: step|int == 0 yum: "name=rpm-python state=present" register: rpm_python_check - name: Fail when rpm-python wasn't present fail: msg="rpm-python package was not present before this run! Check environment before re-running" - when: rpm_python_check.changed != false - tags: step0 + when: (rpm_python_check.changed != false) and (step|int == 0) - name: Check for os-net-config upgrade shell: "yum check-upgrade | awk '/os-net-config/{print}'" register: os_net_config_need_upgrade - tags: step3 + when: step|int == 3 - name: Check that os-net-config has configuration shell: test -s /etc/os-net-config/config.json register: os_net_config_has_config ignore_errors: True - tags: step3 + when: step|int == 3 - block: - name: Upgrade os-net-config yum: name=os-net-config state=latest @@ -70,19 +69,18 @@ outputs: register: os_net_config_upgrade failed_when: os_net_config_upgrade.rc not in [0,2] changed_when: os_net_config_upgrade.rc == 2 - tags: step3 - when: os_net_config_need_upgrade.stdout and os_net_config_has_config.rc == 0 + when: (os_net_config_need_upgrade.stdout and os_net_config_has_config.rc == 0) and (step|int == 3) - name: Update all packages - tags: step3 + when: step|int == 3 yum: name=* state=latest update_tasks: - name: Check for existing yum.pid stat: path=/var/run/yum.pid register: yum_pid_file - when: step == "0" or step == "3" + when: step|int == 0 or step|int == 3 - name: Exit if existing yum process fail: msg="ERROR existing yum.pid detected - can't continue! Please ensure there is no other package update process for the duration of the minor update worfklow. Exiting." - when: (step == "0" or step == "3") and yum_pid_file.stat.exists + when: (step|int == 0 or step|int == 3) and yum_pid_file.stat.exists - name: Update all packages yum: name=* state=latest update_cache=yes # cache for tripleo/+bug/1703830 - when: step == "3" + when: step|int == 3 diff --git a/puppet/services/vpp.yaml b/puppet/services/vpp.yaml index 51890b2459..89fa66992f 100644 --- a/puppet/services/vpp.yaml +++ b/puppet/services/vpp.yaml @@ -61,9 +61,8 @@ outputs: register: vpp_enabled - name: "PreUpgrade step0,validation: Check service vpp is running" shell: /usr/bin/systemctl show 'vpp' --property ActiveState | grep '\bactive\b' - when: vpp_enabled.rc == 0 - tags: step0,validation + when: (vpp_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Stop vpp service - tags: step1 - when: vpp_enabled.rc == 0 + when: (vpp_enabled.rc == 0) and (step|int == 1) service: name=vpp state=stopped diff --git a/puppet/services/zaqar-api.yaml b/puppet/services/zaqar-api.yaml index fe40855687..31c95a38d1 100644 --- a/puppet/services/zaqar-api.yaml +++ b/puppet/services/zaqar-api.yaml @@ -211,22 +211,19 @@ outputs: shell: > /usr/bin/systemctl show 'openstack-zaqar' --property ActiveState | grep '\bactive\b' - when: zaqar_enabled.rc == 0 - tags: step0,validation + when: (zaqar_enabled.rc == 0) and (step|int == 0) + tags: validation - name: Check for zaqar running under apache (post upgrade) - tags: step1 + when: step|int == 1 shell: "httpd -t -D DUMP_VHOSTS | grep -q zaqar_wsgi" register: zaqar_apache ignore_errors: true - name: Stop zaqar service (running under httpd) - tags: step1 service: name=httpd state=stopped - when: zaqar_apache.rc == 0 + when: (zaqar_apache.rc == 0) and (step|int == 1) - name: Stop and disable zaqar service (pre-upgrade not under httpd) - tags: step1 - when: zaqar_enabled.rc == 0 + when: (zaqar_enabled.rc == 0) and (step|int == 1) service: name=openstack-zaqar state=stopped enabled=no - name: Install openstack-zaqar package if it was disabled - tags: step3 yum: name=openstack-zaqar state=latest - when: zaqar_enabled.rc != 0 + when: (zaqar_enabled.rc != 0) and (step|int == 3) diff --git a/releasenotes/notes/upgrade_tasks_remove_tags_add_when-99f18cdb3cf58f64.yaml b/releasenotes/notes/upgrade_tasks_remove_tags_add_when-99f18cdb3cf58f64.yaml new file mode 100644 index 0000000000..944cf5e4ee --- /dev/null +++ b/releasenotes/notes/upgrade_tasks_remove_tags_add_when-99f18cdb3cf58f64.yaml @@ -0,0 +1,9 @@ +--- +upgrade: + - | + Since we are now running the ansible-playbooks with a step variable + rather than via Heat SoftwareConfig/Deployments, the per service + upgrade_tasks need to use "when: step|int == [0-6]" rather than + "tags: step[0-6]" to signal the step at which the given task is to be + invoked. This also applies to the update_tasks that are used for the + minor update. This also deprecates the upgrade_batch_tasks diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py index 50b5b39c45..a00eed251b 100755 --- a/tools/yaml-validate.py +++ b/tools/yaml-validate.py @@ -504,10 +504,11 @@ def validate_docker_service(filename, tpl): print('ERROR: bootstrap_host_exec needs to run as the root user.') return 1 - if 'upgrade_tasks' in role_data and role_data['upgrade_tasks'] and \ - validate_upgrade_tasks(role_data['upgrade_tasks']): - print('ERROR: upgrade_tasks validation failed') - return 1 + if 'upgrade_tasks' in role_data and role_data['upgrade_tasks']: + if (validate_upgrade_tasks(role_data['upgrade_tasks']) or + validate_upgrade_tasks_duplicate_whens(filename)): + print('ERROR: upgrade_tasks validation failed') + return 1 if 'parameters' in tpl: for param in required_params: @@ -555,10 +556,12 @@ def validate_service(filename, tpl): validate_mysql_connection(role_data['config_settings']): print('ERROR: mysql connection uri should use option bind_address') return 1 - if 'upgrade_tasks' in role_data and role_data['upgrade_tasks'] and \ - validate_upgrade_tasks(role_data['upgrade_tasks']): - print('ERROR: upgrade_tasks validation failed') - return 1 + if 'upgrade_tasks' in role_data and role_data['upgrade_tasks']: + if (validate_upgrade_tasks(role_data['upgrade_tasks']) or + validate_upgrade_tasks_duplicate_whens(filename)): + print('ERROR: upgrade_tasks validation failed') + return 1 + if 'parameters' in tpl: for param in required_params: if param not in tpl['parameters']: @@ -568,6 +571,31 @@ def validate_service(filename, tpl): return 0 + +def validate_upgrade_tasks_duplicate_whens(filename): + """Take a heat template and starting at the upgrade_tasks + try to detect duplicate 'when:' statements + """ + with open(filename) as template: + contents = template.read() + upgrade_task_position = contents.index('upgrade_tasks') + lines = contents[upgrade_task_position:].splitlines() + count = 0 + duplicate = '' + for line in lines: + if ' when:' in line: + count += 1 + if count > 1: + print ("ERROR: found duplicate when statements in %s " + "upgrade_task: %s %s" % (filename, line, duplicate)) + return 1 + duplicate = line + elif ' -' in line: + count = 0 + duplicate = '' + return 0 + + def validate(filename, param_map): """Validate a Heat template @@ -629,6 +657,7 @@ def validate(filename, param_map): VALIDATE_PUPPET_OVERRIDE.get(filename, True)): retval = validate_service(filename, tpl) + if filename.startswith('./docker/services/logging/'): retval = validate_docker_logging_template(filename, tpl) elif VALIDATE_DOCKER_OVERRIDE.get(filename, False) or ( @@ -691,27 +720,23 @@ def validate(filename, param_map): return retval -def validate_upgrade_tasks(upgrade_steps): +def validate_upgrade_tasks(upgrade_tasks): # some templates define its upgrade_tasks via list_concat - if isinstance(upgrade_steps, dict): - if upgrade_steps.get('list_concat'): - return validate_upgrade_tasks(upgrade_steps['list_concat'][1]) - elif upgrade_steps.get('get_attr'): + if isinstance(upgrade_tasks, dict): + if upgrade_tasks.get('list_concat'): + return validate_upgrade_tasks(upgrade_tasks['list_concat'][1]) + elif upgrade_tasks.get('get_attr'): return 0 - for step in upgrade_steps: - if 'tags' not in step.keys(): - if 'name' in step.keys(): - print('ERROR: upgrade task named (%s) is missing its tags keyword.' - % step['name']) - else: - print('ERROR: upgrade task (%s) is missing its tags keyword.' - % step) - return 1 - + # Don't enforce the need to have a when 'step' conditional, for now: + for task in upgrade_tasks: + whenline = task.get("when", "") + if 'step|int == ' not in whenline: + task_name = task.get("name", "") + print('WARNING: upgrade task (%s) is missing expected \'when: ' + 'step|int == \' condition (%s)' % (task_name, task)) return 0 - def parse_args(): p = argparse.ArgumentParser()