diff --git a/lib/neutron b/lib/neutron index 835f900425..c546f378b0 100644 --- a/lib/neutron +++ b/lib/neutron @@ -367,7 +367,9 @@ function create_neutron_initial_network() { # init_neutron() - Initialize databases, etc. function init_neutron() { - : + recreate_database $Q_DB_NAME utf8 + # Run Neutron db migrations + $NEUTRON_BIN_DIR/neutron-db-manage --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head } # install_neutron() - Collect source and prepare @@ -614,12 +616,6 @@ function _configure_neutron_service() { cp $NEUTRON_DIR/etc/api-paste.ini $Q_API_PASTE_FILE cp $NEUTRON_DIR/etc/policy.json $Q_POLICY_FILE - if is_service_enabled $DATABASE_BACKENDS; then - recreate_database $Q_DB_NAME utf8 - else - die $LINENO "A database must be enabled in order to use the $Q_PLUGIN Neutron plugin." - fi - # Update either configuration file with plugin iniset $NEUTRON_CONF DEFAULT core_plugin $Q_PLUGIN_CLASS diff --git a/stack.sh b/stack.sh index 5ba60d2430..01f948e6b7 100755 --- a/stack.sh +++ b/stack.sh @@ -939,7 +939,10 @@ if is_service_enabled neutron; then echo_summary "Configuring Neutron" configure_neutron - init_neutron + # Run init_neutron only on the node hosting the neutron API server + if is_service_enabled $DATABASE_BACKENDS && is_service_enabled q-svc; then + init_neutron + fi fi # Some Neutron plugins require network controllers which are not