Ejemplo n.º 1
0
 def test_vlan_exists(self):
     attr = self.generate_device_details()
     ip = ip_lib.IPWrapper(namespace=attr.namespace)
     ip.netns.add(attr.namespace)
     self.addCleanup(ip.netns.delete, attr.namespace)
     priv_ip_lib.create_interface(attr.name, attr.namespace, 'dummy')
     self.assertFalse(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
     device = ip.add_vlan('vlan1999', attr.name, 1999)
     self.assertTrue(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
     device.link.delete()
     self.assertFalse(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
Ejemplo n.º 2
0
 def test_vlan_exists(self):
     attr = self.generate_device_details()
     ip = ip_lib.IPWrapper(namespace=attr.namespace)
     ip.netns.add(attr.namespace)
     self.addCleanup(ip.netns.delete, attr.namespace)
     priv_ip_lib.create_interface(attr.name, attr.namespace, 'dummy')
     self.assertFalse(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
     device = ip.add_vlan('vlan1999', attr.name, 1999)
     self.assertTrue(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
     device.link.delete()
     self.assertFalse(ip_lib.vlan_in_use(1999, namespace=attr.namespace))
 def ensure_vlan(self, physical_interface, vlan_id):
     """Create a vlan unless it already exists."""
     interface = self.get_subinterface_name(physical_interface, vlan_id)
     if not ip_lib.device_exists(interface):
         LOG.debug(
             "Creating subinterface %(interface)s for "
             "VLAN %(vlan_id)s on interface "
             "%(physical_interface)s", {
                 'interface': interface,
                 'vlan_id': vlan_id,
                 'physical_interface': physical_interface
             })
         try:
             int_vlan = self.ip.add_vlan(interface, physical_interface,
                                         vlan_id)
         except RuntimeError:
             with excutils.save_and_reraise_exception() as ctxt:
                 if ip_lib.vlan_in_use(vlan_id):
                     ctxt.reraise = False
                     LOG.error(
                         _LE("Unable to create VLAN interface for "
                             "VLAN ID %s because it is in use by "
                             "another interface."), vlan_id)
                     return
         int_vlan.disable_ipv6()
         int_vlan.link.set_up()
         LOG.debug("Done creating subinterface %s", interface)
     return interface
 def ensure_vlan(self, physical_interface, vlan_id):
     """Create a vlan unless it already exists."""
     interface = self.get_subinterface_name(physical_interface, vlan_id)
     if not ip_lib.device_exists(interface):
         LOG.debug(
             "Creating subinterface %(interface)s for " "VLAN %(vlan_id)s on interface " "%(physical_interface)s",
             {"interface": interface, "vlan_id": vlan_id, "physical_interface": physical_interface},
         )
         try:
             int_vlan = self.ip.add_vlan(interface, physical_interface, vlan_id)
         except RuntimeError:
             with excutils.save_and_reraise_exception() as ctxt:
                 if ip_lib.vlan_in_use(vlan_id):
                     ctxt.reraise = False
                     LOG.error(
                         _LE(
                             "Unable to create VLAN interface for "
                             "VLAN ID %s because it is in use by "
                             "another interface."
                         ),
                         vlan_id,
                     )
                     return
         int_vlan.disable_ipv6()
         int_vlan.link.set_up()
         LOG.debug("Done creating subinterface %s", interface)
     return interface