|  | # Neutron loadbalancer plugin | 
|  | # --------------------------- | 
|  |  | 
|  | # Save trace setting | 
|  | LB_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 || is_suse; then | 
|  | install_package haproxy | 
|  | fi | 
|  | } | 
|  |  | 
|  | function neutron_agent_lbaas_configure_common { | 
|  | _neutron_service_plugin_class_add $LBAAS_PLUGIN | 
|  | } | 
|  |  | 
|  | 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" | 
|  | iniset $LBAAS_AGENT_CONF_FILENAME haproxy user_group "nobody" | 
|  | fi | 
|  | } | 
|  |  | 
|  | function neutron_lbaas_stop { | 
|  | pids=$(ps aux | awk '/haproxy/ { print $2 }') | 
|  | [ ! -z "$pids" ] && sudo kill $pids | 
|  | } | 
|  |  | 
|  | # Restore xtrace | 
|  | $LB_XTRACE |