Merge (don't overwrite) $NOVA_CPU_CONF
Per the referenced bug, $NOVA_CPU_CONF was previously being initialized
by copying $NOVA_CONF, thereby trashing any values already configured in
$NOVA_CPU_CONF.
With this commit, we merge the values from $NOVA_CPU_CONF in after the
copy.
Note that this makes use of the merge_config_file function, which is
defined in inc/meta-config, which wasn't being sourced from every code
path that hit start_nova_compute; so this commit also moves that import
from stack.sh to functions (next to the other imports from inc/, which
makes sense anyway).
Change-Id: Id3e2baa2221e13f512f8dcf1248e1e15b6a7597f
Closes-Bug: #1802143
diff --git a/functions b/functions
index 9303567..f33fd25 100644
--- a/functions
+++ b/functions
@@ -18,6 +18,7 @@
FUNC_DIR=$(cd $(dirname "${BASH_SOURCE:-$0}") && pwd)
source ${FUNC_DIR}/functions-common
source ${FUNC_DIR}/inc/ini-config
+source ${FUNC_DIR}/inc/meta-config
source ${FUNC_DIR}/inc/python
source ${FUNC_DIR}/inc/rootwrap
diff --git a/lib/nova b/lib/nova
index f423b57..1ec1a78 100644
--- a/lib/nova
+++ b/lib/nova
@@ -838,7 +838,10 @@
local compute_cell_conf=$NOVA_CONF
+ # Bug #1802143: $NOVA_CPU_CONF is constructed by first copying $NOVA_CONF...
cp $compute_cell_conf $NOVA_CPU_CONF
+ # ...and then adding/overriding anything explicitly set in $NOVA_CPU_CONF
+ merge_config_file $TOP_DIR/local.conf post-config '$NOVA_CPU_CONF'
if [[ "${CELLSV2_SETUP}" == "singleconductor" ]]; then
# NOTE(danms): Grenade doesn't setup multi-cell rabbit, so
diff --git a/stack.sh b/stack.sh
index b8d597e..0146968 100755
--- a/stack.sh
+++ b/stack.sh
@@ -167,9 +167,6 @@
# Import common functions
source $TOP_DIR/functions
-# Import config functions
-source $TOP_DIR/inc/meta-config
-
# Import 'public' stack.sh functions
source $TOP_DIR/lib/stack