Use list_concat in place of yaql
authorThomas Herve <therve@redhat.com>
Wed, 30 Aug 2017 13:43:16 +0000 (15:43 +0200)
committerEmilien Macchi <emilien@redhat.com>
Sat, 2 Sep 2017 15:54:49 +0000 (15:54 +0000)
Where applicable, use list_concat instead of yaql to build new lists: it
should be more resilient to errors, easier to debug, and less expensive.

Change-Id: I6d3dbc7ee8eac50f46023a35af4ec7f2d378fd87
Related-Bug: #1714005
(cherry picked from commit 8008089de24437757d3ba10299bb1041b4aa627a)

12 files changed:
common/deploy-steps.j2
puppet/services/aodh-api.yaml
puppet/services/barbican-api.yaml
puppet/services/ceilometer-api.yaml
puppet/services/cinder-api.yaml
puppet/services/gnocchi-api.yaml
puppet/services/keystone.yaml
puppet/services/neutron-ovs-agent.yaml
puppet/services/nova-api.yaml
puppet/services/opendaylight-ovs.yaml
puppet/services/panko-api.yaml
puppet/services/zaqar-api.yaml

index 32d1afc..3af4846 100644 (file)
@@ -182,54 +182,52 @@ resources:
                   puppet_step_config: {get_param: [role_data, {{role.name}}, step_config]}
                 tasks:
                   # Join host_prep_tasks with the other per-host configuration
-                  yaql:
-                    expression: $.data.host_prep_tasks + $.data.template_tasks
-                    data:
-                      host_prep_tasks: {get_param: [role_data, {{role.name}}, host_prep_tasks]}
-                      template_tasks:
+                  list_concat:
+                    - {get_param: [role_data, {{role.name}}, host_prep_tasks]}
+                    -
 {%- raw %}
