def test_vlan_id_pool(self): vlan_ids = set() for x in xrange(VLAN_MIN, VLAN_MAX + 1): vlan_id = ovs_db_v2.reserve_vlan_id() self.assertGreaterEqual(vlan_id, VLAN_MIN) self.assertLessEqual(vlan_id, VLAN_MAX) vlan_ids.add(vlan_id) with self.assertRaises(q_exc.NoNetworkAvailable): vlan_id = ovs_db_v2.reserve_vlan_id() for vlan_id in vlan_ids: ovs_db_v2.release_vlan_id(vlan_id)
def create_network(self, context, network): net = super(OVSQuantumPluginV2, 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) ovs_db_v2.reserve_specific_vlan_id(vlan_id) else: vlan_id = ovs_db_v2.reserve_vlan_id() except Exception: super(OVSQuantumPluginV2, self).delete_network(context, net['id']) raise LOG.debug("Created network: %s" % net['id']) ovs_db_v2.add_vlan_binding(vlan_id, str(net['id'])) self._extend_network_dict(context, net) return net
def create_network(self, context, network): (network_type, physical_network, vlan_id) = self._process_provider_create(context, network['network']) net = super(OVSQuantumPluginV2, self).create_network(context, network) try: if not network_type: vlan_id = ovs_db_v2.reserve_vlan_id(context.session) else: ovs_db_v2.reserve_specific_vlan_id(vlan_id, context.session) except Exception: super(OVSQuantumPluginV2, self).delete_network(context, net['id']) raise LOG.debug("Created network: %s" % net['id']) ovs_db_v2.add_vlan_binding(vlan_id, str(net['id']), context.session) self._extend_network_dict(context, net) return net