Perform ironic online data migrations

Online data migrations are necessary for performing an upgrade of
ironic. Without this change, an error such as the following may be seen
in task 'bifrost-ironic-install : Upgrade ironic DB Schema'.

The database is not compatible with this release of ironic (10.1.7).
Please run "ironic-dbsync online_data_migrations" using the previous
release.

Change-Id: I685efd14bf3567a126311b676a50b0abb0f043db
Story: 2004670
Task: 28658
This commit is contained in:
Mark Goddard 2018-12-27 11:15:58 +00:00
parent ff7621c0d2
commit 705a58f6eb
4 changed files with 32 additions and 0 deletions

View File

@ -30,6 +30,8 @@ skip_package_install: False
skip_bootstrap: False skip_bootstrap: False
# set to true to skip starting ironic services and dependencies # set to true to skip starting ironic services and dependencies
skip_start: False skip_start: False
# set to true to skip performing online data migrations
skip_migrations: "{{ skip_bootstrap }}"
# Default network interface that bifrost will be attached to. # Default network interface that bifrost will be attached to.
# This is used in ipa_* so it must be before # This is used in ipa_* so it must be before

View File

@ -62,3 +62,7 @@
- name: "Start Ironic services" - name: "Start Ironic services"
include: start.yml include: start.yml
when: skip_start | bool != True when: skip_start | bool != True
- name: "Perform online data migrations"
include: migrations.yml
when: skip_migrations | bool != True

View File

@ -0,0 +1,22 @@
# 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: "If VENV is set in the environment, enable installation into venv"
set_fact:
enable_venv: true
when: lookup('env', 'VENV') | length > 0
- name: "Perform ironic online data migrations"
command: ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations
environment: "{{ bifrost_venv_env if enable_venv else {} }}"
when: ironic.database.host != 'localhost'

View File

@ -0,0 +1,4 @@
---
features:
- |
Adds support for performing ironic online data migrations.