def test_specific_tunnel_outside_pool(self): tunnel_id = TUN_MAX + 5 self.assertIsNone(ovs_db_v2.get_tunnel_allocation(tunnel_id)) ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) self.assertTrue(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) with self.assertRaises(q_exc.TunnelIdInUse): ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES) self.assertIsNone(ovs_db_v2.get_tunnel_allocation(tunnel_id))
def test_specific_tunnel_outside_pool(self): tunnel_id = TUN_MAX + 5 self.assertIsNone(ovs_db_v2.get_tunnel_allocation(tunnel_id)) ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) self.assertTrue(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) with self.assertRaises(q_exc.TunnelIdInUse): ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES) self.assertIsNone(ovs_db_v2.get_tunnel_allocation(tunnel_id))
def test_specific_tunnel_inside_pool(self): tunnel_id = TUN_MIN + 5 self.assertFalse(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) self.assertTrue(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) with testtools.ExpectedException(q_exc.TunnelIdInUse): ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES) self.assertFalse(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated)
def test_specific_tunnel_inside_pool(self): tunnel_id = TUN_MIN + 5 self.assertFalse(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) self.assertTrue(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated) with testtools.ExpectedException(q_exc.TunnelIdInUse): ovs_db_v2.reserve_specific_tunnel(self.session, tunnel_id) ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES) self.assertFalse(ovs_db_v2.get_tunnel_allocation(tunnel_id).allocated)
def delete_network(self, context, id): session = context.session with session.begin(subtransactions=True): binding = ovs_db_v2.get_network_binding(session, id) super(OVSQuantumPluginV2, self).delete_network(context, id) if binding.network_type == constants.TYPE_GRE: ovs_db_v2.release_tunnel(session, binding.segmentation_id, self.tunnel_id_ranges) elif binding.network_type in [constants.TYPE_VLAN, constants.TYPE_FLAT]: ovs_db_v2.release_vlan( session, binding.physical_network, binding.segmentation_id, self.network_vlan_ranges ) # the network_binding record is deleted via cascade from # the network record, so explicit removal is not necessary self.notifier.network_delete(context, id)
def delete_network(self, context, id): session = context.session with session.begin(subtransactions=True): binding = ovs_db_v2.get_network_binding(session, id) super(OVSQuantumPluginV2, self).delete_network(context, id) if binding.network_type == constants.TYPE_GRE: ovs_db_v2.release_tunnel(session, binding.segmentation_id, self.tunnel_id_ranges) elif binding.network_type in [constants.TYPE_VLAN, constants.TYPE_FLAT]: ovs_db_v2.release_vlan(session, binding.physical_network, binding.segmentation_id, self.network_vlan_ranges) # the network_binding record is deleted via cascade from # the network record, so explicit removal is not necessary self.notifier.network_delete(context, id)
def test_tunnel_pool(self): tunnel_ids = set() for x in xrange(TUN_MIN, TUN_MAX + 1): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertGreaterEqual(tunnel_id, TUN_MIN) self.assertLessEqual(tunnel_id, TUN_MAX) tunnel_ids.add(tunnel_id) with self.assertRaises(q_exc.NoNetworkAvailable): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) ovs_db_v2.release_tunnel(self.session, tunnel_ids.pop(), TUNNEL_RANGES) tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertGreaterEqual(tunnel_id, TUN_MIN) self.assertLessEqual(tunnel_id, TUN_MAX) tunnel_ids.add(tunnel_id) for tunnel_id in tunnel_ids: ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES)
def test_tunnel_pool(self): tunnel_ids = set() for x in xrange(TUN_MIN, TUN_MAX + 1): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertThat(tunnel_id, matchers.GreaterThan(TUN_MIN - 1)) self.assertThat(tunnel_id, matchers.LessThan(TUN_MAX + 1)) tunnel_ids.add(tunnel_id) with testtools.ExpectedException(q_exc.NoNetworkAvailable): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) ovs_db_v2.release_tunnel(self.session, tunnel_ids.pop(), TUNNEL_RANGES) tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertThat(tunnel_id, matchers.GreaterThan(TUN_MIN - 1)) self.assertThat(tunnel_id, matchers.LessThan(TUN_MAX + 1)) tunnel_ids.add(tunnel_id) for tunnel_id in tunnel_ids: ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES)
def test_tunnel_pool(self): tunnel_ids = set() for x in xrange(TUN_MIN, TUN_MAX + 1): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertGreaterEqual(tunnel_id, TUN_MIN) self.assertLessEqual(tunnel_id, TUN_MAX) tunnel_ids.add(tunnel_id) with self.assertRaises(q_exc.NoNetworkAvailable): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) ovs_db_v2.release_tunnel(self.session, tunnel_ids.pop(), TUNNEL_RANGES) tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertGreaterEqual(tunnel_id, TUN_MIN) self.assertLessEqual(tunnel_id, TUN_MAX) tunnel_ids.add(tunnel_id) for tunnel_id in tunnel_ids: ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES)
def test_tunnel_pool(self): tunnel_ids = set() for x in xrange(TUN_MIN, TUN_MAX + 1): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertThat(tunnel_id, matchers.GreaterThan(TUN_MIN - 1)) self.assertThat(tunnel_id, matchers.LessThan(TUN_MAX + 1)) tunnel_ids.add(tunnel_id) with testtools.ExpectedException(q_exc.NoNetworkAvailable): tunnel_id = ovs_db_v2.reserve_tunnel(self.session) ovs_db_v2.release_tunnel(self.session, tunnel_ids.pop(), TUNNEL_RANGES) tunnel_id = ovs_db_v2.reserve_tunnel(self.session) self.assertThat(tunnel_id, matchers.GreaterThan(TUN_MIN - 1)) self.assertThat(tunnel_id, matchers.LessThan(TUN_MAX + 1)) tunnel_ids.add(tunnel_id) for tunnel_id in tunnel_ids: ovs_db_v2.release_tunnel(self.session, tunnel_id, TUNNEL_RANGES)