Permalink
Browse files

Begin is_service_enabled() cleanup

This converts the special cases in the is_service_enabled() function to call
individual functions declared by the projects.  This allows projects that
are not in the DevStack repo and called via the extras.d plugin to handle
an equivalent service alias.

* Ceilometer
* Cinder
* Glance
* Neutron
* Nova
* Swift

TODO: remove the tests from is_service_enabled() after a transition period

Patch Set 2: Rebased

Change-Id: Ic78be433f93a9dd5f46be548bdbd4c984e0da6e7
  • Loading branch information...
1 parent f583a04 commit e4fa72132228688d2fe74dd974fe04b0fe4c3d6b @dtroyer dtroyer committed Jan 15, 2014
Showing with 82 additions and 25 deletions.
  1. +1 −1 clean.sh
  2. +3 −5 exercises/boot_from_volume.sh
  3. +0 −5 exercises/euca.sh
  4. +3 −5 exercises/floating_ips.sh
  5. +3 −5 exercises/volumes.sh
  6. +10 −0 functions
  7. +8 −1 lib/ceilometer
  8. +8 −0 lib/cinder
  9. +7 −0 lib/glance
  10. +7 −0 lib/neutron
  11. +14 −0 lib/nova
  12. +7 −0 lib/swift
  13. +8 −0 lib/template
  14. +1 −1 stack.sh
  15. +1 −1 stackrc
  16. +1 −1 unstack.sh
