Merge "Stop skipping compute owner in Linux Bridge loop"

This commit is contained in:
Jenkins 2017-03-07 18:52:52 +00:00 committed by Gerrit Code Review
commit a94223a685
2 changed files with 7 additions and 26 deletions
neutron
plugins/ml2/drivers/linuxbridge/agent
tests/unit/plugins/ml2/drivers/linuxbridge/agent

@ -474,25 +474,15 @@ class LinuxBridgeManager(amb.CommonAgentManagerBase):
physical_network, physical_network,
segmentation_id): segmentation_id):
return False return False
# Avoid messing with plugging devices into a bridge that the agent # Check if device needs to be added to bridge
# does not own if not bridge_lib.BridgeDevice.get_interface_bridge(
if not device_owner.startswith(constants.DEVICE_OWNER_COMPUTE_PREFIX): tap_device_name):
# Check if device needs to be added to bridge
if not bridge_lib.BridgeDevice.get_interface_bridge(
tap_device_name):
data = {'tap_device_name': tap_device_name,
'bridge_name': bridge_name}
LOG.debug("Adding device %(tap_device_name)s to bridge "
"%(bridge_name)s", data)
if bridge_lib.BridgeDevice(bridge_name).addif(tap_device_name):
return False
else:
data = {'tap_device_name': tap_device_name, data = {'tap_device_name': tap_device_name,
'device_owner': device_owner,
'bridge_name': bridge_name} 'bridge_name': bridge_name}
LOG.debug("Skip adding device %(tap_device_name)s to " LOG.debug("Adding device %(tap_device_name)s to bridge "
"%(bridge_name)s. It is owned by %(device_owner)s and " "%(bridge_name)s", data)
"thus added elsewhere.", data) if bridge_lib.BridgeDevice(bridge_name).addif(tap_device_name):
return False
return True return True
def plug_interface(self, network_id, network_segment, tap_name, def plug_interface(self, network_id, network_segment, tap_name,

@ -510,15 +510,6 @@ class TestLinuxBridgeManager(base.BaseTestCase):
p_const.TYPE_VLAN, "physnet1", None, "tap1", p_const.TYPE_VLAN, "physnet1", None, "tap1",
"foo") "foo")
def test_add_tap_interface_owner_compute(self):
with mock.patch.object(ip_lib, "device_exists"):
with mock.patch.object(self.lbm, "ensure_local_bridge"):
self.assertTrue(self.lbm.add_tap_interface("123",
p_const.TYPE_LOCAL,
"physnet1", None,
"tap1",
"compute:1"))
def _test_add_tap_interface(self, dev_owner_prefix): def _test_add_tap_interface(self, dev_owner_prefix):
with mock.patch.object(ip_lib, "device_exists") as de_fn: with mock.patch.object(ip_lib, "device_exists") as de_fn:
de_fn.return_value = False de_fn.return_value = False