From feb28837f4db9177835f94b6b9899a90c45a685d Mon Sep 17 00:00:00 2001 From: Ryan Hsu Date: Thu, 7 Nov 2013 12:12:35 -0800 Subject: [PATCH] Add new stack phase: post-extra The current existing phases "post-config" and "extra" are not sufficient to allow local.conf overrides to extra type services because they run after the services are installed and configured. This commit introduces a new phase called "post-extra" that runs after these existing phases. With this change, users are able to leverage local.conf to provide overridden options to services like Tempest. Change-Id: I5d758eebfda804dd1d8cbc3d5cc35ef4dcc8c96f Closes-Bug: #1249085 --- README.md | 1 + extras.d/80-tempest.sh | 3 +++ extras.d/README.md | 4 ++-- stack.sh | 7 +++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 640fab65f9..34cd2efc90 100644 --- a/README.md +++ b/README.md @@ -326,6 +326,7 @@ The defined phases are: * **local** - extracts ``localrc`` from ``local.conf`` before ``stackrc`` is sourced * **post-config** - runs after the layer 2 services are configured and before they are started * **extra** - runs after services are started and before any files in ``extra.d`` are executed +* **post-extra** - runs after files in ``extra.d`` are executed The file is processed strictly in sequence; meta-sections may be specified more than once but if any settings are duplicated the last to appear in the file will be used. diff --git a/extras.d/80-tempest.sh b/extras.d/80-tempest.sh index 75b702c700..0186e36aee 100644 --- a/extras.d/80-tempest.sh +++ b/extras.d/80-tempest.sh @@ -14,6 +14,9 @@ if is_service_enabled tempest; then echo_summary "Initializing Tempest" configure_tempest init_tempest + elif [[ "$1" == "stack" && "$2" == "post-extra" ]]; then + # local.conf Tempest option overrides + : fi if [[ "$1" == "unstack" ]]; then diff --git a/extras.d/README.md b/extras.d/README.md index 88e4265ced..1dd17da2d6 100644 --- a/extras.d/README.md +++ b/extras.d/README.md @@ -19,10 +19,10 @@ sourced with one or more arguments, the first of which defines the hook phase: source: always called first in any of the scripts, used to set the initial defaults in a lib/* script or similar - stack: called by stack.sh. There are three possible values for + stack: called by stack.sh. There are four possible values for the second arg to distinguish the phase stack.sh is in: - arg 2: install | post-config | extra + arg 2: install | post-config | extra | post-extra unstack: called by unstack.sh diff --git a/stack.sh b/stack.sh index 47d93bd642..c24257d815 100755 --- a/stack.sh +++ b/stack.sh @@ -1252,6 +1252,13 @@ if [[ -d $TOP_DIR/extras.d ]]; then done fi +# Local Configuration +# =================== + +# Apply configuration from local.conf if it exists for layer 2 services +# Phase: post-extra +merge_config_group $TOP_DIR/local.conf post-extra + # Run local script # ================