
Currently the Nova API container does all the database bootstrapping for Nova. In a deployment with more than one active cell, it makes more sense for the conductors to bootstrap their own databases, rather than have the Nova API container do it. This change adds support for that. Until the support is actually used, we leave Nova API as-is. Partially Implements: blueprint support-nova-cells Change-Id: Id3a78b6838a3aae04f5dd5bd6ec928359297cfd3
40 lines
1.2 KiB
Bash
40 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# TODO(dszumski): When Nova Conductor in Kolla Ansible supports triggering DB
|
|
# operations, we should review this script and remove any duplicate
|
|
# operations. This is probably anything that isn't to do with the API.
|
|
|
|
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
|
|
# of the KOLLA_BOOTSTRAP variable being set, including empty.
|
|
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
|
|
nova-manage api_db sync
|
|
nova-manage db sync
|
|
nova-manage db online_data_migrations
|
|
exit 0
|
|
fi
|
|
|
|
if [[ "${!KOLLA_UPGRADE[@]}" ]]; then
|
|
nova-manage api_db sync
|
|
nova-manage db sync
|
|
exit 0
|
|
fi
|
|
|
|
if [[ "${!KOLLA_OSM[@]}" ]]; then
|
|
nova-manage db online_data_migrations
|
|
exit 0
|
|
fi
|
|
|
|
# Assume the service runs on top of Apache when user is root
|
|
if [[ "$(whoami)" == 'root' ]]; then
|
|
# NOTE(pbourke): httpd will not clean up after itself in some cases which
|
|
# results in the container not being able to restart. (bug #1489676, 1557036)
|
|
if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
|
|
# Loading Apache2 ENV variables
|
|
. /etc/apache2/envvars
|
|
install -d /var/run/apache2/
|
|
rm -rf /var/run/apache2/*
|
|
else
|
|
rm -rf /var/run/httpd/* /run/httpd/* /tmp/httpd*
|
|
fi
|
|
fi
|