View
@@ -97,7 +97,7 @@ if is_service_enabled ldap; then
fi
# Do the hypervisor cleanup until this can be moved back into lib/nova
-if [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then
+if is_service_enabled nova && [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then
cleanup_nova_hypervisor
fi
@@ -30,14 +30,12 @@ TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)
# Import common functions
source $TOP_DIR/functions
+# Import project functions
+source $TOP_DIR/lib/cinder
+
# Import configuration
source $TOP_DIR/openrc
-# Import neutron functions if needed
-if is_service_enabled neutron; then
- source $TOP_DIR/lib/neutron
-fi
-
# Import exercise configuration
source $TOP_DIR/exerciserc
View
@@ -33,11 +33,6 @@ source $TOP_DIR/functions
# Import EC2 configuration
source $TOP_DIR/eucarc
-# Import neutron functions if needed
-if is_service_enabled neutron; then
- source $TOP_DIR/lib/neutron
-fi
-
# Import exercise configuration
source $TOP_DIR/exerciserc
@@ -27,14 +27,12 @@ TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)
# Import common functions
source $TOP_DIR/functions
+# Import project functions
+source $TOP_DIR/lib/neutron
+
# Import configuration
source $TOP_DIR/openrc
-# Import neutron functions if needed
-if is_service_enabled neutron; then
- source $TOP_DIR/lib/neutron
-fi
-
# Import exercise configuration
source $TOP_DIR/exerciserc
@@ -27,14 +27,12 @@ TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)
# Import common functions
source $TOP_DIR/functions
+# Import project functions
+source $TOP_DIR/lib/cinder
+
# Import configuration
source $TOP_DIR/openrc
-# Import neutron functions if needed
-if is_service_enabled neutron; then
- source $TOP_DIR/lib/neutron
-fi
-
# Import exercise configuration
source $TOP_DIR/exerciserc
View
@@ -840,6 +840,16 @@ function is_service_enabled() {
services=$@
for service in ${services}; do
[[ ,${ENABLED_SERVICES}, =~ ,${service}, ]] && return 0
+
+ # Look for top-level 'enabled' function for this service
+ if type is_${service}_enabled >/dev/null 2>&1; then
+ # A function exists for this service, use it
+ is_${service}_enabled
+ return $?
+ fi
+
+ # TODO(dtroyer): Remove these legacy special-cases after the is_XXX_enabled()
+ # are implemented
[[ ${service} == n-cell-* && ${ENABLED_SERVICES} =~ "n-cell" ]] && return 0
[[ ${service} == "nova" && ${ENABLED_SERVICES} =~ "n-" ]] && return 0
[[ ${service} == "cinder" && ${ENABLED_SERVICES} =~ "c-" ]] && return 0
View
@@ -59,7 +59,14 @@ TEMPEST_SERVICES+=,ceilometer
# Functions
# ---------
-#
+
+# Test if any Ceilometer services are enabled
+# is_ceilometer_enabled
+function is_ceilometer_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"ceilometer-" ]] && return 0
+ return 1
+}
+
# create_ceilometer_accounts() - Set up common required ceilometer accounts
create_ceilometer_accounts() {
View
@@ -85,6 +85,14 @@ TEMPEST_SERVICES+=,cinder
# Functions
# ---------
+
+# Test if any Cinder services are enabled
+# is_cinder_enabled
+function is_cinder_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"c-" ]] && return 0
+ return 1
+}
+
# _clean_lvm_lv removes all cinder LVM volumes
#
# Usage: _clean_lvm_lv $VOLUME_GROUP $VOLUME_NAME_PREFIX
View
@@ -59,6 +59,13 @@ TEMPEST_SERVICES+=,glance
# Functions
# ---------
+# Test if any Glance services are enabled
+# is_glance_enabled
+function is_glance_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"g-" ]] && return 0
+ return 1
+}
+
# cleanup_glance() - Remove residual data files, anything left over from previous
# runs that a clean run would need to clean up
function cleanup_glance() {
View
@@ -244,6 +244,13 @@ TEMPEST_SERVICES+=,neutron
# Functions
# ---------
+# Test if any Neutron services are enabled
+# is_neutron_enabled
+function is_neutron_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"q-" ]] && return 0
+ return 1
+}
+
# configure_neutron()
# Set common config for all neutron server and agents.
function configure_neutron() {
View
@@ -129,6 +129,20 @@ TEMPEST_SERVICES+=,nova
# Functions
# ---------
+# Test if any Nova services are enabled
+# is_nova_enabled
+function is_nova_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"n-" ]] && return 0
+ return 1
+}
+
+# Test if any Nova Cell services are enabled
+# is_nova_enabled
+function is_n-cell_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"n-cell-" ]] && return 0
+ return 1
+}
+
# Helper to clean iptables rules
function clean_iptables() {
# Delete rules
View
@@ -118,6 +118,13 @@ TEMPEST_SERVICES+=,swift
# Functions
# ---------
+# Test if any Swift services are enabled
+# is_swift_enabled
+function is_swift_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"s-" ]] && return 0
+ return 1
+}
+
# cleanup_swift() - Remove residual data files
function cleanup_swift() {
rm -f ${SWIFT_CONF_DIR}{*.builder,*.ring.gz,backups/*.builder,backups/*.ring.gz}
View
@@ -10,6 +10,7 @@
# ``stack.sh`` calls the entry points in this order:
#
+# - is_XXXX_enabled
# - install_XXXX
# - configure_XXXX
# - init_XXXX
@@ -35,6 +36,13 @@ XXX_CONF_DIR=/etc/XXXX
# Entry Points
# ------------
+# Test if any XXXX services are enabled
+# is_XXXX_enabled
+function is_XXXX_enabled {
+ [[ ,${ENABLED_SERVICES} =~ ,"XX-" ]] && return 0
+ return 1
+}
+
# cleanup_XXXX() - Remove residual data files, anything left over from previous
# runs that a clean run would need to clean up
function cleanup_XXXX() {
View
@@ -1096,7 +1096,7 @@ if is_service_enabled s-proxy; then
fi
# Launch the Glance services
-if is_service_enabled g-api g-reg; then
+if is_service_enabled glance; then
echo_summary "Starting Glance"
start_glance
fi
View
@@ -35,7 +35,7 @@ fi
# enable_service neutron
# # Optional, to enable tempest configuration as part of devstack
# enable_service tempest
-ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,cinder,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,mysql
+ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-cond,c-sch,c-api,c-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,rabbit,tempest,mysql
# Tell Tempest which services are available. The default is set here as
# Tempest falls late in the configuration sequence. This differs from
View
@@ -104,7 +104,7 @@ if is_service_enabled nova; then
stop_nova
fi
-if is_service_enabled g-api g-reg; then
+if is_service_enabled glance; then
stop_glance
fi

0 comments on commit e4fa721

Please sign in to comment.