-                        # Write the manifest for baremetal puppet configuration
-                        - name: Create /var/lib/tripleo-config directory
-                          file: path=/var/lib/tripleo-config state=directory
-                        - name: Write the puppet step_config manifest
-                          copy: content="{{puppet_step_config}}" dest=/var/lib/tripleo-config/puppet_step_config.pp force=yes
-                        # this creates a JSON config file for our docker-puppet.py script
-                        - name: Create /var/lib/docker-puppet
-                          file: path=/var/lib/docker-puppet state=directory
-                        - name: Write docker-puppet-tasks json files
-                          copy: content="{{puppet_config | to_json}}" dest=/var/lib/docker-puppet/docker-puppet.json force=yes
-                        # FIXME: can we move docker-puppet somewhere so it's installed via a package?
-                        - name: Write docker-puppet.py
-                          copy: content="{{docker_puppet_script}}" dest=/var/lib/docker-puppet/docker-puppet.py force=yes
-                        # Here we are dumping all the docker container startup configuration data
-                        # so that we can have access to how they are started outside of heat
-                        # and docker-cmd.  This lets us create command line tools to test containers.
-                        # FIXME do we need the docker-container-startup-configs.json or is the new per-step
-                        # data consumed by paunch enough?
-                        - name: Write docker-container-startup-configs
-                          copy: content="{{docker_startup_configs | to_json}}" dest=/var/lib/docker-container-startup-configs.json force=yes
-                        - name: Write per-step docker-container-startup-configs
-                          copy: content="{{item.value|to_json}}" dest="/var/lib/tripleo-config/docker-container-startup-config-{{item.key}}.json" force=yes
-                          with_dict: "{{docker_startup_configs}}"
-                        - name: Create /var/lib/kolla/config_files directory
-                          file: path=/var/lib/kolla/config_files state=directory
-                        - name: Write kolla config json files
-                          copy: content="{{item.value|to_json}}" dest="{{item.key}}" force=yes
-                          with_dict: "{{kolla_config}}"
-                        ########################################################
-                        # Bootstrap tasks, only performed on bootstrap_server_id
-                        ########################################################
-                        - name: Clean /var/lib/docker-puppet/docker-puppet-tasks*.json files
-                          file:
-                            path: "{{item}}"
-                            state: absent
-                          with_fileglob:
-                            - /var/lib/docker-puppet/docker-puppet-tasks*.json
-                          when: deploy_server_id == bootstrap_server_id
-                        - name: Write docker-puppet-tasks json files
-                          copy: content="{{item.value|to_json}}" dest=/var/lib/docker-puppet/docker-puppet-tasks{{item.key.replace("step_", "")}}.json force=yes
-                          with_dict: "{{docker_puppet_tasks}}"
-                          when: deploy_server_id == bootstrap_server_id
+                      # Write the manifest for baremetal puppet configuration
+                      - name: Create /var/lib/tripleo-config directory
+                        file: path=/var/lib/tripleo-config state=directory
+                      - name: Write the puppet step_config manifest
+                        copy: content="{{puppet_step_config}}" dest=/var/lib/tripleo-config/puppet_step_config.pp force=yes
+                      # this creates a JSON config file for our docker-puppet.py script
+                      - name: Create /var/lib/docker-puppet
+                        file: path=/var/lib/docker-puppet state=directory
+                      - name: Write docker-puppet-tasks json files
+                        copy: content="{{puppet_config | to_json}}" dest=/var/lib/docker-puppet/docker-puppet.json force=yes
+                      # FIXME: can we move docker-puppet somewhere so it's installed via a package?
+                      - name: Write docker-puppet.py
+                        copy: content="{{docker_puppet_script}}" dest=/var/lib/docker-puppet/docker-puppet.py force=yes
+                      # Here we are dumping all the docker container startup configuration data
+                      # so that we can have access to how they are started outside of heat
+                      # and docker-cmd.  This lets us create command line tools to test containers.
+                      # FIXME do we need the docker-container-startup-configs.json or is the new per-step
+                      # data consumed by paunch enough?
+                      - name: Write docker-container-startup-configs
+                        copy: content="{{docker_startup_configs | to_json}}" dest=/var/lib/docker-container-startup-configs.json force=yes
+                      - name: Write per-step docker-container-startup-configs
+                        copy: content="{{item.value|to_json}}" dest="/var/lib/tripleo-config/docker-container-startup-config-{{item.key}}.json" force=yes
+                        with_dict: "{{docker_startup_configs}}"
+                      - name: Create /var/lib/kolla/config_files directory
+                        file: path=/var/lib/kolla/config_files state=directory
+                      - name: Write kolla config json files
+                        copy: content="{{item.value|to_json}}" dest="{{item.key}}" force=yes
+                        with_dict: "{{kolla_config}}"
+                      ########################################################
+                      # Bootstrap tasks, only performed on bootstrap_server_id
+                      ########################################################
+                      - name: Clean /var/lib/docker-puppet/docker-puppet-tasks*.json files
+                        file:
+                          path: "{{item}}"
+                          state: absent
+                        with_fileglob:
+                          - /var/lib/docker-puppet/docker-puppet-tasks*.json
+                        when: deploy_server_id == bootstrap_server_id
+                      - name: Write docker-puppet-tasks json files
+                        copy: content="{{item.value|to_json}}" dest=/var/lib/docker-puppet/docker-puppet-tasks{{item.key.replace("step_", "")}}.json force=yes
+                        with_dict: "{{docker_puppet_tasks}}"
+                        when: deploy_server_id == bootstrap_server_id
 {%- endraw %}
 
   {{role.name}}HostPrepDeployment:
