Example #1
0
 def test_subnet_request_gateway(self):
     request = ipam_req.AnySubnetRequest(self.tenant_id,
                                         self.subnet_id,
                                         constants.IPv6,
                                         64,
                                         gateway_ip='2000::1')
     self.assertEqual(netaddr.IPAddress('2000::1'), request.gateway_ip)
Example #2
0
 def test_subnet_request(self):
     request = ipam_req.AnySubnetRequest(self.tenant_id,
                                         self.subnet_id,
                                         constants.IPv4,
                                         24,
                                         gateway_ip='0.0.0.1')
     self.assertEqual(24, request.prefixlen)
Example #3
0
 def test_subnet_request_good_gateway(self):
     cfg.CONF.set_override('force_gateway_on_subnet', False)
     request = ipam_req.AnySubnetRequest(self.tenant_id,
                                         self.subnet_id,
                                         constants.IPv6,
                                         64,
                                         gateway_ip='2000::1')
     self.assertEqual(netaddr.IPAddress('2000::1'), request.gateway_ip)
Example #4
0
 def test_insufficient_prefix_space_for_any_allocation(self):
     sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
                                   ['10.1.1.0/24', '192.168.1.0/24'], 21, 4)
     sp = self.plugin._get_subnetpool(self.ctx, sp['id'])
     sa = subnet_alloc.SubnetAllocator(sp, self.ctx)
     req = ipam_req.AnySubnetRequest(self._tenant_id,
                                     uuidutils.generate_uuid(),
                                     constants.IPv4, 21)
     self.assertRaises(n_exc.SubnetAllocationError, sa.allocate_subnet, req)
Example #5
0
 def test_allocate_any_subnet_gateway(self):
     sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
                                   ['10.1.0.0/16', '192.168.1.0/24'], 21, 4)
     sp = self.plugin._get_subnetpool(self.ctx, sp['id'])
     with db_api.context_manager.writer.using(self.ctx):
         sa = subnet_alloc.SubnetAllocator(sp, self.ctx)
         req = ipam_req.AnySubnetRequest(self._tenant_id,
                                         uuidutils.generate_uuid(),
                                         constants.IPv4, 21)
         res = sa.allocate_subnet(req)
         detail = res.get_details()
         self.assertEqual(detail.gateway_ip, detail.subnet_cidr.network + 1)
Example #6
0
 def test_allocate_any_subnet(self):
     prefix_list = ['10.1.0.0/16', '192.168.1.0/24']
     sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
                                   prefix_list, 21, 4)
     sp = self.plugin._get_subnetpool(self.ctx, sp['id'])
     with self.ctx.session.begin(subtransactions=True):
         sa = subnet_alloc.SubnetAllocator(sp, self.ctx)
         req = ipam_req.AnySubnetRequest(self._tenant_id,
                                     uuidutils.generate_uuid(),
                                     constants.IPv4, 21)
         res = sa.allocate_subnet(req)
         detail = res.get_details()
         prefix_set = netaddr.IPSet(iterable=prefix_list)
         allocated_set = netaddr.IPSet(iterable=[detail.subnet_cidr])
         self.assertTrue(allocated_set.issubset(prefix_set))
         self.assertEqual(21, detail.prefixlen)
Example #7
0
 def test_allocate_any_subnet_fails(self):
     self.assertRaises(
         ipam_exc.InvalidSubnetRequestType, self.ipam_pool.allocate_subnet,
         ipam_req.AnySubnetRequest(self._tenant_id, 'meh', constants.IPv4,
                                   24))