Browse code

Merge "Added Savanna Project"

Jenkins authored on 2013/10/23 09:28:14
Showing 4 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,43 @@
0
+#!/usr/bin/env bash
1
+
2
+# **savanna.sh**
3
+
4
+# Sanity check that Savanna started if enabled
5
+
6
+echo "*********************************************************************"
7
+echo "Begin DevStack Exercise: $0"
8
+echo "*********************************************************************"
9
+
10
+# This script exits on an error so that errors don't compound and you see
11
+# only the first error that occurred.
12
+set -o errexit
13
+
14
+# Print the commands being run so that we can see the command that triggers
15
+# an error.  It is also useful for following allowing as the install occurs.
16
+set -o xtrace
17
+
18
+
19
+# Settings
20
+# ========
21
+
22
+# Keep track of the current directory
23
+EXERCISE_DIR=$(cd $(dirname "$0") && pwd)
24
+TOP_DIR=$(cd $EXERCISE_DIR/..; pwd)
25
+
26
+# Import common functions
27
+source $TOP_DIR/functions
28
+
29
+# Import configuration
30
+source $TOP_DIR/openrc
31
+
32
+# Import exercise configuration
33
+source $TOP_DIR/exerciserc
34
+
35
+is_service_enabled savanna || exit 55
36
+
37
+curl http://$SERVICE_HOST:8386/ 2>/dev/null | grep -q 'Auth' || die $LINENO "Savanna API not functioning!"
38
+
39
+set +o xtrace
40
+echo "*********************************************************************"
41
+echo "SUCCESS: End DevStack Exercise: $0"
42
+echo "*********************************************************************"
0 43
new file mode 100644
... ...
@@ -0,0 +1,31 @@
0
+# savanna.sh - DevStack extras script to install Savanna
1
+
2
+if is_service_enabled savanna; then
3
+    if [[ "$1" == "source" ]]; then
4
+        # Initial source
5
+        source $TOP_DIR/lib/savanna
6
+        source $TOP_DIR/lib/savanna-dashboard
7
+    elif [[ "$1" == "stack" && "$2" == "install" ]]; then
8
+        echo_summary "Installing Savanna"
9
+        install_savanna
10
+        if is_service_enabled horizon; then
11
+            install_savanna_dashboard
12
+        fi
13
+    elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
14
+        echo_summary "Configuring Savanna"
15
+        configure_savanna
16
+        if is_service_enabled horizon; then
17
+            configure_savanna_dashboard
18
+        fi
19
+    elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
20
+        echo_summary "Initializing Savanna"
21
+        start_savanna
22
+    fi
23
+
24
+    if [[ "$1" == "unstack" ]]; then
25
+        stop_savanna
26
+        if is_service_enabled horizon; then
27
+            cleanup_savanna_dashboard
28
+        fi
29
+    fi
30
+fi
0 31
new file mode 100644
... ...
@@ -0,0 +1,97 @@
0
+# lib/savanna
1
+
2
+# Dependencies:
3
+# ``functions`` file
4
+# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
5
+# ``ADMIN_{TENANT_NAME|PASSWORD}`` must be defined
6
+
7
+# ``stack.sh`` calls the entry points in this order:
8
+#
9
+# install_savanna
10
+# configure_savanna
11
+# start_savanna
12
+# stop_savanna
13
+
14
+# Save trace setting
15
+XTRACE=$(set +o | grep xtrace)
16
+set +o xtrace
17
+
18
+
19
+# Defaults
20
+# --------
21
+
22
+# Set up default repos
23
+SAVANNA_REPO=${SAVANNA_REPO:-${GIT_BASE}/openstack/savanna.git}
24
+SAVANNA_BRANCH=${SAVANNA_BRANCH:-master}
25
+
26
+# Set up default directories
27
+SAVANNA_DIR=$DEST/savanna
28
+SAVANNA_CONF_DIR=${SAVANNA_CONF_DIR:-/etc/savanna}
29
+SAVANNA_CONF_FILE=savanna.conf
30
+ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-admin}
31
+ADMIN_NAME=${ADMIN_NAME:-admin}
32
+ADMIN_PASSWORD=${ADMIN_PASSWORD:-nova}
33
+SAVANNA_DEBUG=${SAVANNA_DEBUG:-True}
34
+
35
+# Support entry points installation of console scripts
36
+if [[ -d $SAVANNA_DIR/bin ]]; then
37
+    SAVANNA_BIN_DIR=$SAVANNA_DIR/bin
38
+else
39
+    SAVANNA_BIN_DIR=$(get_python_exec_prefix)
40
+fi
41
+
42
+# Functions
43
+# ---------
44
+
45
+# configure_savanna() - Set config files, create data dirs, etc
46
+function configure_savanna() {
47
+
48
+    if [[ ! -d $SAVANNA_CONF_DIR ]]; then
49
+        sudo mkdir -p $SAVANNA_CONF_DIR
50
+    fi
51
+    sudo chown $STACK_USER $SAVANNA_CONF_DIR
52
+
53
+    # Copy over savanna configuration file and configure common parameters.
54
+    cp $SAVANNA_DIR/etc/savanna/savanna.conf.sample $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE
55
+
56
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_password $ADMIN_PASSWORD
57
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_username $ADMIN_NAME
58
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_tenant_name $ADMIN_TENANT_NAME
59
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT debug $SAVANNA_DEBUG
60
+
61
+    recreate_database savanna utf8
62
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database sql_connection `database_connection_url savanna`
63
+    inicomment $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database connection
64
+
65
+    if is_service_enabled neutron; then
66
+        iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_neutron true
67
+        iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_floating_ips true
68
+    fi
69
+
70
+    iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_syslog $SYSLOG
71
+}
72
+
73
+# install_savanna() - Collect source and prepare
74
+function install_savanna() {
75
+    git_clone $SAVANNA_REPO $SAVANNA_DIR $SAVANNA_BRANCH
76
+    setup_develop $SAVANNA_DIR
77
+}
78
+
79
+# start_savanna() - Start running processes, including screen
80
+function start_savanna() {
81
+    screen_it savanna "cd $SAVANNA_DIR && $SAVANNA_BIN_DIR/savanna-api --config-file $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE"
82
+}
83
+
84
+# stop_savanna() - Stop running processes
85
+function stop_savanna() {
86
+    # Kill the Savanna screen windows
87
+    screen -S $SCREEN_NAME -p savanna -X kill
88
+}
89
+
90
+
91
+# Restore xtrace
92
+$XTRACE
93
+
94
+# Local variables:
95
+# mode: shell-script
96
+# End:
0 97
new file mode 100644
... ...
@@ -0,0 +1,70 @@
0
+# lib/savanna-dashboard
1
+
2
+# Dependencies:
3
+# ``functions`` file
4
+# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
5
+# ``SERVICE_HOST
6
+
7
+# ``stack.sh`` calls the entry points in this order:
8
+#
9
+# install_savanna_dashboard
10
+# configure_savanna_dashboard
11
+# cleanup_savanna_dashboard
12
+
13
+# Save trace setting
14
+XTRACE=$(set +o | grep xtrace)
15
+set +o xtrace
16
+
17
+source $TOP_DIR/lib/horizon
18
+
19
+# Defaults
20
+# --------
21
+
22
+# Set up default repos
23
+SAVANNA_DASHBOARD_REPO=${SAVANNA_DASHBOARD_REPO:-${GIT_BASE}/openstack/savanna-dashboard.git}
24
+SAVANNA_DASHBOARD_BRANCH=${SAVANNA_DASHBOARD_BRANCH:-master}
25
+
26
+SAVANNA_PYTHONCLIENT_REPO=${SAVANNA_PYTHONCLIENT_REPO:-${GIT_BASE}/openstack/python-savannaclient.git}
27
+SAVANNA_PYTHONCLIENT_BRANCH=${SAVANNA_PYTHONCLIENT_BRANCH:-master}
28
+
29
+# Set up default directories
30
+SAVANNA_DASHBOARD_DIR=$DEST/savanna_dashboard
31
+SAVANNA_PYTHONCLIENT_DIR=$DEST/python-savannaclient
32
+
33
+# Functions
34
+# ---------
35
+
36
+function configure_savanna_dashboard() {
37
+
38
+    echo -e "SAVANNA_URL = \"http://$SERVICE_HOST:8386/v1.1\"\nAUTO_ASSIGNMENT_ENABLED = False" >> $HORIZON_DIR/openstack_dashboard/local/local_settings.py
39
+    echo -e "HORIZON_CONFIG['dashboards'] += ('savanna',)\nINSTALLED_APPS += ('savannadashboard',)" >> $HORIZON_DIR/openstack_dashboard/settings.py
40
+
41
+    if is_service_enabled neutron; then
42
+        echo -e "SAVANNA_USE_NEUTRON = True" >> $HORIZON_DIR/openstack_dashboard/local/local_settings.py
43
+    fi
44
+}
45
+
46
+# install_savanna_dashboard() - Collect source and prepare
47
+function install_savanna_dashboard() {
48
+    install_python_savannaclient
49
+    git_clone $SAVANNA_DASHBOARD_REPO $SAVANNA_DASHBOARD_DIR $SAVANNA_DASHBOARD_BRANCH
50
+    setup_develop $SAVANNA_DASHBOARD_DIR
51
+}
52
+
53
+function install_python_savannaclient() {
54
+    git_clone $SAVANNA_PYTHONCLIENT_REPO $SAVANNA_PYTHONCLIENT_DIR $SAVANNA_PYTHONCLIENT_BRANCH
55
+    setup_develop $SAVANNA_PYTHONCLIENT_DIR
56
+}
57
+
58
+# Cleanup file settings.py from Savanna
59
+function cleanup_savanna_dashboard() {
60
+    sed -i '/savanna/d' $HORIZON_DIR/openstack_dashboard/settings.py
61
+}
62
+
63
+# Restore xtrace
64
+$XTRACE
65
+
66
+# Local variables:
67
+# mode: shell-script
68
+# End:
69
+