Example #1
0
    def create_network(self, context, network):
        net = super(LinuxBridgePluginV2, self).create_network(context, network)
        try:
            vlan_id = network["network"].get("provider:vlan_id")
            if vlan_id not in (None, attributes.ATTR_NOT_SPECIFIED):
                self._enforce_provider_set_auth(context, net)
                cdb.reserve_specific_vlanid(int(vlan_id))
            else:
                vlan_id = cdb.reserve_vlanid()
            cdb.add_vlan_binding(vlan_id, net["id"])
            self._extend_network_dict(context, net)
        except:
            super(LinuxBridgePluginV2, self).delete_network(context, net["id"])
            raise

        return net
Example #2
0
 def test_specific_vlanid_inside(self):
     l2network_db.create_vlanids()
     orig_count = len(l2network_db.get_all_vlanids())
     self.assertGreater(orig_count, 0)
     vlan_id = 1007  # inside range dynamically allocated
     self.assertFalse(l2network_db.is_vlanid_used(vlan_id))
     l2network_db.reserve_specific_vlanid(vlan_id, "net-id")
     self.assertTrue(l2network_db.is_vlanid_used(vlan_id))
     count = len(l2network_db.get_all_vlanids())
     self.assertEqual(count, orig_count)
     used = l2network_db.release_vlanid(vlan_id)
     self.assertFalse(used)
     self.assertFalse(l2network_db.is_vlanid_used(vlan_id))
     count = len(l2network_db.get_all_vlanids())
     self.assertEqual(count, orig_count)
     self.teardown_vlanbinding()
     self.teardown_network()
Example #3
0
 def test_specific_vlanid_outside(self):
     l2network_db.create_vlanids()
     orig_count = len(l2network_db.get_all_vlanids())
     self.assertGreater(orig_count, 0)
     vlan_id = 7  # outside range dynamically allocated
     with self.assertRaises(c_exc.VlanIDNotFound):
         l2network_db.is_vlanid_used(vlan_id)
     l2network_db.reserve_specific_vlanid(vlan_id, "net-id")
     self.assertTrue(l2network_db.is_vlanid_used(vlan_id))
     count = len(l2network_db.get_all_vlanids())
     self.assertEqual(count, orig_count + 1)
     used = l2network_db.release_vlanid(vlan_id)
     self.assertFalse(used)
     with self.assertRaises(c_exc.VlanIDNotFound):
         l2network_db.is_vlanid_used(vlan_id)
     count = len(l2network_db.get_all_vlanids())
     self.assertEqual(count, orig_count)
     self.teardown_vlanbinding()
     self.teardown_network()