131 lines
3.8 KiB
Bash
131 lines
3.8 KiB
Bash
# Install and start **Aetos** service in devstack
|
|
#
|
|
# To enable Aetos in devstack add an entry to local.conf that
|
|
# looks like
|
|
#
|
|
# [[local|localrc]]
|
|
# enable_plugin aetos https://opendev.org/openstack/aetos
|
|
|
|
# Support potential entry-points console scripts in VENV or not
|
|
if [[ ${USE_VENV} = True ]]; then
|
|
PROJECT_VENV["aetos"]=${AETOS_DIR}.venv
|
|
AETOS_BIN_DIR=${PROJECT_VENV["aetos"]}/bin
|
|
else
|
|
AETOS_BIN_DIR=$(get_python_exec_prefix)
|
|
fi
|
|
|
|
# Test if any Aetos services are enabled
|
|
# is_aetos_enabled
|
|
function is_aetos_enabled {
|
|
[[ ,${ENABLED_SERVICES} =~ ,"aetos" ]] && return 0
|
|
return 1
|
|
}
|
|
|
|
function aetos_service_url {
|
|
echo "$AETOS_SERVICE_PROTOCOL://$AETOS_SERVICE_HOST/prometheus"
|
|
}
|
|
|
|
# Create aetos related accounts in Keystone
|
|
function _aetos_create_accounts {
|
|
if is_service_enabled aetos; then
|
|
|
|
create_service_user "aetos" "admin"
|
|
|
|
get_or_create_service "aetos" "prometheus" "OpenStack Aetos Service"
|
|
get_or_create_endpoint 'prometheus' "$REGION_NAME" "$(aetos_service_url)"
|
|
fi
|
|
}
|
|
|
|
# cleanup_aetos() - Remove residual data files, anything left over
|
|
# from previous runs that a clean run would need to clean up
|
|
function cleanup_aetos {
|
|
remove_uwsgi_config "$AETOS_UWSGI_CONF" "aetos"
|
|
}
|
|
|
|
# Configure Aetos
|
|
function configure_aetos {
|
|
iniset $AETOS_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
|
|
|
|
# Set up logging
|
|
iniset $AETOS_CONF DEFAULT use_syslog $SYSLOG
|
|
|
|
# Format logging
|
|
setup_logging $AETOS_CONF DEFAULT
|
|
|
|
iniset $AETOS_CONF service_credentials auth_type password
|
|
iniset $AETOS_CONF service_credentials username aetos
|
|
iniset $AETOS_CONF service_credentials user_domain_id default
|
|
iniset $AETOS_CONF service_credentials project_domain_id default
|
|
iniset $AETOS_CONF service_credentials password $SERVICE_PASSWORD
|
|
iniset $AETOS_CONF service_credentials project_name $SERVICE_PROJECT_NAME
|
|
iniset $AETOS_CONF service_credentials region_name $REGION_NAME
|
|
iniset $AETOS_CONF service_credentials auth_url $KEYSTONE_SERVICE_URI
|
|
|
|
configure_keystone_authtoken_middleware $AETOS_CONF aetos
|
|
|
|
# iniset creates these files when it's called if they don't exist.
|
|
write_uwsgi_config "$AETOS_UWSGI_CONF" "$AETOS_UWSGI" "/prometheus" "" "aetos"
|
|
}
|
|
|
|
# init_aetos() - Initialize etc.
|
|
function init_aetos {
|
|
# Get aetos keystone settings in place
|
|
_aetos_create_accounts
|
|
}
|
|
|
|
# Install Aetos.
|
|
function install_aetos {
|
|
setup_develop $AETOS_DIR $AETOS_BACKEND
|
|
sudo install -d -o $STACK_USER -m 755 $AETOS_CONF_DIR
|
|
|
|
pip_install uwsgi
|
|
}
|
|
|
|
# start_aetos() - Start running processes, including screen
|
|
function start_aetos {
|
|
run_process aetos "$AETOS_BIN_DIR/uwsgi --ini $AETOS_UWSGI_CONF"
|
|
}
|
|
|
|
# configure_tempest_for_aetos()
|
|
function configure_tempest_for_aetos {
|
|
if is_service_enabled tempest; then
|
|
iniset $TEMPEST_CONFIG service_available aetos True
|
|
fi
|
|
}
|
|
|
|
# stop_aetos() - Stop running processes
|
|
function stop_aetos {
|
|
stop_process aetos
|
|
}
|
|
|
|
# This is the main for plugin.sh
|
|
if is_service_enabled aetos; then
|
|
if [[ "$1" == "stack" && "$2" == "install" ]]; then
|
|
echo_summary "Installing Aetos"
|
|
# Use stack_install_service here to account for virtualenv
|
|
stack_install_service aetos
|
|
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
|
|
echo_summary "Configuring Aetos"
|
|
configure_aetos
|
|
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
|
|
echo_summary "Initializing Aetos"
|
|
# Tidy base for aetos
|
|
init_aetos
|
|
# Start the service
|
|
start_aetos
|
|
elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
|
|
echo_summary "Configuring Tempest for Aetos"
|
|
configure_tempest_for_aetos
|
|
fi
|
|
|
|
if [[ "$1" == "unstack" ]]; then
|
|
echo_summary "Shutting Down Aetos"
|
|
stop_aetos
|
|
fi
|
|
|
|
if [[ "$1" == "clean" ]]; then
|
|
echo_summary "Cleaning Aetos"
|
|
cleanup_aetos
|
|
fi
|
|
fi
|