nova: call map_cell0 much earlier in the setup
The map_cell0 command creates a cell mapping record in the
nova_api database, and the nova-manage db sync command
will migrate the db schema for the nova_cell0 database. This
patch takes advantage of that by moving the map_cell0 call
much earlier in the setup process so we get the nova_cell0
db schema migrated at the same time as the main nova db.
This also removes the || true condition around map_cell0
since it's idempotent now due to fix:
aa7b6ebbb254f00fcb548832941ca9dbd3996d9f
Change-Id: Ice4fbb1771270c618b2acbc933d4fbfb6805df81
diff --git a/lib/nova b/lib/nova
index 4d336f6..ba9cac5 100644
--- a/lib/nova
+++ b/lib/nova
@@ -683,9 +683,13 @@
recreate_database nova
recreate_database nova_cell0
- # Migrate nova database. If "nova-manage cell_v2 simple_cell_setup" has
- # been run this migrates the "nova" and "nova_cell0" database.
- # Otherwise it just migrates the "nova" database.
+ # map_cell0 will create the cell mapping record in the nova_api DB so
+ # this needs to come after the api_db sync happens. We also want to run
+ # this before the db sync below since that will migrate both the nova
+ # and nova_cell0 databases.
+ nova-manage cell_v2 map_cell0 --database_connection `database_connection_url nova_cell0`
+
+ # Migrate nova and nova_cell0 databases.
$NOVA_BIN_DIR/nova-manage --config-file $NOVA_CONF db sync
if is_service_enabled n-cell; then
@@ -945,9 +949,6 @@
# create_cell(): Group the available hosts into a cell
function create_cell {
- # NOTE(danms): map_cell0 always returns 1 right now; remove this when that is fixed
- (nova-manage cell_v2 map_cell0 --database_connection `database_connection_url nova_cell0`|| true)
-
if ! is_service_enabled n-cell; then
nova-manage cell_v2 simple_cell_setup --transport-url $(get_transport_url)
else