
The online migrations are disabled when they would have run once per software version. However, when the task that sets data_migration is skipped, it's not considered as failure by ansible, and therefore the | succeeded will be true, removing the ability to do the online data migrations. This ensure that the fact task will be set to remove the need for online data migrations when the relevant task has properly run (not skipped). Closes-Bug: #1713698 Change-Id: I0ed046252b24d4e02efb65216cc1c33aa470db9d
76 lines
3.0 KiB
YAML
76 lines
3.0 KiB
YAML
---
|
|
# Copyright 2014, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
- name: Get the api_db version
|
|
command: "{{ nova_bin }}/nova-manage api_db version"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
register: nova_api_db_version
|
|
changed_when: false
|
|
|
|
- name: Perform a Nova API DB sync
|
|
command: "{{ nova_bin }}/nova-manage api_db sync"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
when:
|
|
- nova_api_db_version.stdout == "0"
|
|
|
|
- name: Perform cell_v2 map cell0
|
|
command: "{{ nova_bin }}/nova-manage cell_v2 map_cell0 --database_connection mysql+pymysql://{{ nova_api_galera_user }}:{{ nova_api_container_mysql_password }}@{{ nova_api_galera_address }}/{{ nova_cell0_database }}?charset=utf8"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
- name: Perform cell_v2 initial cell setup
|
|
command: "{{ nova_bin }}/nova-manage cell_v2 create_cell --name {{ nova_cell1_name }} --database_connection mysql+pymysql://{{ nova_galera_user }}:{{ nova_container_mysql_password }}@{{ nova_galera_address }}/{{ nova_galera_database }}?charset=utf8 --transport-url rabbit://{% for host in nova_rabbitmq_servers.split(',') %}{{ nova_rabbitmq_userid }}:{{ nova_rabbitmq_password }}@{{ host }}:{{ nova_rabbitmq_port }}{% if not loop.last %},{% else %}/{{ nova_rabbitmq_vhost }}{% endif %}{% endfor %}"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
register: nova_cell1_create
|
|
failed_when: "nova_cell1_create.rc not in [0, 2]"
|
|
changed_when: "nova_cell1_create.rc == 0"
|
|
|
|
- name: Perform a Nova API DB sync
|
|
command: "{{ nova_bin }}/nova-manage api_db sync"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
- name: Perform a Nova DB sync
|
|
command: "{{ nova_bin }}/nova-manage db sync"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
changed_when: false
|
|
|
|
- name: Perform online data migrations
|
|
command: "{{ nova_bin }}/nova-manage db online_data_migrations"
|
|
become: yes
|
|
become_user: "{{ nova_system_user_name }}"
|
|
when:
|
|
- "(nova_all_software_updated | default('no')) | bool"
|
|
- "ansible_local['openstack_ansible']['nova']['need_online_data_migrations'] | bool"
|
|
changed_when: false
|
|
register: data_migrations
|
|
|
|
- name: Disable the online migrations requirement
|
|
ini_file:
|
|
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
|
|
section: nova
|
|
option: need_online_data_migrations
|
|
value: False
|
|
when:
|
|
- not data_migrations | skipped
|
|
- data_migrations | succeeded
|