|  | # 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 |