blob: 64e82eb10db7c0535fa90fb41b445c3d6c37f673 [file] [log] [blame]
Sergey Lukjanov7ff84432014-03-10 20:04:51 +04001# lib/sahara
2
3# Dependencies:
4# ``functions`` file
5# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
6
7# ``stack.sh`` calls the entry points in this order:
8#
9# install_sahara
10# configure_sahara
11# start_sahara
12# stop_sahara
13# cleanup_sahara
14
15# Save trace setting
16XTRACE=$(set +o | grep xtrace)
17set +o xtrace
18
19
20# Defaults
21# --------
22
23# Set up default repos
24SAHARA_REPO=${SAHARA_REPO:-${GIT_BASE}/openstack/sahara.git}
25SAHARA_BRANCH=${SAHARA_BRANCH:-master}
26
27# Set up default directories
28SAHARA_DIR=$DEST/sahara
29SAHARA_CONF_DIR=${SAHARA_CONF_DIR:-/etc/sahara}
30SAHARA_CONF_FILE=${SAHARA_CONF_DIR}/sahara.conf
Sergey Lukjanov7ff84432014-03-10 20:04:51 +040031
32SAHARA_SERVICE_HOST=${SAHARA_SERVICE_HOST:-$SERVICE_HOST}
33SAHARA_SERVICE_PORT=${SAHARA_SERVICE_PORT:-8386}
34SAHARA_SERVICE_PROTOCOL=${SAHARA_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
35
36SAHARA_AUTH_CACHE_DIR=${SAHARA_AUTH_CACHE_DIR:-/var/cache/sahara}
37
38# Support entry points installation of console scripts
39if [[ -d $SAHARA_DIR/bin ]]; then
40 SAHARA_BIN_DIR=$SAHARA_DIR/bin
41else
42 SAHARA_BIN_DIR=$(get_python_exec_prefix)
43fi
44
45# Tell Tempest this project is present
46TEMPEST_SERVICES+=,sahara
47
Sergey Lukjanov7ff84432014-03-10 20:04:51 +040048# Functions
49# ---------
50
51# create_sahara_accounts() - Set up common required sahara accounts
52#
53# Tenant User Roles
54# ------------------------------
55# service sahara admin
56function create_sahara_accounts {
57
58 SERVICE_TENANT=$(openstack project list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
59 ADMIN_ROLE=$(openstack role list | awk "/ admin / { print \$2 }")
60
61 SAHARA_USER=$(openstack user create \
62 sahara \
63 --password "$SERVICE_PASSWORD" \
64 --project $SERVICE_TENANT \
65 --email sahara@example.com \
66 | grep " id " | get_field 2)
67 openstack role add \
68 $ADMIN_ROLE \
69 --project $SERVICE_TENANT \
70 --user $SAHARA_USER
71
72 if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
73 SAHARA_SERVICE=$(openstack service create \
74 sahara \
75 --type=data_processing \
76 --description="Sahara Data Processing" \
77 | grep " id " | get_field 2)
78 openstack endpoint create \
79 $SAHARA_SERVICE \
80 --region RegionOne \
81 --publicurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
82 --adminurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
83 --internalurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s"
84 fi
85}
86
87# cleanup_sahara() - Remove residual data files, anything left over from
88# previous runs that would need to clean up.
89function cleanup_sahara {
90
91 # Cleanup auth cache dir
92 sudo rm -rf $SAHARA_AUTH_CACHE_DIR
93}
94
95# configure_sahara() - Set config files, create data dirs, etc
96function configure_sahara {
97
98 if [[ ! -d $SAHARA_CONF_DIR ]]; then
99 sudo mkdir -p $SAHARA_CONF_DIR
100 fi
101 sudo chown $STACK_USER $SAHARA_CONF_DIR
102
103 # Copy over sahara configuration file and configure common parameters.
Sergey Lukjanov51ebda62014-03-12 22:26:12 +0400104 cp $SAHARA_DIR/etc/sahara/sahara.conf.sample $SAHARA_CONF_FILE
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400105
106 # Create auth cache dir
107 sudo mkdir -p $SAHARA_AUTH_CACHE_DIR
108 sudo chown $STACK_USER $SAHARA_AUTH_CACHE_DIR
109 rm -rf $SAHARA_AUTH_CACHE_DIR/*
110
111 # Set obsolete keystone auth configs for backward compatibility
Sergey Lukjanov65dabd32014-04-22 18:37:45 +0400112 iniset $SAHARA_CONF_FILE DEFAULT os_auth_host $KEYSTONE_AUTH_HOST
113 iniset $SAHARA_CONF_FILE DEFAULT os_auth_port $KEYSTONE_AUTH_PORT
114 iniset $SAHARA_CONF_FILE DEFAULT os_auth_protocol $KEYSTONE_AUTH_PROTOCOL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400115 iniset $SAHARA_CONF_FILE DEFAULT os_admin_password $SERVICE_PASSWORD
116 iniset $SAHARA_CONF_FILE DEFAULT os_admin_username sahara
117 iniset $SAHARA_CONF_FILE DEFAULT os_admin_tenant_name $SERVICE_TENANT_NAME
118
119 # Set actual keystone auth configs
120 iniset $SAHARA_CONF_FILE keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
Sergey Lukjanov65dabd32014-04-22 18:37:45 +0400121 iniset $SAHARA_CONF_FILE keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
122 iniset $SAHARA_CONF_FILE keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
123 iniset $SAHARA_CONF_FILE keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400124 iniset $SAHARA_CONF_FILE keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
125 iniset $SAHARA_CONF_FILE keystone_authtoken admin_user sahara
126 iniset $SAHARA_CONF_FILE keystone_authtoken admin_password $SERVICE_PASSWORD
127 iniset $SAHARA_CONF_FILE keystone_authtoken signing_dir $SAHARA_AUTH_CACHE_DIR
128 iniset $SAHARA_CONF_FILE keystone_authtoken cafile $KEYSTONE_SSL_CA
129
Sergey Lukjanov3cd59e12014-03-25 00:06:31 +0400130 iniset $SAHARA_CONF_FILE DEFAULT verbose True
131 iniset $SAHARA_CONF_FILE DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400132
133 iniset $SAHARA_CONF_FILE database connection `database_connection_url sahara`
134
135 if is_service_enabled neutron; then
136 iniset $SAHARA_CONF_FILE DEFAULT use_neutron true
137 iniset $SAHARA_CONF_FILE DEFAULT use_floating_ips true
138 fi
139
140 if is_service_enabled heat; then
141 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine heat
142 else
143 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine direct
144 fi
145
146 iniset $SAHARA_CONF_FILE DEFAULT use_syslog $SYSLOG
147
Luigi Toscanob4bef1f2014-04-03 19:24:57 +0200148 # Format logging
149 if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
150 setup_colorized_logging $SAHARA_CONF_FILE DEFAULT
151 fi
152
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400153 recreate_database sahara utf8
154 $SAHARA_BIN_DIR/sahara-db-manage --config-file $SAHARA_CONF_FILE upgrade head
155}
156
157# install_sahara() - Collect source and prepare
158function install_sahara {
159 git_clone $SAHARA_REPO $SAHARA_DIR $SAHARA_BRANCH
160 setup_develop $SAHARA_DIR
161}
162
163# start_sahara() - Start running processes, including screen
164function start_sahara {
165 screen_it sahara "cd $SAHARA_DIR && $SAHARA_BIN_DIR/sahara-api --config-file $SAHARA_CONF_FILE"
166}
167
168# stop_sahara() - Stop running processes
169function stop_sahara {
170 # Kill the Sahara screen windows
171 screen -S $SCREEN_NAME -p sahara -X kill
172}
173
174
175# Restore xtrace
176$XTRACE
177
178# Local variables:
179# mode: shell-script
180# End: