Files
kolla/docker/nova/nova-api/extend_start.sh
Doug Szumski b087f058c9 Support DB bootstrap from Nova Conductor container
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
2019-08-20 17:22:40 +01:00

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