e263c82e |
#!/bin/bash
# |
7ff8443e |
# lib/sahara
# Dependencies:
# ``functions`` file
# ``DEST``, ``DATA_DIR``, ``STACK_USER`` must be defined
# ``stack.sh`` calls the entry points in this order:
#
# install_sahara |
a90898d9 |
# install_python_saharaclient |
7ff8443e |
# configure_sahara |
b3130482 |
# sahara_register_images |
7ff8443e |
# start_sahara
# stop_sahara
# cleanup_sahara
# Save trace setting
XTRACE=$(set +o | grep xtrace)
set +o xtrace
# Defaults
# --------
# Set up default repos |
a90898d9 |
|
7ff8443e |
# Set up default directories |
ee5ae7b9 |
GITDIR["python-saharaclient"]=$DEST/python-saharaclient |
7ff8443e |
SAHARA_DIR=$DEST/sahara |
a90898d9 |
|
7ff8443e |
SAHARA_CONF_DIR=${SAHARA_CONF_DIR:-/etc/sahara}
SAHARA_CONF_FILE=${SAHARA_CONF_DIR}/sahara.conf
SAHARA_SERVICE_HOST=${SAHARA_SERVICE_HOST:-$SERVICE_HOST}
SAHARA_SERVICE_PORT=${SAHARA_SERVICE_PORT:-8386}
SAHARA_SERVICE_PROTOCOL=${SAHARA_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
SAHARA_AUTH_CACHE_DIR=${SAHARA_AUTH_CACHE_DIR:-/var/cache/sahara}
|
10f41613 |
SAHARA_ENABLED_PLUGINS=${SAHARA_ENABLED_PLUGINS:-vanilla,hdp,fake}
|
7ff8443e |
# Support entry points installation of console scripts
if [[ -d $SAHARA_DIR/bin ]]; then
SAHARA_BIN_DIR=$SAHARA_DIR/bin
else
SAHARA_BIN_DIR=$(get_python_exec_prefix)
fi
# Tell Tempest this project is present
TEMPEST_SERVICES+=,sahara
# Functions
# ---------
# create_sahara_accounts() - Set up common required sahara accounts
#
# Tenant User Roles
# ------------------------------
# service sahara admin
function create_sahara_accounts {
|
16ef9760 |
local service_tenant=$(openstack project list | awk "/ $SERVICE_TENANT_NAME / { print \$2 }")
local admin_role=$(openstack role list | awk "/ admin / { print \$2 }") |
7ff8443e |
|
16ef9760 |
local sahara_user=$(get_or_create_user "sahara" \
"$SERVICE_PASSWORD" $service_tenant)
get_or_add_user_role $admin_role $sahara_user $service_tenant |
7ff8443e |
if [[ "$KEYSTONE_CATALOG_BACKEND" = 'sql' ]]; then |
0abde393 |
|
16ef9760 |
local sahara_service=$(get_or_create_service "sahara" \ |
0abde393 |
"data_processing" "Sahara Data Processing") |
16ef9760 |
get_or_create_endpoint $sahara_service \ |
0abde393 |
"$REGION_NAME" \
"$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
"$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" \
"$SAHARA_SERVICE_PROTOCOL://$SAHARA_SERVICE_HOST:$SAHARA_SERVICE_PORT/v1.1/\$(tenant_id)s" |
7ff8443e |
fi
}
# cleanup_sahara() - Remove residual data files, anything left over from
# previous runs that would need to clean up.
function cleanup_sahara {
# Cleanup auth cache dir
sudo rm -rf $SAHARA_AUTH_CACHE_DIR
}
# configure_sahara() - Set config files, create data dirs, etc
function configure_sahara {
if [[ ! -d $SAHARA_CONF_DIR ]]; then
sudo mkdir -p $SAHARA_CONF_DIR
fi
sudo chown $STACK_USER $SAHARA_CONF_DIR
|
627ca74b |
if [[ -f $SAHARA_DIR/etc/sahara/policy.json ]]; then
cp -p $SAHARA_DIR/etc/sahara/policy.json $SAHARA_CONF_DIR
fi
|
7ff8443e |
# Copy over sahara configuration file and configure common parameters. |
51ebda6c |
cp $SAHARA_DIR/etc/sahara/sahara.conf.sample $SAHARA_CONF_FILE |
7ff8443e |
# Create auth cache dir
sudo mkdir -p $SAHARA_AUTH_CACHE_DIR
sudo chown $STACK_USER $SAHARA_AUTH_CACHE_DIR |
28d4392d |
sudo chmod 700 $SAHARA_AUTH_CACHE_DIR |
7ff8443e |
rm -rf $SAHARA_AUTH_CACHE_DIR/*
|
0595237e |
configure_auth_token_middleware $SAHARA_CONF_FILE sahara $SAHARA_AUTH_CACHE_DIR |
7ff8443e |
|
e50fcb12 |
# Set configuration to send notifications
if is_service_enabled ceilometer; then
iniset $SAHARA_CONF_FILE DEFAULT enable_notifications "true"
iniset $SAHARA_CONF_FILE DEFAULT notification_driver "messaging"
iniset_rpc_backend sahara $SAHARA_CONF_FILE DEFAULT
fi
|
3cd59e12 |
iniset $SAHARA_CONF_FILE DEFAULT verbose True
iniset $SAHARA_CONF_FILE DEFAULT debug $ENABLE_DEBUG_LOG_LEVEL |
7ff8443e |
|
10f41613 |
iniset $SAHARA_CONF_FILE DEFAULT plugins $SAHARA_ENABLED_PLUGINS
|
7ff8443e |
iniset $SAHARA_CONF_FILE database connection `database_connection_url sahara`
if is_service_enabled neutron; then
iniset $SAHARA_CONF_FILE DEFAULT use_neutron true
iniset $SAHARA_CONF_FILE DEFAULT use_floating_ips true |
0943e076 |
else
iniset $SAHARA_CONF_FILE DEFAULT use_neutron false
iniset $SAHARA_CONF_FILE DEFAULT use_floating_ips false |
7ff8443e |
fi
if is_service_enabled heat; then
iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine heat
else
iniset $SAHARA_CONF_FILE DEFAULT infrastructure_engine direct
fi
iniset $SAHARA_CONF_FILE DEFAULT use_syslog $SYSLOG
|
b4bef1fd |
# Format logging
if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
setup_colorized_logging $SAHARA_CONF_FILE DEFAULT
fi
|
157c84b8 |
recreate_database sahara |
7ff8443e |
$SAHARA_BIN_DIR/sahara-db-manage --config-file $SAHARA_CONF_FILE upgrade head
}
# install_sahara() - Collect source and prepare
function install_sahara {
git_clone $SAHARA_REPO $SAHARA_DIR $SAHARA_BRANCH
setup_develop $SAHARA_DIR
}
|
a90898d9 |
# install_python_saharaclient() - Collect source and prepare
function install_python_saharaclient { |
ee5ae7b9 |
if use_library_from_git "python-saharaclient"; then
git_clone_by_name "python-saharaclient"
setup_dev_lib "python-saharaclient"
fi |
a90898d9 |
}
|
b3130482 |
# sahara_register_images() - Registers images in sahara image registry
function sahara_register_images {
if is_service_enabled heat && [[ ! -z "$HEAT_CFN_IMAGE_URL" ]]; then
# Register heat image for Fake plugin
local fake_plugin_properties="--property _sahara_tag_0.1=True"
fake_plugin_properties+=" --property _sahara_tag_fake=True"
fake_plugin_properties+=" --property _sahara_username=fedora"
openstack --os-url $GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT image set $(basename "$HEAT_CFN_IMAGE_URL" ".qcow2") $fake_plugin_properties
fi
}
|
7ff8443e |
# start_sahara() - Start running processes, including screen
function start_sahara { |
2f27a0ed |
run_process sahara "$SAHARA_BIN_DIR/sahara-all --config-file $SAHARA_CONF_FILE" |
7ff8443e |
}
# stop_sahara() - Stop running processes
function stop_sahara {
# Kill the Sahara screen windows
screen -S $SCREEN_NAME -p sahara -X kill
}
# Restore xtrace
$XTRACE
# Local variables:
# mode: shell-script
# End: |