Allow removing services explicitly.
- When adding a - (hyphen) at the begining of a service in
ENABLED_SERVICES the service will be removed explicitly.
Change-Id: I69ce082d13b79aa88426e8012a941c4ae99741f6
diff --git a/stack.sh b/stack.sh
index 4523c2c..ade8710 100755
--- a/stack.sh
+++ b/stack.sh
@@ -89,6 +89,16 @@
# Sanity Check
# ============
+# We are looking for services with a - at the beginning to force
+# excluding those services. For example if you want to install all the default
+# services but not nova-volume (n-vol) you can have this set in your localrc :
+# ENABLED_SERVICES+=",-n-vol"
+for service in ${ENABLED_SERVICES//,/ }; do
+ if [[ ${service} == -* ]]; then
+ ENABLED_SERVICES=$(echo ${ENABLED_SERVICES}|sed -r "s/(,)?(-)?${service#-}(,)?/,/g")
+ fi
+done
+
# Warn users who aren't on an explicitly supported distro, but allow them to
# override check and attempt installation with ``FORCE=yes ./stack``
if [[ ! ${DISTRO} =~ (oneiric|precise|quantal|f16) ]]; then
diff --git a/stackrc b/stackrc
index cc07906..3a19cdb 100644
--- a/stackrc
+++ b/stackrc
@@ -6,7 +6,12 @@
# by default you can append them in your ENABLED_SERVICES variable in
# your localrc. For example for swift you can just add this in your
# localrc to add it with the other services:
-# ENABLED_SERVICES="$ENABLED_SERVICES,swift"
+# ENABLED_SERVICES+=,swift
+#
+# If you like to explicitly remove services you can add a -$service in
+# ENABLED_SERVICES, for example in your localrc to install all defaults but not
+# nova-volume you would just need to set this :
+# ENABLED_SERVICES+=,-n-vol
ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit
# Set the default Nova APIs to enable