From 50187eec280422fe091297901bb5e9396728d10a Mon Sep 17 00:00:00 2001 From: mathieu-rohon Date: Fri, 21 Nov 2014 22:12:40 +0100 Subject: [PATCH] Restore linuxbridge-agent compatibility This patch partially reverts commit 15130cd5fd1688b8984d78136b97bb8de7c32b64. This commit was desupporting ovs and linuxbridge plugins. But the ML2 plugin can be deployed with the linuxbridge agent. The current patch restores the linuxbridge agent configuration file. Closes-Bug: #1393429 Change-Id: If824185b22e22a1de6498f1f0f2742a279235675 --- lib/neutron_plugins/linuxbridge_agent | 77 +++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/neutron_plugins/linuxbridge_agent diff --git a/lib/neutron_plugins/linuxbridge_agent b/lib/neutron_plugins/linuxbridge_agent new file mode 100644 index 0000000000..2638dd3725 --- /dev/null +++ b/lib/neutron_plugins/linuxbridge_agent @@ -0,0 +1,77 @@ +# Neutron Linux Bridge L2 agent +# ----------------------------- + +# Save trace setting +PLUGIN_XTRACE=$(set +o | grep xtrace) +set +o xtrace + +function is_neutron_ovs_base_plugin { + # linuxbridge doesn't use OVS + return 1 +} + +function neutron_plugin_create_nova_conf { + : +} + +function neutron_plugin_install_agent_packages { + install_package bridge-utils +} + +function neutron_plugin_configure_debug_command { + iniset $NEUTRON_TEST_CONFIG_FILE DEFAULT external_network_bridge +} + +function neutron_plugin_configure_dhcp_agent { + iniset $Q_DHCP_CONF_FILE DEFAULT dhcp_agent_manager neutron.agent.dhcp_agent.DhcpAgentWithStateReport +} + +function neutron_plugin_configure_l3_agent { + iniset $Q_L3_CONF_FILE DEFAULT external_network_bridge + iniset $Q_L3_CONF_FILE DEFAULT l3_agent_manager neutron.agent.l3_agent.L3NATAgentWithStateReport +} + +function neutron_plugin_configure_plugin_agent { + # Setup physical network interface mappings. Override + # ``LB_VLAN_RANGES`` and ``LB_INTERFACE_MAPPINGS`` in ``localrc`` for more + # complex physical network configurations. + if [[ "$LB_INTERFACE_MAPPINGS" == "" ]] && [[ "$PHYSICAL_NETWORK" != "" ]] && [[ "$LB_PHYSICAL_INTERFACE" != "" ]]; then + LB_INTERFACE_MAPPINGS=$PHYSICAL_NETWORK:$LB_PHYSICAL_INTERFACE + fi + if [[ "$LB_INTERFACE_MAPPINGS" != "" ]]; then + iniset /$Q_PLUGIN_CONF_FILE linux_bridge physical_interface_mappings $LB_INTERFACE_MAPPINGS + fi + if [[ "$Q_USE_SECGROUP" == "True" ]]; then + iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver + else + iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver + fi + AGENT_BINARY="$NEUTRON_BIN_DIR/neutron-linuxbridge-agent" + iniset /$Q_PLUGIN_CONF_FILE agent tunnel_types $Q_TUNNEL_TYPES + # Define extra "AGENT" configuration options when q-agt is configured by defining + # the array ``Q_AGENT_EXTRA_AGENT_OPTS``. + # For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)`` + for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do + # Replace the first '=' with ' ' for iniset syntax + iniset /$Q_PLUGIN_CONF_FILE agent ${I/=/ } + done + # Define extra "LINUX_BRIDGE" configuration options when q-agt is configured by defining + # the array ``Q_AGENT_EXTRA_SRV_OPTS``. + # For Example: ``Q_AGENT_EXTRA_SRV_OPTS=(foo=true bar=2)`` + for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do + # Replace the first '=' with ' ' for iniset syntax + iniset /$Q_PLUGIN_CONF_FILE linux_bridge ${I/=/ } + done +} + +function neutron_plugin_setup_interface_driver { + local conf_file=$1 + iniset $conf_file DEFAULT interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver +} + +function neutron_plugin_check_adv_test_requirements { + is_service_enabled q-agt && is_service_enabled q-dhcp && return 0 +} + +# Restore xtrace +$PLUGIN_XTRACE