Files
devstack/lib/neutron_plugins/services/loadbalancer
Akihiro Motoki edddb1fddf Stop Neutron advanced service external processes
Some of Neutron advanced services (LBaaS, VPNaaS, ....) creates
external processes and they should be stopped in unstack.
This commit defines neutron_<XaaS>_stop functions for all services
and implements the cleanup logics if necessary.

Also cleanup_neutron removes netns used by LBaaS haproxy.

Change-Id: Ied3a2c374ffcb6b59ecaf1027fb6e6083eded2ae
2013-12-16 17:23:40 +09:00

55 lines
1.6 KiB
Plaintext

# Neutron loadbalancer plugin
# ---------------------------
# Save trace setting
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
AGENT_LBAAS_BINARY="$NEUTRON_BIN_DIR/neutron-lbaas-agent"
LBAAS_PLUGIN=neutron.services.loadbalancer.plugin.LoadBalancerPlugin
function neutron_agent_lbaas_install_agent_packages() {
if is_ubuntu || is_fedora; then
install_package haproxy
elif is_suse; then
### FIXME: Find out if package can be pushed to Factory
echo "HAProxy packages can be installed from server:http project in OBS"
fi
}
function neutron_agent_lbaas_configure_common() {
if [[ $Q_SERVICE_PLUGIN_CLASSES == '' ]]; then
Q_SERVICE_PLUGIN_CLASSES=$LBAAS_PLUGIN
else
Q_SERVICE_PLUGIN_CLASSES="$Q_SERVICE_PLUGIN_CLASSES,$LBAAS_PLUGIN"
fi
}
function neutron_agent_lbaas_configure_agent() {
LBAAS_AGENT_CONF_PATH=/etc/neutron/services/loadbalancer/haproxy
mkdir -p $LBAAS_AGENT_CONF_PATH
LBAAS_AGENT_CONF_FILENAME="$LBAAS_AGENT_CONF_PATH/lbaas_agent.ini"
cp $NEUTRON_DIR/etc/lbaas_agent.ini $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"
fi
}
function neutron_lbaas_stop() {
pids=$(ps aux | awk '/haproxy/ { print $2 }')
[ ! -z "$pids" ] && sudo kill $pids
}
# Restore xtrace
$MY_XTRACE