neutron-lbaas/devstack/plugin.sh
ptoohill1 70fbd72541 Update admin auth data for devstack
Our gate need the proper admin auth data set up in the proper configs. In this case the neutron.conf
Update neutron.conf with the admin data so gates can pass.

Change-Id: Iac87674ca94bcabc3047c9a3679e1385cf1c8d63
2016-01-11 14:34:49 -06:00

156 lines
5.8 KiB
Bash

# function definitions for neutron-lbaas devstack plugin
function neutron_lbaas_install {
setup_develop $NEUTRON_LBAAS_DIR
neutron_agent_lbaas_install_agent_packages
}
function neutron_agent_lbaas_install_agent_packages {
if is_ubuntu; then
if [[ ${OFFLINE} == false ]]; then
BACKPORT="deb http://archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse"
BACKPORT_EXISTS=$(grep ^ /etc/apt/sources.list /etc/apt/sources.list.d/* | grep "${BACKPORT}")
if [[ -z "${BACKPORT_EXISTS}" ]]; then
sudo add-apt-repository "${BACKPORT}" -y
fi
sudo apt-get update
sudo apt-get install haproxy -t trusty-backports
fi
fi
if is_fedora || is_suse; then
install_package haproxy
fi
}
function neutron_lbaas_configure_common {
if is_service_enabled $LBAAS_V1 && is_service_enabled $LBAAS_V2; then
die $LINENO "Do not enable both Version 1 and Version 2 of LBaaS."
fi
# Uses oslo config generator to generate LBaaS sample configuration files
(cd $NEUTRON_LBAAS_DIR && exec ./tools/generate_config_file_samples.sh)
cp $NEUTRON_LBAAS_DIR/etc/neutron_lbaas.conf.sample $NEUTRON_LBAAS_CONF
if is_service_enabled $LBAAS_V1; then
inicomment $NEUTRON_LBAAS_CONF service_providers service_provider
iniadd $NEUTRON_LBAAS_CONF service_providers service_provider $NEUTRON_LBAAS_SERVICE_PROVIDERV1
elif is_service_enabled $LBAAS_V2; then
inicomment $NEUTRON_LBAAS_CONF service_providers service_provider
iniadd $NEUTRON_LBAAS_CONF service_providers service_provider $NEUTRON_LBAAS_SERVICE_PROVIDERV2
fi
if is_service_enabled $LBAAS_V1; then
_neutron_service_plugin_class_add $LBAASV1_PLUGIN
iniset $NEUTRON_CONF DEFAULT service_plugins $Q_SERVICE_PLUGIN_CLASSES
elif is_service_enabled $LBAAS_V2; then
_neutron_service_plugin_class_add $LBAASV2_PLUGIN
iniset $NEUTRON_CONF DEFAULT service_plugins $Q_SERVICE_PLUGIN_CLASSES
fi
# Ensure config is set up properly for authentication neutron-lbaas
iniset $NEUTRON_LBAAS_CONF service_auth auth_uri $AUTH_URI
iniset $NEUTRON_LBAAS_CONF service_auth admin_tenant_name $ADMIN_TENANT_NAME
iniset $NEUTRON_LBAAS_CONF service_auth admin_user $ADMIN_USER
iniset $NEUTRON_LBAAS_CONF service_auth admin_password $ADMIN_PASSWORD
iniset $NEUTRON_LBAAS_CONF service_auth auth_version $AUTH_VERSION
# Ensure config is set up properly for authentication neutron
iniset $NEUTRON_CONF service_auth auth_uri $AUTH_URI
iniset $NEUTRON_CONF service_auth admin_tenant_name $ADMIN_TENANT_NAME
iniset $NEUTRON_CONF service_auth admin_user $ADMIN_USER
iniset $NEUTRON_CONF service_auth admin_password $ADMIN_PASSWORD
iniset $NEUTRON_CONF service_auth auth_version $AUTH_VERSION
_neutron_deploy_rootwrap_filters $NEUTRON_LBAAS_DIR
$NEUTRON_BIN_DIR/neutron-db-manage --service lbaas --config-file $NEUTRON_CONF --config-file /$Q_PLUGIN_CONF_FILE upgrade head
}
function neutron_lbaas_configure_agent {
mkdir -p $LBAAS_AGENT_CONF_PATH
cp $NEUTRON_LBAAS_DIR/etc/lbaas_agent.ini.sample $LBAAS_AGENT_CONF_FILENAME
# ovs_use_veth needs to be set before the plugin configuration
# occurs to allow plugins to override the setting.
iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT ovs_use_veth $Q_OVS_USE_VETH
neutron_plugin_setup_interface_driver $LBAAS_AGENT_CONF_FILENAME
if is_fedora; then
iniset $LBAAS_AGENT_CONF_FILENAME DEFAULT user_group "nobody"
iniset $LBAAS_AGENT_CONF_FILENAME haproxy user_group "nobody"
fi
}
function neutron_lbaas_start {
local is_run_process=True
if is_service_enabled $LBAAS_V1; then
LBAAS_VERSION="q-lbaas"
AGENT_LBAAS_BINARY=${AGENT_LBAASV1_BINARY}
elif is_service_enabled $LBAAS_V2; then
LBAAS_VERSION="q-lbaasv2"
AGENT_LBAAS_BINARY=${AGENT_LBAASV2_BINARY}
# Octavia doesn't need the LBaaS V2 service running. If Octavia is the
# only provider then don't run the process.
if [[ "$NEUTRON_LBAAS_SERVICE_PROVIDERV2" == "$NEUTRON_LBAAS_SERVICE_PROVIDERV2_OCTAVIA" ]]; then
is_run_process=False
fi
fi
if [[ "$is_run_process" == "True" ]] ; then
run_process $LBAAS_VERSION "python $AGENT_LBAAS_BINARY --config-file $NEUTRON_CONF --config-file $NEUTRON_LBAAS_CONF --config-file=$LBAAS_AGENT_CONF_FILENAME"
fi
}
function neutron_lbaas_stop {
pids=$(ps aux | awk '/haproxy/ { print $2 }')
[ ! -z "$pids" ] && sudo kill $pids
}
function neutron_lbaas_cleanup {
# delete all namespaces created by neutron-lbaas
for ns in $(sudo ip netns list | grep -o -E '(qlbaas|nlbaas)-[0-9a-f-]*'); do
sudo ip netns delete ${ns}
done
}
# check for service enabled
if is_service_enabled $LBAAS_ANY; then
if ! is_service_enabled q-svc; then
die "The neutron q-svc service must be enabled to use $LBAAS_ANY"
fi
if [[ "$1" == "stack" && "$2" == "install" ]]; then
# Perform installation of service source
echo_summary "Installing neutron-lbaas"
neutron_lbaas_install
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
# Configure after the other layer 1 and 2 services have been configured
echo_summary "Configuring neutron-lbaas"
neutron_lbaas_configure_common
neutron_lbaas_configure_agent
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
# Initialize and start the LBaaS service
echo_summary "Initializing neutron-lbaas"
neutron_lbaas_start
fi
fi
if [[ "$1" == "unstack" ]]; then
# Shut down LBaaS services
neutron_lbaas_stop
fi
if [[ "$1" == "clean" ]]; then
# Remove state and transient data
# Remember clean.sh first calls unstack.sh
neutron_lbaas_cleanup
fi