index f84edde..f0493f0 100644 (file)
@@ -116,12 +116,9 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.aodh_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            aodh_api_upgrade:
-              - name: Stop aodh_api service (running under httpd)
-                tags: step1
-                service: name=httpd state=stopped
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Stop aodh_api service (running under httpd)
+              tags: step1
+              service: name=httpd state=stopped
index a894dbd..974c253 100644 (file)
@@ -186,22 +186,19 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.barbican_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            barbican_api_upgrade:
-              - name: Check if barbican_api is deployed
-                command: systemctl is-enabled openstack-barbican-api
-                tags: common
-                ignore_errors: True
-                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
-              - 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
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Check if barbican_api is deployed
+              command: systemctl is-enabled openstack-barbican-api
+              tags: common
+              ignore_errors: True
+              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
+            - 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
index aba303f..1076c04 100644 (file)
@@ -118,12 +118,9 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.ceilometer_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            ceilometer_api_upgrade:
-              - name: Stop ceilometer_api service (running under httpd)
-                tags: step1
-                service: name=httpd state=stopped
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Stop ceilometer_api service (running under httpd)
+              tags: step1
+              service: name=httpd state=stopped
index fbfe532..193c6ba 100644 (file)
@@ -184,31 +184,28 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.cinder_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            cinder_api_upgrade:
-              - name: Check if cinder_api is deployed
-                command: systemctl is-enabled openstack-cinder-api
-                tags: common
-                ignore_errors: True
-                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
-              - name: check for cinder running under apache (post upgrade)
-                tags: step1
-                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
-              - name: Stop and disable cinder_api service (pre-upgrade not under httpd)
-                tags: step1
-                when: cinder_api_enabled.rc == 0
-                service: name=openstack-cinder-api state=stopped enabled=no
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Check if cinder_api is deployed
+              command: systemctl is-enabled openstack-cinder-api
+              tags: common
+              ignore_errors: True
+              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
+            - name: check for cinder running under apache (post upgrade)
+              tags: step1
+              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
+            - name: Stop and disable cinder_api service (pre-upgrade not under httpd)
+              tags: step1
+              when: cinder_api_enabled.rc == 0
+              service: name=openstack-cinder-api state=stopped enabled=no
index cd7ab69..0f8f352 100644 (file)
@@ -151,12 +151,9 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.gnocchi_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            gnocchi_api_upgrade:
-              - name: Stop gnocchi_api service (running under httpd)
-                tags: step1
-                service: name=httpd state=stopped
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Stop gnocchi_api service (running under httpd)
+              tags: step1
+              service: name=httpd state=stopped
index 218ba74..6301314 100644 (file)
@@ -400,12 +400,9 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.keystone_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            keystone_upgrade:
-              - name: Stop keystone service (running under httpd)
-                tags: step1
-                service: name=httpd state=stopped
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Stop keystone service (running under httpd)
+              tags: step1
+              service: name=httpd state=stopped
index 7894f78..a2f82a5 100644 (file)
@@ -140,22 +140,19 @@ outputs:
       step_config: |
         include ::tripleo::profile::base::neutron::ovs
       upgrade_tasks:
