blob: d56cf1b44446d16dabcbe7db25c047fb9eba223f [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
Sergey Lukjanov10f41612014-04-25 11:42:41 +040038SAHARA_ENABLED_PLUGINS=${SAHARA_ENABLED_PLUGINS:-vanilla,hdp,fake}
39
Sergey Lukjanov7ff84432014-03-10 20:04:51 +040040# Support entry points installation of console scripts
41if [[ -d $SAHARA_DIR/bin ]]; then
42 SAHARA_BIN_DIR=$SAHARA_DIR/bin
43else
44 SAHARA_BIN_DIR=$(get_python_exec_prefix)
45fi
46
47# Tell Tempest this project is present
48TEMPEST_SERVICES+=,sahara
49
Sergey Lukjanov7ff84432014-03-10 20:04:51 +040050# Functions
51# ---------
52
53# create_sahara_accounts() - Set up common required sahara accounts
54#
55# Tenant User Roles
56# ------------------------------
57# service sahara admin
58function create_sahara_accounts {
59
60 SERVICE_TENANT=$(openstack project list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
61 ADMIN_ROLE=$(openstack role list | awk "/ admin / { print \$2 }")
62
63 SAHARA_USER=$(openstack user create \
64 sahara \
65 --password "$SERVICE_PASSWORD" \
66 --project $SERVICE_TENANT \
67 --email sahara@example.com \
68 | grep " id " | get_field 2)
69 openstack role add \
70 $ADMIN_ROLE \
71 --project $SERVICE_TENANT \
72 --user $SAHARA_USER
73
74 if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then
75 SAHARA_SERVICE=$(openstack service create \
76 sahara \
77 --type=data_processing \
78 --description="Sahara Data Processing" \
79 | grep " id " | get_field 2)
80 openstack endpoint create \
81 $SAHARA_SERVICE \
82 --region RegionOne \
83 --publicurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
84 --adminurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
85 --internalurl "$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s"
86 fi
87}
88
89# cleanup_sahara() - Remove residual data files, anything left over from
90# previous runs that would need to clean up.
91function cleanup_sahara {
92
93 # Cleanup auth cache dir
94 sudo rm -rf $SAHARA_AUTH_CACHE_DIR
95}
96
97# configure_sahara() - Set config files, create data dirs, etc
98function configure_sahara {
99
100 if [[ ! -d $SAHARA_CONF_DIR ]]; then
101 sudo mkdir -p $SAHARA_CONF_DIR
102 fi
103 sudo chown $STACK_USER $SAHARA_CONF_DIR
104
105 # Copy over sahara configuration file and configure common parameters.
Sergey Lukjanov51ebda62014-03-12 22:26:12 +0400106 cp $SAHARA_DIR/etc/sahara/sahara.conf.sample $SAHARA_CONF_FILE
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400107
108 # Create auth cache dir
109 sudo mkdir -p $SAHARA_AUTH_CACHE_DIR
110 sudo chown $STACK_USER $SAHARA_AUTH_CACHE_DIR
111 rm -rf $SAHARA_AUTH_CACHE_DIR/*
112
113 # Set obsolete keystone auth configs for backward compatibility
Sergey Lukjanov65dabd32014-04-22 18:37:45 +0400114 iniset $SAHARA_CONF_FILE DEFAULT os_auth_host $KEYSTONE_AUTH_HOST
115 iniset $SAHARA_CONF_FILE DEFAULT os_auth_port $KEYSTONE_AUTH_PORT
116 iniset $SAHARA_CONF_FILE DEFAULT os_auth_protocol $KEYSTONE_AUTH_PROTOCOL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400117 iniset $SAHARA_CONF_FILE DEFAULT os_admin_password $SERVICE_PASSWORD
118 iniset $SAHARA_CONF_FILE DEFAULT os_admin_username sahara
119 iniset $SAHARA_CONF_FILE DEFAULT os_admin_tenant_name $SERVICE_TENANT_NAME
120
121 # Set actual keystone auth configs
122 iniset $SAHARA_CONF_FILE keystone_authtoken auth_uri $KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/
Sergey Lukjanov65dabd32014-04-22 18:37:45 +0400123 iniset $SAHARA_CONF_FILE keystone_authtoken auth_host $KEYSTONE_AUTH_HOST
124 iniset $SAHARA_CONF_FILE keystone_authtoken auth_port $KEYSTONE_AUTH_PORT
125 iniset $SAHARA_CONF_FILE keystone_authtoken auth_protocol $KEYSTONE_AUTH_PROTOCOL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400126 iniset $SAHARA_CONF_FILE keystone_authtoken admin_tenant_name $SERVICE_TENANT_NAME
127 iniset $SAHARA_CONF_FILE keystone_authtoken admin_user sahara
128 iniset $SAHARA_CONF_FILE keystone_authtoken admin_password $SERVICE_PASSWORD
129 iniset $SAHARA_CONF_FILE keystone_authtoken signing_dir $SAHARA_AUTH_CACHE_DIR
130 iniset $SAHARA_CONF_FILE keystone_authtoken cafile $KEYSTONE_SSL_CA
131
Sergey Lukjanov3cd59e12014-03-25 00:06:31 +0400132 iniset $SAHARA_CONF_FILE DEFAULT verbose True
133 iniset $SAHARA_CONF_FILE DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400134
Sergey Lukjanov10f41612014-04-25 11:42:41 +0400135 iniset $SAHARA_CONF_FILE DEFAULT plugins $SAHARA_ENABLED_PLUGINS
136
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400137 iniset $SAHARA_CONF_FILE database connection `database_connection_url sahara`
138
139 if is_service_enabled neutron; then
140 iniset $SAHARA_CONF_FILE DEFAULT use_neutron true
141 iniset $SAHARA_CONF_FILE DEFAULT use_floating_ips true
142 fi
143
144 if is_service_enabled heat; then
145 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine heat
146 else
147 iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine direct
148 fi
149
150 iniset $SAHARA_CONF_FILE DEFAULT use_syslog $SYSLOG
151
Luigi Toscanob4bef1f2014-04-03 19:24:57 +0200152 # Format logging
153 if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
154 setup_colorized_logging $SAHARA_CONF_FILE DEFAULT
155 fi
156
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400157 recreate_database sahara utf8
158 $SAHARA_BIN_DIR/sahara-db-manage --config-file $SAHARA_CONF_FILE upgrade head
159}
160
161# install_sahara() - Collect source and prepare
162function install_sahara {
163 git_clone $SAHARA_REPO $SAHARA_DIR $SAHARA_BRANCH
164 setup_develop $SAHARA_DIR
165}
166
167# start_sahara() - Start running processes, including screen
168function start_sahara {
Sergey Lukjanov850e0fb2014-05-03 00:53:01 +0400169 screen_it sahara "cd $SAHARA_DIR && $SAHARA_BIN_DIR/sahara-all --config-file $SAHARA_CONF_FILE"
Sergey Lukjanov7ff84432014-03-10 20:04:51 +0400170}
171
172# stop_sahara() - Stop running processes
173function stop_sahara {
174 # Kill the Sahara screen windows
175 screen -S $SCREEN_NAME -p sahara -X kill
176}
177
178
179# Restore xtrace
180$XTRACE
181
182# Local variables:
183# mode: shell-script
184# End: