]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Revert "Fix subnet creation failure on IPv6 valid gateway"
authorHenry Gessau <gessau@cisco.com>
Wed, 24 Jun 2015 03:16:52 +0000 (03:16 +0000)
committerHenry Gessau <gessau@cisco.com>
Wed, 24 Jun 2015 03:16:52 +0000 (03:16 +0000)
Because it breaks tests.api.test_dhcp_ipv6.NetworksTestDHCPv6.test_dhcp_stateful_fixedips_outrange

This reverts commit ee51ef72d37a02005a7733b7f2faf7236db850a1.

Change-Id: Id02d9034ca809f194ff7551167bfda3559fb1200

neutron/ipam/subnet_alloc.py
neutron/ipam/utils.py
neutron/tests/unit/ipam/test_subnet_alloc.py

index d1a6f681f7c5917b42944b2e66bcb644918d1951..dc38f43752a2f51b31aaed5a13caee837ef84fab 100644 (file)
@@ -126,19 +126,13 @@ class SubnetAllocator(driver.Pool):
             self._check_subnetpool_tenant_quota(request.tenant_id,
                                                 request.prefixlen)
             cidr = request.subnet_cidr
-            gateway = request.gateway_ip
-            if gateway and not ipam_utils.check_subnet_ip(cidr, gateway):
-                msg = _("Cannot allocate requested subnet due to bad gateway "
-                        "address")
-                raise n_exc.SubnetAllocationError(reason=msg)
-
             available = self._get_available_prefix_list()
             matched = netaddr.all_matching_cidrs(cidr, available)
             if len(matched) is 1 and matched[0].prefixlen <= cidr.prefixlen:
                 return IpamSubnet(request.tenant_id,
                                   request.subnet_id,
                                   cidr,
-                                  gateway_ip=gateway,
+                                  gateway_ip=request.gateway_ip,
                                   allocation_pools=request.allocation_pools)
             msg = _("Cannot allocate requested subnet from the available "
                     "set of prefixes")
index 3f0bda173b747a5c8f1bae354b5e5ba818ec9871..74927769ad765ab3e0ad056a46a0c10e2d4f8e47 100644 (file)
@@ -21,9 +21,8 @@ def check_subnet_ip(cidr, ip_address):
     ip = netaddr.IPAddress(ip_address)
     net = netaddr.IPNetwork(cidr)
     # Check that the IP is valid on subnet. This cannot be the
-    # network or the broadcast address (which exists only in IPv4)
-    return (ip != net.network
-            and (net.version == 6 or ip != net.broadcast)
+    # network or the broadcast address
+    return (ip != net.network and ip != net.broadcast
             and net.netmask & ip == net.network)
 
 
index 8923ef8de6ad62209dcc96d44cdf62bb5ec5493f..25021af2fdc56c9d611dc6f7f3bba9bb57627fab 100644 (file)
@@ -146,37 +146,6 @@ class TestSubnetAllocation(testlib_api.SqlTestCase):
             self.assertEqual(detail.gateway_ip,
                              netaddr.IPAddress('10.1.2.254'))
 
-    def test_allocate_specific_ipv6_subnet_specific_gateway(self):
-        # Same scenario as described in bug #1466322
-        sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
-                                      ['2210::/64'],
-                                      64, 6)
-        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.SpecificSubnetRequest(self._tenant_id,
-                                             uuidutils.generate_uuid(),
-                                             '2210::/64',
-                                             '2210::ffff:ffff:ffff:ffff')
-            res = sa.allocate_subnet(req)
-            detail = res.get_details()
-            self.assertEqual(detail.gateway_ip,
-                             netaddr.IPAddress('2210::ffff:ffff:ffff:ffff'))
-
-    def test_allocate_specific_ipv4_subnet_specific_broadcast_gateway(self):
-        # Valid failure in subnet creation due to gateway==broadcast ip
-        sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
-                                      ['10.1.0.0/24'],
-                                      24, 4)
-        sa = subnet_alloc.SubnetAllocator(sp, self.ctx)
-        req = ipam.SpecificSubnetRequest(self._tenant_id,
-                                         uuidutils.generate_uuid(),
-                                         '10.1.0.0/24',
-                                         gateway_ip='10.1.0.255')
-        self.assertRaises(n_exc.SubnetAllocationError,
-                          sa.allocate_subnet,
-                          req)
-
     def test__allocation_value_for_tenant_no_allocations(self):
         sp = self._create_subnet_pool(self.plugin, self.ctx, 'test-sp',
                                       ['10.1.0.0/16', '192.168.1.0/24'],