-        yaql:
-          expression: $.data.ovs_upgrade + $.data.neutron_ovs_upgrade
-          data:
-            ovs_upgrade:
-              get_attr: [Ovs, role_data, upgrade_tasks]
-            neutron_ovs_upgrade:
-              - name: Check if neutron_ovs_agent is deployed
-                command: systemctl is-enabled neutron-openvswitch-agent
-                tags: common
-                ignore_errors: True
-                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
-              - name: Stop neutron_ovs_agent service
-                tags: step1
-                when: neutron_ovs_agent_enabled.rc == 0
-                service: name=neutron-openvswitch-agent state=stopped
+        list_concat:
+          - get_attr: [Ovs, role_data, upgrade_tasks]
+          -
+            - name: Check if neutron_ovs_agent is deployed
+              command: systemctl is-enabled neutron-openvswitch-agent
+              tags: common
+              ignore_errors: True
+              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
+            - name: Stop neutron_ovs_agent service
+              tags: step1
+              when: neutron_ovs_agent_enabled.rc == 0
+              service: name=neutron-openvswitch-agent state=stopped
index b413fb1..a4a3ca2 100644 (file)
@@ -199,88 +199,85 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.nova_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            nova_api_upgrade:
-              - 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: Extra migration for nova tripleo/+bug/1656791
-                tags: step0,pre-upgrade
-                when: is_bootstrap_node
-                command: nova-manage db online_data_migrations
-              - name: Stop and disable nova_api service (pre-upgrade not under httpd)
-                tags: step2
-                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
-                copy:
-                  dest: /root/nova-api_upgrade_manifest.pp
-                  mode: 0600
-                  content: >
-                    $transport_url = os_transport_url({
-                      'transport' => hiera('messaging_service_name', 'rabbit'),
-                      'hosts'     => any2array(hiera('rabbitmq_node_names', undef)),
-                      'port'      => sprintf('%s',hiera('nova::rabbit_port', '5672') ),
-                      'username'  => hiera('nova::rabbit_userid', 'guest'),
-                      'password'  => hiera('nova::rabbit_password'),
-                      'ssl'       => sprintf('%s', bool2num(str2bool(hiera('nova::rabbit_use_ssl', '0'))))
-                    })
-                    oslo::messaging::default { 'nova_config':
-                      transport_url => $transport_url
-                    }
-              - name: Run puppet apply to set tranport_url in nova.conf
-                tags: step5
-                when: is_bootstrap_node
-                command: puppet apply --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
-                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
-                # (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)
-                register: nova_api_create_cell
-                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
-                command: nova-manage db sync
-                async: {get_param: NovaDbSyncTimeout}
-                poll: 10
-              - name: Setup cell_v2 (get cell uuid)
-                tags: step5
-                when: is_bootstrap_node
-                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
-                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
-                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
-              - name: Online data migration for nova
-                tags: step5
-                when: is_bootstrap_node
-                command: nova-manage db online_data_migrations
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - 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: Extra migration for nova tripleo/+bug/1656791
+              tags: step0,pre-upgrade
+              when: is_bootstrap_node
+              command: nova-manage db online_data_migrations
+            - name: Stop and disable nova_api service (pre-upgrade not under httpd)
+              tags: step2
+              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
+              copy:
+                dest: /root/nova-api_upgrade_manifest.pp
+                mode: 0600
+                content: >
+                  $transport_url = os_transport_url({
+                    'transport' => hiera('messaging_service_name', 'rabbit'),
+                    'hosts'     => any2array(hiera('rabbitmq_node_names', undef)),
+                    'port'      => sprintf('%s',hiera('nova::rabbit_port', '5672') ),
+                    'username'  => hiera('nova::rabbit_userid', 'guest'),
+                    'password'  => hiera('nova::rabbit_password'),
+                    'ssl'       => sprintf('%s', bool2num(str2bool(hiera('nova::rabbit_use_ssl', '0'))))
+                  })
+                  oslo::messaging::default { 'nova_config':
+                    transport_url => $transport_url
+                  }
+            - name: Run puppet apply to set tranport_url in nova.conf
+              tags: step5
+              when: is_bootstrap_node
+              command: puppet apply --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
+              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
+              # (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)
+              register: nova_api_create_cell
+              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
+              command: nova-manage db sync
+              async: {get_param: NovaDbSyncTimeout}
+              poll: 10
+            - name: Setup cell_v2 (get cell uuid)
+              tags: step5
+              when: is_bootstrap_node
+              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
+              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
+              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
+            - name: Online data migration for nova
+              tags: step5
+              when: is_bootstrap_node
+              command: nova-manage db online_data_migrations
index 139ab7c..c1cec4f 100644 (file)
@@ -141,22 +141,19 @@ outputs:
       step_config: |
         include tripleo::profile::base::neutron::plugins::ovs::opendaylight
       upgrade_tasks:
