From 1023ff7c3ac184da00b6306f361f285301849881 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Mon, 27 Jan 2014 14:56:44 -0600 Subject: [PATCH] Move ironic to plugin Also adds an is_ironic_enabled() function to prepare for an upcoming change in is_service_enabled(). Change-Id: I6e6e0e8b70221e231785ab27e9b5d4836933ac4c --- extras.d/50-ironic.sh | 33 +++++++++++++++++++++++++++++++++ lib/ironic | 7 +++++++ stack.sh | 21 --------------------- unstack.sh | 7 ------- 4 files changed, 40 insertions(+), 28 deletions(-) create mode 100644 extras.d/50-ironic.sh diff --git a/extras.d/50-ironic.sh b/extras.d/50-ironic.sh new file mode 100644 index 0000000000..f68a14680f --- /dev/null +++ b/extras.d/50-ironic.sh @@ -0,0 +1,33 @@ +# ironic.sh - Devstack extras script to install ironic + +if is_service_enabled ir-api ir-cond; then + if [[ "$1" == "source" ]]; then + # Initial source + source $TOP_DIR/lib/ironic + elif [[ "$1" == "stack" && "$2" == "install" ]]; then + echo_summary "Installing Ironic" + install_ironic + install_ironicclient + cleanup_ironic + elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then + echo_summary "Configuring Ironic" + configure_ironic + + if is_service_enabled key; then + create_ironic_accounts + fi + + elif [[ "$1" == "stack" && "$2" == "extra" ]]; then + # Initialize ironic + init_ironic + + # Start the ironic API and ironic taskmgr components + echo_summary "Starting Ironic" + start_ironic + fi + + if [[ "$1" == "unstack" ]]; then + stop_ironic + cleanup_ironic + fi +fi diff --git a/lib/ironic b/lib/ironic index afbc3e09e4..afb7c23d2c 100644 --- a/lib/ironic +++ b/lib/ironic @@ -46,6 +46,13 @@ IRONIC_HOSTPORT=${IRONIC_HOSTPORT:-$SERVICE_HOST:6385} # Functions # --------- +# Test if any Ironic services are enabled +# is_ironic_enabled +function is_ironic_enabled { + [[ ,${ENABLED_SERVICES} =~ ,"ir-" ]] && return 0 + return 1 +} + # install_ironic() - Collect source and prepare function install_ironic() { git_clone $IRONIC_REPO $IRONIC_DIR $IRONIC_BRANCH diff --git a/stack.sh b/stack.sh index 45d47c819c..a1cf595cf0 100755 --- a/stack.sh +++ b/stack.sh @@ -336,7 +336,6 @@ source $TOP_DIR/lib/heat source $TOP_DIR/lib/neutron source $TOP_DIR/lib/baremetal source $TOP_DIR/lib/ldap -source $TOP_DIR/lib/ironic # Extras Source # -------------- @@ -746,11 +745,6 @@ if is_service_enabled tls-proxy; then # don't be naive and add to existing line! fi -if is_service_enabled ir-api ir-cond; then - install_ironic - install_ironicclient - configure_ironic -fi # Extras Install # -------------- @@ -966,15 +960,6 @@ if is_service_enabled g-reg; then fi -# Ironic -# ------ - -if is_service_enabled ir-api ir-cond; then - echo_summary "Configuring Ironic" - init_ironic -fi - - # Neutron # ------- @@ -1101,12 +1086,6 @@ if is_service_enabled g-api g-reg; then start_glance fi -# Launch the Ironic services -if is_service_enabled ir-api ir-cond; then - echo_summary "Starting Ironic" - start_ironic -fi - # Create an access key and secret key for nova ec2 register image if is_service_enabled key && is_service_enabled swift3 && is_service_enabled nova; then NOVA_USER_ID=$(keystone user-list | grep ' nova ' | get_field 1) diff --git a/unstack.sh b/unstack.sh index 92d0642c38..ea9c27d99b 100755 --- a/unstack.sh +++ b/unstack.sh @@ -55,7 +55,6 @@ source $TOP_DIR/lib/heat source $TOP_DIR/lib/neutron source $TOP_DIR/lib/baremetal source $TOP_DIR/lib/ldap -source $TOP_DIR/lib/ironic # Extras Source # -------------- @@ -118,12 +117,6 @@ if is_service_enabled s-proxy; then cleanup_swift fi -# Ironic runs daemons -if is_service_enabled ir-api ir-cond; then - stop_ironic - cleanup_ironic -fi - # Apache has the WSGI processes if is_service_enabled horizon; then stop_horizon