From ab3548f23a739b5d9c686c26be2acf9efd05d67f Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Thu, 11 Jun 2020 09:51:45 -0400 Subject: [PATCH] Allow more tasks to be run in check mode When running Ansible in check mode (aka dry run), some tasks need some changes, specially around variables and make sure they are actually defined. Note: the backport is not clean, and we also fixed the tasks when paunch is enabled, which wasn't the case anymore in the initial patch on master. Also the tasks which check healthcheck aren't needed in check mdoe, they take too much time for nothing. Change-Id: I337aa287f1c88a0e2707b441fc6b19b997d52385 (cherry picked from commit a199da6a08d82bbd23f81c432ad544da527530a3) (cherry picked from commit ebbad0d5428d8be4c419f9274151c5c2eb519aac) --- common/deploy-steps-tasks.yaml | 3 +++ common/generate-config-tasks.yaml | 2 ++ common/host-container-puppet-tasks.yaml | 4 ++++ deployment/cinder/cinder-common-container-puppet.yaml | 4 ++++ deployment/haproxy/haproxy-pacemaker-puppet.yaml | 2 ++ deployment/haproxy/haproxy-public-tls-inject.yaml | 2 ++ deployment/neutron/neutron-dhcp-container-puppet.yaml | 4 +++- deployment/neutron/neutron-l3-container-puppet.yaml | 4 +++- deployment/nova/nova-api-container-puppet.yaml | 1 + deployment/nova/nova-compute-container-puppet.yaml | 1 + deployment/nova/nova-conductor-container-puppet.yaml | 1 + deployment/nova/nova-libvirt-container-puppet.yaml | 1 + deployment/nova/nova-metadata-container-puppet.yaml | 1 + deployment/nova/nova-migration-target-container-puppet.yaml | 1 + deployment/nova/nova-scheduler-container-puppet.yaml | 1 + deployment/nova/nova-vnc-proxy-container-puppet.yaml | 1 + deployment/ovn/ovn-metadata-container-puppet.yaml | 4 +++- 17 files changed, 34 insertions(+), 3 deletions(-) diff --git a/common/deploy-steps-tasks.yaml b/common/deploy-steps-tasks.yaml index c35f8430c3..7869907fc1 100644 --- a/common/deploy-steps-tasks.yaml +++ b/common/deploy-steps-tasks.yaml @@ -43,6 +43,9 @@ delay: 3 failed_when: - (not puppet_host_outputs.finished) or (puppet_host_outputs.rc is defined and puppet_host_outputs.rc not in [0, 2]) + when: + - not (ansible_check_mode | bool) + - enable_puppet|bool tags: - host_config diff --git a/common/generate-config-tasks.yaml b/common/generate-config-tasks.yaml index f3d8120097..829ded0a40 100644 --- a/common/generate-config-tasks.yaml +++ b/common/generate-config-tasks.yaml @@ -31,6 +31,8 @@ until: generate_config_outputs.finished retries: 1200 delay: 3 + when: + - not (ansible_check_mode | bool) - name: "Debug output for task: Run container-puppet tasks (generate config) during step 1" debug: diff --git a/common/host-container-puppet-tasks.yaml b/common/host-container-puppet-tasks.yaml index 3ba7b1c9d1..b90b0751d8 100644 --- a/common/host-container-puppet-tasks.yaml +++ b/common/host-container-puppet-tasks.yaml @@ -31,6 +31,8 @@ PROCESS_COUNT: "{{ docker_puppet_process_count }}" register: bootstrap_tasks_async_result no_log: true + when: + - not (ansible_check_mode | bool) - name: Wait for container-puppet tasks (bootstrap tasks) for step {{ step }} to finish async_status: @@ -39,6 +41,8 @@ until: bootstrap_tasks_outputs.finished retries: 1200 delay: 3 + when: + - not (ansible_check_mode | bool) - name: "Debug output for task: Run container-puppet tasks (bootstrap tasks) for step {{ step }}" debug: diff --git a/deployment/cinder/cinder-common-container-puppet.yaml b/deployment/cinder/cinder-common-container-puppet.yaml index 95a069ed3e..7aa993a3dd 100644 --- a/deployment/cinder/cinder-common-container-puppet.yaml +++ b/deployment/cinder/cinder-common-container-puppet.yaml @@ -166,6 +166,8 @@ outputs: vg: "cinder-volumes" pvs: "{{ _loopback_device.stdout }}" state: present + when: + - not (ansible_check_mode | bool) - name: cinder create service to run losetup for LVM on startup copy: dest: /etc/systemd/system/cinder-lvm-losetup.service @@ -186,6 +188,8 @@ outputs: [Install] WantedBy=local-fs-pre.target + when: + - not (ansible_check_mode | bool) - name: cinder enable the LVM losetup service systemd: name: cinder-lvm-losetup diff --git a/deployment/haproxy/haproxy-pacemaker-puppet.yaml b/deployment/haproxy/haproxy-pacemaker-puppet.yaml index 816ef39471..9c9430d4b1 100644 --- a/deployment/haproxy/haproxy-pacemaker-puppet.yaml +++ b/deployment/haproxy/haproxy-pacemaker-puppet.yaml @@ -371,6 +371,8 @@ outputs: - name: set is_haproxy_bootstrap_node fact tags: common set_fact: is_haproxy_bootstrap_node={{haproxy_short_bootstrap_node_name|lower == ansible_hostname|lower}} + when: + - haproxy_short_bootstrap_node_name|default(false) - name: Mount TLS cert if needed when: - step|int == 1 diff --git a/deployment/haproxy/haproxy-public-tls-inject.yaml b/deployment/haproxy/haproxy-public-tls-inject.yaml index c658aaddc3..a2742be337 100644 --- a/deployment/haproxy/haproxy-public-tls-inject.yaml +++ b/deployment/haproxy/haproxy-public-tls-inject.yaml @@ -86,6 +86,8 @@ outputs: - name: set is_haproxy_bootstrap_node fact set_fact: is_haproxy_bootstrap_node={{haproxy_short_bootstrap_node_name | lower == ansible_hostname | lower}} + when: + - haproxy_short_bootstrap_node_name|default(false) - name: get haproxy status register: haproxy_state diff --git a/deployment/neutron/neutron-dhcp-container-puppet.yaml b/deployment/neutron/neutron-dhcp-container-puppet.yaml index 290a8550cd..1fb8ad39b4 100644 --- a/deployment/neutron/neutron-dhcp-container-puppet.yaml +++ b/deployment/neutron/neutron-dhcp-container-puppet.yaml @@ -428,7 +428,9 @@ outputs: - - name: remove temp namespace command: ip netns delete ns_temp failed_when: false - when: ipnetns_add_result.rc == 0 + when: + - ipnetns_add_result.rc is defined + - ipnetns_add_result.rc == 0 - - name: create /var/lib/neutron file: path: /var/lib/neutron diff --git a/deployment/neutron/neutron-l3-container-puppet.yaml b/deployment/neutron/neutron-l3-container-puppet.yaml index 7366e4f573..e421aeaab2 100644 --- a/deployment/neutron/neutron-l3-container-puppet.yaml +++ b/deployment/neutron/neutron-l3-container-puppet.yaml @@ -383,7 +383,9 @@ outputs: - - name: remove temp namespace command: ip netns delete ns_temp failed_when: false - when: ipnetns_add_result.rc == 0 + when: + - ipnetns_add_result.rc is defined + - ipnetns_add_result.rc == 0 - - name: create /var/lib/neutron file: path: /var/lib/neutron diff --git a/deployment/nova/nova-api-container-puppet.yaml b/deployment/nova/nova-api-container-puppet.yaml index 781c0b6b36..ccdb418f3c 100644 --- a/deployment/nova/nova-api-container-puppet.yaml +++ b/deployment/nova/nova-api-container-puppet.yaml @@ -506,6 +506,7 @@ outputs: deploy_steps_tasks: - name: validate nova api container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index bbf224b8d5..70d150c4b4 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -1048,6 +1048,7 @@ outputs: deploy_steps_tasks: - name: validate nova compute container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 6 #FIXME: there is no step6 diff --git a/deployment/nova/nova-conductor-container-puppet.yaml b/deployment/nova/nova-conductor-container-puppet.yaml index c53817016b..24255740c7 100644 --- a/deployment/nova/nova-conductor-container-puppet.yaml +++ b/deployment/nova/nova-conductor-container-puppet.yaml @@ -224,6 +224,7 @@ outputs: deploy_steps_tasks: - name: validate nova conductor container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/nova/nova-libvirt-container-puppet.yaml b/deployment/nova/nova-libvirt-container-puppet.yaml index 3ddf6b4d79..9626f3c04c 100644 --- a/deployment/nova/nova-libvirt-container-puppet.yaml +++ b/deployment/nova/nova-libvirt-container-puppet.yaml @@ -812,6 +812,7 @@ outputs: deploy_steps_tasks: - name: validate nova-libvirt container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 4 diff --git a/deployment/nova/nova-metadata-container-puppet.yaml b/deployment/nova/nova-metadata-container-puppet.yaml index f16ee941d0..a566594ec9 100644 --- a/deployment/nova/nova-metadata-container-puppet.yaml +++ b/deployment/nova/nova-metadata-container-puppet.yaml @@ -240,6 +240,7 @@ outputs: deploy_steps_tasks: - name: validate nova metadata container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/nova/nova-migration-target-container-puppet.yaml b/deployment/nova/nova-migration-target-container-puppet.yaml index 709c07f617..a73aaf62df 100644 --- a/deployment/nova/nova-migration-target-container-puppet.yaml +++ b/deployment/nova/nova-migration-target-container-puppet.yaml @@ -168,6 +168,7 @@ outputs: deploy_steps_tasks: - name: validate nova migration target container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/nova/nova-scheduler-container-puppet.yaml b/deployment/nova/nova-scheduler-container-puppet.yaml index f23e2d96da..8f4a6d6ee6 100644 --- a/deployment/nova/nova-scheduler-container-puppet.yaml +++ b/deployment/nova/nova-scheduler-container-puppet.yaml @@ -218,6 +218,7 @@ outputs: deploy_steps_tasks: - name: validate nova scheduler container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/nova/nova-vnc-proxy-container-puppet.yaml b/deployment/nova/nova-vnc-proxy-container-puppet.yaml index 2b9b0fde7a..42a2bfe34d 100644 --- a/deployment/nova/nova-vnc-proxy-container-puppet.yaml +++ b/deployment/nova/nova-vnc-proxy-container-puppet.yaml @@ -285,6 +285,7 @@ outputs: deploy_steps_tasks: - name: validate nova-vnc-proxy container state when: + - not (ansible_check_mode | bool) - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 5 diff --git a/deployment/ovn/ovn-metadata-container-puppet.yaml b/deployment/ovn/ovn-metadata-container-puppet.yaml index 2c06c9f254..9ca9e5da0a 100644 --- a/deployment/ovn/ovn-metadata-container-puppet.yaml +++ b/deployment/ovn/ovn-metadata-container-puppet.yaml @@ -361,7 +361,9 @@ outputs: - - name: remove temp namespace command: ip netns delete ns_temp failed_when: false - when: ipnetns_add_result.rc == 0 + when: + - ipnetns_add_result.rc is defined + - ipnetns_add_result.rc == 0 - - name: create /var/lib/neutron file: path: /var/lib/neutron