-        yaql:
-          expression: $.data.ovs_upgrade + $.data.opendaylight_upgrade
-          data:
-            ovs_upgrade:
-              get_attr: [Ovs, role_data, upgrade_tasks]
-            opendaylight_upgrade:
-              - name: Check if openvswitch is deployed
-                command: systemctl is-enabled openvswitch
-                tags: common
-                ignore_errors: True
-                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
-              - name: Stop openvswitch service
-                tags: step1
-                when: openvswitch_enabled.rc == 0
-                service: name=openvswitch state=stopped
+        list_concat:
+          - get_attr: [Ovs, role_data, upgrade_tasks]
+          -
+            - name: Check if openvswitch is deployed
+              command: systemctl is-enabled openvswitch
+              tags: common
+              ignore_errors: True
+              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
+            - name: Stop openvswitch service
+              tags: step1
+              when: openvswitch_enabled.rc == 0
+              service: name=openvswitch state=stopped
index 74d3f27..892ad1c 100644 (file)
@@ -112,27 +112,24 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.panko_api_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            panko_api_upgrade:
-              - name: Check if httpd is deployed
-                command: systemctl is-enabled httpd
-                tags: common
-                ignore_errors: True
-                register: httpd_enabled
-              - name: "PreUpgrade step0,validation: Check if httpd is running"
-                shell: >
-                  /usr/bin/systemctl show 'httpd' --property ActiveState |
-                  grep '\bactive\b'
-                when: httpd_enabled.rc == 0
-                tags: step0,validation
-              - name: Stop panko-api service (running under httpd)
-                tags: step1
-                service: name=httpd state=stopped
-                when: httpd_enabled.rc == 0
-              - name: Install openstack-panko-api package if it was not installed
-                tags: step3
-                yum: name=openstack-panko-api state=latest
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Check if httpd is deployed
+              command: systemctl is-enabled httpd
+              tags: common
+              ignore_errors: True
+              register: httpd_enabled
+            - name: "PreUpgrade step0,validation: Check if httpd is running"
+              shell: >
+                /usr/bin/systemctl show 'httpd' --property ActiveState |
+                grep '\bactive\b'
+              when: httpd_enabled.rc == 0
+              tags: step0,validation
+            - name: Stop panko-api service (running under httpd)
+              tags: step1
+              service: name=httpd state=stopped
+              when: httpd_enabled.rc == 0
+            - name: Install openstack-panko-api package if it was not installed
+              tags: step3
+              yum: name=openstack-panko-api state=latest
index 82d105e..9232675 100644 (file)
@@ -181,37 +181,34 @@ outputs:
       metadata_settings:
         get_attr: [ApacheServiceBase, role_data, metadata_settings]
       upgrade_tasks:
-        yaql:
-          expression: $.data.apache_upgrade + $.data.zaqar_upgrade
-          data:
-            apache_upgrade:
-              get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
-            zaqar_upgrade:
-              - name: Check if zaqar is deployed
-                command: systemctl is-enabled openstack-zaqar
-                tags: common
-                ignore_errors: True
-                register: zaqar_enabled
-              - name: "PreUpgrade step0,validation: Check if openstack-zaqar is running"
-                shell: >
-                  /usr/bin/systemctl show 'openstack-zaqar' --property ActiveState |
-                  grep '\bactive\b'
-                when: zaqar_enabled.rc == 0
-                tags: step0,validation
-              - name: Check for zaqar running under apache (post upgrade)
-                tags: step1
-                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
-              - name: Stop and disable zaqar service (pre-upgrade not under httpd)
-                tags: step1
-                when: zaqar_enabled.rc == 0
-                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
+        list_concat:
+          - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
+          -
+            - name: Check if zaqar is deployed
+              command: systemctl is-enabled openstack-zaqar
+              tags: common
+              ignore_errors: True
+              register: zaqar_enabled
+            - name: "PreUpgrade step0,validation: Check if openstack-zaqar is running"
+              shell: >
+                /usr/bin/systemctl show 'openstack-zaqar' --property ActiveState |
+                grep '\bactive\b'
+              when: zaqar_enabled.rc == 0
+              tags: step0,validation
+            - name: Check for zaqar running under apache (post upgrade)
+              tags: step1
+              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
+            - name: Stop and disable zaqar service (pre-upgrade not under httpd)
+              tags: step1
+              when: zaqar_enabled.rc == 0
+              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