Files
openstack-ansible-os_placement/tasks/placement_db_sync.yml
Dmitriy Rabotyagov 3d6cedf859 Add nova to placement DB migration
While transitioning nova-placement to placement we need
to migrate data [1]. This patch adds this required step for properly
migrating placement with all data.

[1] https://docs.openstack.org/placement/latest/admin/upgrade-to-stein.html#migrate-the-data

Change-Id: I4e03ee7c0ead78a1296a8bd8447bce771967d742
2019-10-17 16:00:00 +03:00

38 lines
1.6 KiB
YAML

---
# Copyright 2019, VEXXHOST, 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.
- block:
- name: Get mysql-migrate-db.sh path
command: "{{ placement_bin }}/python -c \"import pkg_resources;print(pkg_resources.resource_filename('placement_db_tools', 'mysql-migrate-db.sh'))\" "
become: yes
become_user: "{{ placement_system_user_name }}"
changed_when: false
register: placement_db_tools
# NOTE(noonededpunk) We have rc 3 when data is already migrated and rc 4 when no data for migration
- name: Perform DB migration from nova-placement
command: "{{ placement_db_tools.stdout }} --migrate /etc/placement/placement-migrate-db.rc"
become: yes
become_user: "{{ placement_system_user_name }}"
register: placement_migrate
changed_when: placement_migrate.rc == 0
failed_when: placement_migrate.rc == 1 or placement_migrate.rc == 2 or placement_migrate.rc >= 5
when: placement_migrate_flag | default(False)
- name: Perform a Placement DB sync
command: "{{ placement_bin }}/placement-manage db sync"
become: yes
become_user: "{{ placement_system_user_name }}"
changed_when: false