blob: bb4dfe693d7e7b300154d9e1f261b4ef509d248f [file] [log] [blame]
Denis Egorenkoa45a0a02013-10-01 16:03:39 +00001# lib/savanna
2
3# Dependencies:
4# ``functions`` file
5# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
Denis Egorenkoa45a0a02013-10-01 16:03:39 +00006
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
15XTRACE=$(set +o | grep xtrace)
16set +o xtrace
17
18
19# Defaults
20# --------
21
22# Set up default repos
23SAVANNA_REPO=${SAVANNA_REPO:-${GIT_BASE}/openstack/savanna.git}
24SAVANNA_BRANCH=${SAVANNA_BRANCH:-master}
25
26# Set up default directories
27SAVANNA_DIR=$DEST/savanna
28SAVANNA_CONF_DIR=${SAVANNA_CONF_DIR:-/etc/savanna}
29SAVANNA_CONF_FILE=savanna.conf
Denis Egorenkoa45a0a02013-10-01 16:03:39 +000030SAVANNA_DEBUG=${SAVANNA_DEBUG:-True}
31
Sergey Lukjanov0c08e7b2013-12-04 18:03:25 +040032SAVANNA_SERVICE_HOST=${SAVANNA_SERVICE_HOST:-$SERVICE_HOST}
33SAVANNA_SERVICE_PORT=${SAVANNA_SERVICE_PORT:-8386}
34SAVANNA_SERVICE_PROTOCOL=${SAVANNA_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
35
Denis Egorenkoa45a0a02013-10-01 16:03:39 +000036# Support entry points installation of console scripts
37if [[ -d $SAVANNA_DIR/bin ]]; then
38 SAVANNA_BIN_DIR=$SAVANNA_DIR/bin
39else
40 SAVANNA_BIN_DIR=$(get_python_exec_prefix)
41fi
42
43# Functions
44# ---------
45
Sergey Lukjanov0c08e7b2013-12-04 18:03:25 +040046# create_savanna_accounts() - Set up common required savanna accounts
47#
48# Tenant User Roles
49# ------------------------------
50# service savanna admin
51function create_savanna_accounts() {
52
53 SERVICE_TENANT=$(keystone tenant-list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
54 ADMIN_ROLE=$(keystone role-list | awk "/ admin / { print \$2 }")
55
56 SAVANNA_USER=$(keystone user-create \
57 --name=savanna \
58 --pass="$SERVICE_PASSWORD" \
Dirk Mueller25049cd2014-01-09 13:53:52 +010059 --tenant-id $SERVICE_TENANT \
Sergey Lukjanov0c08e7b2013-12-04 18:03:25 +040060 --email=savanna@example.com \
61 | grep " id " | get_field 2)
62 keystone user-role-add \
63 --tenant-id $SERVICE_TENANT \
64 --user-id $SAVANNA_USER \
65 --role-id $ADMIN_ROLE
66
67 if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
68 SAVANNA_SERVICE=$(keystone service-create \
69 --name=savanna \
70 --type=data_processing \
71 --description="Savanna Data Processing" \
72 | grep " id " | get_field 2)
73 keystone endpoint-create \
74 --region RegionOne \
75 --service_id $SAVANNA_SERVICE \
76 --publicurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
77 --adminurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
78 --internalurl "$SAVANNA_SERVICE_PROTOCOL://$SAVANNA_SERVICE_HOST:$SAVANNA_SERVICE_PORT/v1.1/\$(tenant_id)s"
79 fi
80}
81
Denis Egorenkoa45a0a02013-10-01 16:03:39 +000082# configure_savanna() - Set config files, create data dirs, etc
83function configure_savanna() {
84
85 if [[ ! -d $SAVANNA_CONF_DIR ]]; then
86 sudo mkdir -p $SAVANNA_CONF_DIR
87 fi
88 sudo chown $STACK_USER $SAVANNA_CONF_DIR
89
90 # Copy over savanna configuration file and configure common parameters.
91 cp $SAVANNA_DIR/etc/savanna/savanna.conf.sample $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE
92
Sergey Lukjanov0c08e7b2013-12-04 18:03:25 +040093 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_password $SERVICE_PASSWORD
94 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_username savanna
95 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT os_admin_tenant_name $SERVICE_TENANT_NAME
Denis Egorenkoa45a0a02013-10-01 16:03:39 +000096 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT debug $SAVANNA_DEBUG
97
98 recreate_database savanna utf8
99 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database sql_connection `database_connection_url savanna`
100 inicomment $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE database connection
101
102 if is_service_enabled neutron; then
103 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_neutron true
104 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_floating_ips true
105 fi
106
107 iniset $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE DEFAULT use_syslog $SYSLOG
108}
109
110# install_savanna() - Collect source and prepare
111function install_savanna() {
112 git_clone $SAVANNA_REPO $SAVANNA_DIR $SAVANNA_BRANCH
113 setup_develop $SAVANNA_DIR
114}
115
116# start_savanna() - Start running processes, including screen
117function start_savanna() {
118 screen_it savanna "cd $SAVANNA_DIR && $SAVANNA_BIN_DIR/savanna-api --config-file $SAVANNA_CONF_DIR/$SAVANNA_CONF_FILE"
119}
120
121# stop_savanna() - Stop running processes
122function stop_savanna() {
123 # Kill the Savanna screen windows
124 screen -S $SCREEN_NAME -p savanna -X kill
125}
126
127
128# Restore xtrace
129$XTRACE
130
131# Local variables:
132# mode: shell-script
133# End: