blob: 1ff0cf9c26eb768f0693a4d13a61cebfaf357b05 [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
112 iniset $SAHARA_CONF_FILE DEFAULT os_auth_host $KEYSTONE_SERVICE_HOST
113 iniset $SAHARA_CONF_FILE DEFAULT os_auth_port $KEYSTONE_SERVICE_PORT
114 iniset $SAHARA_CONF_FILE DEFAULT os_auth_protocol $KEYSTONE_SERVICE_PROTOCOL
115 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/
121 iniset $SAHARA_CONF_FILE keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
122 iniset $SAHARA_CONF_FILE keystone_authtoken admin_user sahara
123 iniset $SAHARA_CONF_FILE keystone_authtoken admin_password $SERVICE_PASSWORD
124 iniset $SAHARA_CONF_FILE keystone_authtoken signing_dir $SAHARA_AUTH_CACHE_DIR
125 iniset $SAHARA_CONF_FILE keystone_authtoken cafile $KEYSTONE_SSL_CA
126
Sergey Lukjanov3cd59e12014-03-25 00:06:31 +0400127 iniset $SAHARA_CONF_FILE DEFAULT verbose True
128 iniset $SAHARA_CONF_FILE DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400129
130 iniset $SAHARA_CONF_FILE database connection `database_connection_url sahara`
131
132 if is_service_enabled neutron; then
133 iniset $SAHARA_CONF_FILE DEFAULT use_neutron true
134 iniset $SAHARA_CONF_FILE DEFAULT use_floating_ips true
135 fi
136
137 if is_service_enabled heat; then
138 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine heat
139 else
140 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine direct
141 fi
142
143 iniset $SAHARA_CONF_FILE DEFAULT use_syslog $SYSLOG
144
145 recreate_database sahara utf8
146 $SAHARA_BIN_DIR/sahara-db-manage --config-file $SAHARA_CONF_FILE upgrade head
147}
148
149# install_sahara() - Collect source and prepare
150function install_sahara {
151 git_clone $SAHARA_REPO $SAHARA_DIR $SAHARA_BRANCH
152 setup_develop $SAHARA_DIR
153}
154
155# start_sahara() - Start running processes, including screen
156function start_sahara {
157 screen_it sahara "cd $SAHARA_DIR && $SAHARA_BIN_DIR/sahara-api --config-file $SAHARA_CONF_FILE"
158}
159
160# stop_sahara() - Stop running processes
161function stop_sahara {
162 # Kill the Sahara screen windows
163 screen -S $SCREEN_NAME -p sahara -X kill
164}
165
166
167# Restore xtrace
168$XTRACE
169
170# Local variables:
171# mode: shell-script
172# End: