Added Savanna Project
Added services Savanna, Savanna Dashboard, Savanna python client. Implements blueprint devstack-savanna-support Implements blueprint devstack-integration Change-Id: I8725f59a0cc9aef4817988470313136c56711cf1
This commit is contained in:
parent
67f7da2de2
commit
a45a0a0276
43
exercises/savanna.sh
Executable file
43
exercises/savanna.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# **savanna.sh**
|
||||
|
||||
# Sanity check that Savanna started if enabled
|
||||
|
||||
echo "*********************************************************************"
|
||||
echo "Begin DevStack Exercise: $0"
|
||||
echo "*********************************************************************"
|
||||
|
||||
# This script exits on an error so that errors don't compound and you see
|
||||
# only the first error that occurred.
|
||||
set -o errexit
|
||||
|
||||
# Print the commands being run so that we can see the command that triggers
|
||||
# an error. It is also useful for following allowing as the install occurs.
|
||||
set -o xtrace
|
||||
|
||||
|
||||
# Settings
|
||||
# ========
|
||||
|
||||
# Keep track of the current directory
|
||||
EXERCISE_DIR=$(cd $(dirname "$0") && pwd)
|
||||
TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)
|
||||
|
||||
# Import common functions
|
||||
source $TOP_DIR/functions
|
||||
|
||||
# Import configuration
|
||||
source $TOP_DIR/openrc
|
||||
|
||||
# Import exercise configuration
|
||||
source $TOP_DIR/exerciserc
|
||||
|
||||
is_service_enabled savanna || exit 55
|
||||
|
||||
curl http://$SERVICE_HOST:8386/ 2>/dev/null | grep -q 'Auth' || die $LINENO "Savanna API not functioning!"
|
||||
|
||||
set +o xtrace
|
||||
echo "*********************************************************************"
|
||||
echo "SUCCESS: End DevStack Exercise: $0"
|
||||
echo "*********************************************************************"
|
31
extras.d/70-savanna.sh
Normal file
31
extras.d/70-savanna.sh
Normal file
@ -0,0 +1,31 @@
|
||||
# savanna.sh - DevStack extras script to install Savanna
|
||||
|
||||
if is_service_enabled savanna; then
|
||||
if [[ "$1" == "source" ]]; then
|
||||
# Initial source
|
||||
source $TOP_DIR/lib/savanna
|
||||
source $TOP_DIR/lib/savanna-dashboard
|
||||
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
|
||||
echo_summary "Installing Savanna"
|
||||
install_savanna
|
||||
if is_service_enabled horizon; then
|
||||
install_savanna_dashboard
|
||||
fi
|
||||
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
||||
echo_summary "Configuring Savanna"
|
||||
configure_savanna
|
||||
if is_service_enabled horizon; then
|
||||
configure_savanna_dashboard
|
||||
fi
|
||||
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
||||
echo_summary "Initializing Savanna"
|
||||
start_savanna
|
||||
fi
|
||||
|
||||
if [[ "$1" == "unstack" ]]; then
|
||||
stop_savanna
|
||||
if is_service_enabled horizon; then
|
||||
cleanup_savanna_dashboard
|
||||
fi
|
||||
fi
|
||||
fi
|
97
lib/savanna
Normal file
97
lib/savanna
Normal file
@ -0,0 +1,97 @@
|
||||
# lib/savanna
|
||||
|
||||
# Dependencies:
|
||||
# ``functions`` file
|
||||
# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
|
||||
# ``ADMIN_{TENANT_NAME|PASSWORD}`` must be defined
|
||||
|
||||
# ``stack.sh`` calls the entry points in this order:
|
||||
#
|
||||
# install_savanna
|
||||
# configure_savanna
|
||||
# start_savanna
|
||||
# stop_savanna
|
||||
|
||||
# Save trace setting
|
||||
XTRACE=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
|
||||
# Defaults
|
||||
# --------
|
||||
|
||||
# Set up default repos
|
||||
SAVANNA_REPO=${SAVANNA_REPO:-${GIT_BASE}/openstack/savanna.git}
|
||||
SAVANNA_BRANCH=${SAVANNA_BRANCH:-master}
|
||||
|
||||
# Set up default directories
|
||||
SAVANNA_DIR=$DEST/savanna
|
||||
SAVANNA_CONF_DIR=${SAVANNA_CONF_DIR:-/etc/savanna}
|
||||
SAVANNA_CONF_FILE=savanna.conf
|
||||
ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-admin}
|
||||
ADMIN_NAME=${ADMIN_NAME:-admin}
|
||||
ADMIN_PASSWORD=${ADMIN_PASSWORD:-nova}
|
||||
SAVANNA_DEBUG=${SAVANNA_DEBUG:-True}
|
||||
|
||||
# Support entry points installation of console scripts
|
||||
if [[ -d $SAVANNA_DIR/bin ]]; then
|
||||
SAVANNA_BIN_DIR=$SAVANNA_DIR/bin
|
||||
else
|
||||
SAVANNA_BIN_DIR=$(get_python_exec_prefix)
|
||||
fi
|
||||
|
||||
# Functions
|
||||
# ---------
|
||||
|
||||
# configure_savanna() - Set config files, create data dirs, etc
|
||||
function configure_savanna() {
|
||||
|
||||
if [[ ! -d $SAVANNA_CONF_DIR ]]; then
|
||||
sudo mkdir -p $SAVANNA_CONF_DIR
|
||||
fi
|
||||
sudo chown $STACK_USER $SAVANNA_CONF_DIR
|
||||
|
||||
# Copy over savanna configuration file and configure common parameters.
|
||||
cp $SAVANNA_DIR/etc/savanna/savanna.conf.sample $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE
|
||||
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_password $ADMIN_PASSWORD
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_username $ADMIN_NAME
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_tenant_name $ADMIN_TENANT_NAME
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT debug $SAVANNA_DEBUG
|
||||
|
||||
recreate_database savanna utf8
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database sql_connection `database_connection_url savanna`
|
||||
inicomment $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database connection
|
||||
|
||||
if is_service_enabled neutron; then
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_neutron true
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_floating_ips true
|
||||
fi
|
||||
|
||||
iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_syslog $SYSLOG
|
||||
}
|
||||
|
||||
# install_savanna() - Collect source and prepare
|
||||
function install_savanna() {
|
||||
git_clone $SAVANNA_REPO $SAVANNA_DIR $SAVANNA_BRANCH
|
||||
setup_develop $SAVANNA_DIR
|
||||
}
|
||||
|
||||
# start_savanna() - Start running processes, including screen
|
||||
function start_savanna() {
|
||||
screen_it savanna "cd $SAVANNA_DIR && $SAVANNA_BIN_DIR/savanna-api --config-file $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE"
|
||||
}
|
||||
|
||||
# stop_savanna() - Stop running processes
|
||||
function stop_savanna() {
|
||||
# Kill the Savanna screen windows
|
||||
screen -S $SCREEN_NAME -p savanna -X kill
|
||||
}
|
||||
|
||||
|
||||
# Restore xtrace
|
||||
$XTRACE
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# End:
|
70
lib/savanna-dashboard
Normal file
70
lib/savanna-dashboard
Normal file
@ -0,0 +1,70 @@
|
||||
# lib/savanna-dashboard
|
||||
|
||||
# Dependencies:
|
||||
# ``functions`` file
|
||||
# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
|
||||
# ``SERVICE_HOST
|
||||
|
||||
# ``stack.sh`` calls the entry points in this order:
|
||||
#
|
||||
# install_savanna_dashboard
|
||||
# configure_savanna_dashboard
|
||||
# cleanup_savanna_dashboard
|
||||
|
||||
# Save trace setting
|
||||
XTRACE=$(set +o | grep xtrace)
|
||||
set +o xtrace
|
||||
|
||||
source $TOP_DIR/lib/horizon
|
||||
|
||||
# Defaults
|
||||
# --------
|
||||
|
||||
# Set up default repos
|
||||
SAVANNA_DASHBOARD_REPO=${SAVANNA_DASHBOARD_REPO:-${GIT_BASE}/openstack/savanna-dashboard.git}
|
||||
SAVANNA_DASHBOARD_BRANCH=${SAVANNA_DASHBOARD_BRANCH:-master}
|
||||
|
||||
SAVANNA_PYTHONCLIENT_REPO=${SAVANNA_PYTHONCLIENT_REPO:-${GIT_BASE}/openstack/python-savannaclient.git}
|
||||
SAVANNA_PYTHONCLIENT_BRANCH=${SAVANNA_PYTHONCLIENT_BRANCH:-master}
|
||||
|
||||
# Set up default directories
|
||||
SAVANNA_DASHBOARD_DIR=$DEST/savanna_dashboard
|
||||
SAVANNA_PYTHONCLIENT_DIR=$DEST/python-savannaclient
|
||||
|
||||
# Functions
|
||||
# ---------
|
||||
|
||||
function configure_savanna_dashboard() {
|
||||
|
||||
echo -e "SAVANNA_URL = \"http://$SERVICE_HOST:8386/v1.1\"\nAUTO_ASSIGNMENT_ENABLED = False" >> $HORIZON_DIR/openstack_dashboard/local/local_settings.py
|
||||
echo -e "HORIZON_CONFIG['dashboards'] += ('savanna',)\nINSTALLED_APPS += ('savannadashboard',)" >> $HORIZON_DIR/openstack_dashboard/settings.py
|
||||
|
||||
if is_service_enabled neutron; then
|
||||
echo -e "SAVANNA_USE_NEUTRON = True" >> $HORIZON_DIR/openstack_dashboard/local/local_settings.py
|
||||
fi
|
||||
}
|
||||
|
||||
# install_savanna_dashboard() - Collect source and prepare
|
||||
function install_savanna_dashboard() {
|
||||
install_python_savannaclient
|
||||
git_clone $SAVANNA_DASHBOARD_REPO $SAVANNA_DASHBOARD_DIR $SAVANNA_DASHBOARD_BRANCH
|
||||
setup_develop $SAVANNA_DASHBOARD_DIR
|
||||
}
|
||||
|
||||
function install_python_savannaclient() {
|
||||
git_clone $SAVANNA_PYTHONCLIENT_REPO $SAVANNA_PYTHONCLIENT_DIR $SAVANNA_PYTHONCLIENT_BRANCH
|
||||
setup_develop $SAVANNA_PYTHONCLIENT_DIR
|
||||
}
|
||||
|
||||
# Cleanup file settings.py from Savanna
|
||||
function cleanup_savanna_dashboard() {
|
||||
sed -i '/savanna/d' $HORIZON_DIR/openstack_dashboard/settings.py
|
||||
}
|
||||
|
||||
# Restore xtrace
|
||||
$XTRACE
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# End:
|
||||
|
Loading…
Reference in New Issue
Block a user