Exemplo n.º 1
0
    def test_invalid_specific_vlan_id(self):
        session = db.get_session()
        with self.assertRaises(q_exc.InvalidInput):
            vlan_id = ovs_db_v2.reserve_specific_vlan_id(0, session)

        with self.assertRaises(q_exc.InvalidInput):
            vlan_id = ovs_db_v2.reserve_specific_vlan_id(4095, session)
Exemplo n.º 2
0
    def test_specific_vlan_id_outside_pool(self):
        vlan_id = VLAN_MAX + 5
        self.assertIsNone(ovs_db_v2.get_vlan_id(vlan_id))
        ovs_db_v2.reserve_specific_vlan_id(vlan_id)
        self.assertTrue(ovs_db_v2.get_vlan_id(vlan_id).vlan_used)

        with self.assertRaises(q_exc.VlanIdInUse):
            ovs_db_v2.reserve_specific_vlan_id(vlan_id)

        ovs_db_v2.release_vlan_id(vlan_id)
        self.assertIsNone(ovs_db_v2.get_vlan_id(vlan_id))
Exemplo n.º 3
0
    def test_specific_vlan_id_inside_pool(self):
        session = db.get_session()
        vlan_id = VLAN_MIN + 5
        self.assertFalse(ovs_db_v2.get_vlan_id(vlan_id).vlan_used)
        ovs_db_v2.reserve_specific_vlan_id(vlan_id, session)
        self.assertTrue(ovs_db_v2.get_vlan_id(vlan_id).vlan_used)

        with self.assertRaises(q_exc.VlanIdInUse):
            ovs_db_v2.reserve_specific_vlan_id(vlan_id, session)

        ovs_db_v2.release_vlan_id(vlan_id)
        self.assertFalse(ovs_db_v2.get_vlan_id(vlan_id).vlan_used)
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    def test_invalid_specific_vlan_id(self):
        with self.assertRaises(q_exc.InvalidInput):
            vlan_id = ovs_db_v2.reserve_specific_vlan_id(0)

        with self.assertRaises(q_exc.InvalidInput):
            vlan_id = ovs_db_v2.reserve_specific_vlan_id(4095)