physical_network, segmentation_id,
tap_device_name)
- def delete_vlan_bridge(self, bridge_name):
+ def delete_bridge(self, bridge_name):
if ip_lib.device_exists(bridge_name):
interfaces_on_bridge = self.get_interfaces_on_bridge(bridge_name)
for interface in interfaces_on_bridge:
self.remove_interface(bridge_name, interface)
if interface.startswith(VXLAN_INTERFACE_PREFIX):
- self.delete_vxlan(interface)
+ self.delete_interface(interface)
continue
for physical_interface in self.interface_mappings.values():
bridge_name,
ips, gateway)
elif physical_interface != interface:
- self.delete_vlan(interface)
+ self.delete_interface(interface)
LOG.debug("Deleting bridge %s", bridge_name)
bridge_device = bridge_lib.BridgeDevice(bridge_name)
for network_id in list(self.network_map.keys()):
bridge_name = self.get_bridge_name(network_id)
if not self.get_tap_devices_count(bridge_name):
- self.delete_vlan_bridge(bridge_name)
+ self.delete_bridge(bridge_name)
del self.network_map[network_id]
def remove_interface(self, bridge_name, interface_name):
'bridge_name': bridge_name})
return False
- def delete_vlan(self, interface):
+ def delete_interface(self, interface):
if ip_lib.device_exists(interface):
- LOG.debug("Deleting subinterface %s for vlan", interface)
- if utils.execute(['ip', 'link', 'set', interface, 'down'],
- run_as_root=True):
- return
- if utils.execute(['ip', 'link', 'delete', interface],
- run_as_root=True):
- return
- LOG.debug("Done deleting subinterface %s", interface)
-
- def delete_vxlan(self, interface):
- if ip_lib.device_exists(interface):
- LOG.debug("Deleting vxlan interface %s for vlan",
+ LOG.debug("Deleting interface %s",
interface)
- int_vxlan = self.ip.device(interface)
- int_vxlan.link.set_down()
- int_vxlan.link.delete()
- LOG.debug("Done deleting vxlan interface %s", interface)
+ device = self.ip.device(interface)
+ device.link.set_down()
+ device.link.delete()
+ LOG.debug("Done deleting interface %s", interface)
def get_tap_devices(self):
devices = set()
except RuntimeError:
return False
finally:
- self.delete_vxlan(test_iface)
+ self.delete_interface(test_iface)
def vxlan_mcast_supported(self):
if not cfg.CONF.VXLAN.vxlan_group:
network_id = kwargs.get('network_id')
bridge_name = self.agent.br_mgr.get_bridge_name(network_id)
LOG.debug("Delete %s", bridge_name)
- self.agent.br_mgr.delete_vlan_bridge(bridge_name)
+ self.agent.br_mgr.delete_bridge(bridge_name)
def port_update(self, context, **kwargs):
port_id = kwargs['port']['id']
add_tap.assert_called_with("123", p_const.TYPE_VLAN, "physnet-1",
"1", "tap234")
- def test_delete_vlan_bridge(self):
+ def test_delete_bridge(self):
bridge_device = mock.Mock()
with mock.patch.object(ip_lib, "device_exists") as de_fn,\
mock.patch.object(self.lbm,
"get_interface_details") as if_det_fn,\
mock.patch.object(self.lbm,
"update_interface_ip_details") as updif_fn,\
- mock.patch.object(self.lbm, "delete_vxlan") as del_vxlan,\
+ mock.patch.object(self.lbm, "delete_interface") as del_interface,\
mock.patch.object(bridge_lib, "BridgeDevice",
return_value=bridge_device):
de_fn.return_value = False
- self.lbm.delete_vlan_bridge("br0")
+ self.lbm.delete_bridge("br0")
self.assertFalse(getif_fn.called)
de_fn.return_value = True
getif_fn.return_value = ["eth0", "eth1", "vxlan-1002"]
if_det_fn.return_value = ("ips", "gateway")
bridge_device.link.set_down.return_value = False
- self.lbm.delete_vlan_bridge("br0")
+ self.lbm.delete_bridge("br0")
updif_fn.assert_called_with("eth1", "br0", "ips", "gateway")
- del_vxlan.assert_called_with("vxlan-1002")
+ del_interface.assert_called_with("vxlan-1002")
- def test_delete_vlan_bridge_with_ip(self):
+ def test_delete_bridge_with_ip(self):
bridge_device = mock.Mock()
with mock.patch.object(ip_lib, "device_exists") as de_fn,\
mock.patch.object(self.lbm,
"get_interface_details") as if_det_fn,\
mock.patch.object(self.lbm,
"update_interface_ip_details") as updif_fn,\
- mock.patch.object(self.lbm, "delete_vlan") as del_vlan,\
+ mock.patch.object(self.lbm, "delete_interface") as del_interface,\
mock.patch.object(bridge_lib, "BridgeDevice",
return_value=bridge_device):
de_fn.return_value = True
getif_fn.return_value = ["eth0", "eth1.1"]
if_det_fn.return_value = ("ips", "gateway")
bridge_device.link.set_down.return_value = False
- self.lbm.delete_vlan_bridge("br0")
+ self.lbm.delete_bridge("br0")
updif_fn.assert_called_with("eth1.1", "br0", "ips", "gateway")
- self.assertFalse(del_vlan.called)
+ self.assertFalse(del_interface.called)
- def test_delete_vlan_bridge_no_ip(self):
+ def test_delete_bridge_no_ip(self):
bridge_device = mock.Mock()
with mock.patch.object(ip_lib, "device_exists") as de_fn,\
mock.patch.object(self.lbm,
"get_interface_details") as if_det_fn,\
mock.patch.object(self.lbm,
"update_interface_ip_details") as updif_fn,\
- mock.patch.object(self.lbm, "delete_vlan") as del_vlan,\
+ mock.patch.object(self.lbm, "delete_interface") as del_interface,\
mock.patch.object(bridge_lib, "BridgeDevice",
return_value=bridge_device):
de_fn.return_value = True
getif_fn.return_value = ["eth0", "eth1.1"]
bridge_device.link.set_down.return_value = False
if_det_fn.return_value = ([], None)
- self.lbm.delete_vlan_bridge("br0")
- del_vlan.assert_called_with("eth1.1")
+ self.lbm.delete_bridge("br0")
+ del_interface.assert_called_with("eth1.1")
self.assertFalse(updif_fn.called)
- def test_delete_vxlan_bridge_no_int_mappings(self):
+ def test_delete_bridge_no_int_mappings(self):
interface_mappings = {}
with mock.patch.object(ip_lib.IPWrapper,
'get_device_by_ip', return_value=None):
mock.patch.object(lbm,
"get_interfaces_on_bridge") as getif_fn,\
mock.patch.object(lbm, "remove_interface"),\
- mock.patch.object(lbm, "delete_vxlan") as del_vxlan,\
+ mock.patch.object(lbm, "delete_interface") as del_interface,\
mock.patch.object(bridge_lib, "BridgeDevice",
return_value=bridge_device):
de_fn.return_value = False
- lbm.delete_vlan_bridge("br0")
+ lbm.delete_bridge("br0")
self.assertFalse(getif_fn.called)
de_fn.return_value = True
getif_fn.return_value = ["vxlan-1002"]
bridge_device.link.set_down.return_value = False
- lbm.delete_vlan_bridge("br0")
- del_vxlan.assert_called_with("vxlan-1002")
+ lbm.delete_bridge("br0")
+ del_interface.assert_called_with("vxlan-1002")
def test_remove_empty_bridges(self):
self.lbm.network_map = {'net1': mock.Mock(), 'net2': mock.Mock()}
def tap_count_side_effect(*args):
return 0 if args[0] == 'brqnet1' else 1
- with mock.patch.object(self.lbm, "delete_vlan_bridge") as del_br_fn,\
+ with mock.patch.object(self.lbm, "delete_bridge") as del_br_fn,\
mock.patch.object(self.lbm,
"get_tap_devices_count",
side_effect=tap_count_side_effect):
bridge_device.delif.return_value = False
self.assertTrue(self.lbm.remove_interface("br0", "eth0"))
- def test_delete_vlan(self):
+ def test_delete_interface(self):
with mock.patch.object(ip_lib, "device_exists") as de_fn,\
- mock.patch.object(utils, "execute") as exec_fn:
+ mock.patch.object(ip_lib.IpLinkCommand, "set_down") as down_fn,\
+ mock.patch.object(ip_lib.IpLinkCommand, "delete") as delete_fn:
de_fn.return_value = False
- self.lbm.delete_vlan("eth1.1")
- self.assertFalse(exec_fn.called)
+ self.lbm.delete_interface("eth1.1")
+ self.assertFalse(down_fn.called)
+ self.assertFalse(delete_fn.called)
de_fn.return_value = True
- exec_fn.return_value = True
- self.lbm.delete_vlan("eth1.1")
- self.assertTrue(exec_fn.called)
+ self.lbm.delete_interface("eth1.1")
+ self.assertTrue(down_fn.called)
+ self.assertTrue(delete_fn.called)
def _check_vxlan_support(self, expected, vxlan_ucast_supported,
vxlan_mcast_supported):
with mock.patch.object(ip_lib, 'device_exists', return_value=False),\
mock.patch.object(ip_lib, 'vxlan_in_use', return_value=False),\
mock.patch.object(self.lbm,
- 'delete_vxlan',
+ 'delete_interface',
return_value=None),\
mock.patch.object(self.lbm,
'ensure_vxlan',
with mock.patch.object(self.lb_rpc.agent.br_mgr,
"get_bridge_name") as get_br_fn,\
mock.patch.object(self.lb_rpc.agent.br_mgr,
- "delete_vlan_bridge") as del_fn:
+ "delete_bridge") as del_fn:
get_br_fn.return_value = "br0"
self.lb_rpc.network_delete("anycontext", network_id="123")
get_br_fn.assert_called_with("123")