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
This commit is contained in:
Dmitriy Rabotyagov 2019-10-17 16:00:00 +03:00
parent 9064990091
commit 3d6cedf859
3 changed files with 35 additions and 0 deletions

View File

@ -13,6 +13,23 @@
# 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

View File

@ -27,3 +27,12 @@
dest: "/etc/placement/placement.conf"
config_overrides: "{{ placement_placement_conf_overrides }}"
config_type: "ini"
- name: Copy placement database migration config
template:
src: placement-migrate-db.rc.j2
dest: /etc/placement/placement-migrate-db.rc
owner: "root"
group: "{{ item.group|default(placement_system_group_name) }}"
mode: "0640"
when: placement_migrate_flag | default(False)

View File

@ -0,0 +1,9 @@
NOVA_API_DB="{{ nova_api_galera_database | default('nova_api') }}"
NOVA_API_USER="{{ nova_api_galera_user | default('nova_api') }}"
NOVA_API_PASS="{{ nova_api_container_mysql_password }}"
NOVA_API_DB_HOST="{{ nova_api_galera_address | default(placement_galera_address) }}"
PLACEMENT_DB="{{ placement_galera_database }}"
PLACEMENT_USER="{{ placement_galera_user }}"
PLACEMENT_PASS="{{ placement_galera_password }}"
PLACEMENT_DB_HOST="{{ placement_galera_address }}"
MIGRATE_TABLES="allocations placement_aggregates consumers inventories projects resource_classes resource_provider_aggregates resource_provider_traits resource_providers traits users"