From bd76eda2a3d9156f118da3647d4a8efc04e275b8 Mon Sep 17 00:00:00 2001 From: Peter Stachowski Date: Fri, 17 Jun 2016 13:51:38 -0400 Subject: [PATCH] Have Trove plugin install dashboard At present if the Trove plugin is enabled and Horizon is enabled, the Trove dashboard still needs to be enabled (which is currently done by redstack). This should be handled by the Trove plugin itself. With this fix, if Trove and Horizon are installed the dashboard will be automatically set up. Some variable names were modified slightly as well to bring them in line with the rest. The cleanup code was also moved to the 'stop' section, which is where it probably belonged right from the beginning. Depends-On: I71cf27a57e8d2cd141928f26ac01bd5ca14c723f Change-Id: I6586801bff4282e3bbf11e45e4f171fffcab285e Partial-Bug: #1593806 --- devstack/plugin.sh | 29 +++++++++++++++++++++++++---- devstack/settings | 12 +++++++++--- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/devstack/plugin.sh b/devstack/plugin.sh index f27dbc6a1b..2c9984af75 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -73,9 +73,19 @@ function create_trove_accounts { # cleanup_trove() - Remove residual data files, anything left over from previous # runs that a clean run would need to clean up function cleanup_trove { - #Clean up dirs + # Clean up dirs rm -fr $TROVE_AUTH_CACHE_DIR/* rm -fr $TROVE_CONF_DIR/* + + if is_service_enabled horizon; then + cleanup_trove_dashboard + fi +} + + +# cleanup_trove_dashboard() - Remove Trove dashboard files from Horizon +function cleanup_trove_dashboard { + rm -f $HORIZON_DIR/openstack_dashboard/local/enabled/_17*database*.py } @@ -181,13 +191,24 @@ function configure_trove { # install_trove() - Collect source and prepare function install_trove { setup_develop $TROVE_DIR + + if is_service_enabled horizon; then + install_trove_dashboard + fi +} + +# install_trove_dashboard() - Collect source and prepare +function install_trove_dashboard { + git_clone $TROVE_DASHBOARD_REPO $TROVE_DASHBOARD_DIR $TROVE_DASHBOARD_BRANCH + setup_develop $TROVE_DASHBOARD_DIR + cp $TROVE_DASHBOARD_DIR/trove_dashboard/enabled/_17*database*.py $HORIZON_DIR/openstack_dashboard/local/enabled } # install_python_troveclient() - Collect source and prepare function install_python_troveclient { if use_library_from_git "python-troveclient"; then - git_clone $TROVECLIENT_REPO $TROVECLIENT_DIR $TROVECLIENT_BRANCH - setup_develop $TROVECLIENT_DIR + git_clone $TROVE_CLIENT_REPO $TROVE_CLIENT_DIR $TROVE_CLIENT_BRANCH + setup_develop $TROVE_CLIENT_DIR fi } @@ -285,7 +306,6 @@ if is_service_enabled trove; then echo_summary "Installing Trove" install_trove install_python_troveclient - cleanup_trove elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then echo_summary "Configuring Trove" configure_trove @@ -315,6 +335,7 @@ if is_service_enabled trove; then if [[ "$1" == "unstack" ]]; then stop_trove + cleanup_trove fi fi diff --git a/devstack/settings b/devstack/settings index 9964754016..1fe89543d0 100644 --- a/devstack/settings +++ b/devstack/settings @@ -3,10 +3,16 @@ # Set up default directories TROVE_DIR=${TROVE_DIR:-${DEST}/trove} +TROVE_REPO=${TROVE_REPO:-${GIT_BASE}/openstack/trove.git} +TROVE_BRANCH=${TROVE_BRANCH:-master} -TROVECLIENT_DIR=${TROVECLIENT_DIR:-${DEST}/python-troveclient} -TROVECLIENT_REPO=${TROVECLIENT_REPO:-${GIT_BASE}/openstack/python-troveclient.git} -TROVECLIENT_BRANCH=${TROVECLIENT_BRANCH:-master} +TROVE_CLIENT_DIR=${TROVE_CLIENT_DIR:-${TROVECLIENT_DIR:-${DEST}/python-troveclient}} +TROVE_CLIENT_REPO=${TROVE_CLIENT_REPO:-${TROVECLIENT_REPO:-${GIT_BASE}/openstack/python-troveclient.git}} +TROVE_CLIENT_BRANCH=${TROVE_CLIENT_BRANCH:-${TROVECLIENT_BRANCH:-master}} + +TROVE_DASHBOARD_DIR=${TROVE_DASHBOARD_DIR:-${DEST}/trove-dashboard} +TROVE_DASHBOARD_REPO=${TROVE_DASHBOARD_REPO:-${GIT_BASE}/openstack/trove-dashboard.git} +TROVE_DASHBOARD_BRANCH=${TROVE_DASHBOARD_BRANCH:-master} # Set up configuration directory and files TROVE_CONF_DIR=${TROVE_CONF_DIR:-/etc/trove}