use PROVISIONAL_IPV6_PD_PREFIX from neutron-lib

Commit I9642ed9b513a43c5558f9611f43227299707284a rehomed the
PROVISIONAL_IPV6_PD_PREFIX constant into neutron-lib. This patch
consumes it removing the constant in neutron and using lib's version
of it instead.

NeutronLibImpact

Change-Id: I107cb5e0ff2f3e2c5bb9dc501f420d0be08735a0
This commit is contained in:
Boden R 2017-11-14 12:26:43 -07:00
parent d505e3eeb7
commit 502e99bca9
13 changed files with 26 additions and 36 deletions

View File

@ -422,7 +422,7 @@ class RouterInfo(object):
def _internal_network_updated(self, port, subnet_id, prefix, old_prefix, def _internal_network_updated(self, port, subnet_id, prefix, old_prefix,
updated_cidrs): updated_cidrs):
interface_name = self.get_internal_device_name(port['id']) interface_name = self.get_internal_device_name(port['id'])
if prefix != n_const.PROVISIONAL_IPV6_PD_PREFIX: if prefix != lib_constants.PROVISIONAL_IPV6_PD_PREFIX:
fixed_ips = port['fixed_ips'] fixed_ips = port['fixed_ips']
for fixed_ip in fixed_ips: for fixed_ip in fixed_ips:
if fixed_ip['subnet_id'] == subnet_id: if fixed_ip['subnet_id'] == subnet_id:
@ -505,7 +505,8 @@ class RouterInfo(object):
if 'subnets' in port: if 'subnets' in port:
for subnet in port['subnets']: for subnet in port['subnets']:
if (netaddr.IPNetwork(subnet['cidr']).version == 6 and if (netaddr.IPNetwork(subnet['cidr']).version == 6 and
subnet['cidr'] != n_const.PROVISIONAL_IPV6_PD_PREFIX): subnet['cidr'] !=
lib_constants.PROVISIONAL_IPV6_PD_PREFIX):
return True return True
def enable_radvd(self, internal_ports=None): def enable_radvd(self, internal_ports=None):
@ -1048,7 +1049,7 @@ class RouterInfo(object):
'scope', 'scope',
self.address_scope_filter_rule(device_name, mark)) self.address_scope_filter_rule(device_name, mark))
for subnet_id, prefix in self.pd_subnets.items(): for subnet_id, prefix in self.pd_subnets.items():
if prefix != n_const.PROVISIONAL_IPV6_PD_PREFIX: if prefix != lib_constants.PROVISIONAL_IPV6_PD_PREFIX:
self._process_pd_iptables_rules(prefix, subnet_id) self._process_pd_iptables_rules(prefix, subnet_id)
def process_ports_address_scope_iptables(self): def process_ports_address_scope_iptables(self):

View File

@ -17,6 +17,7 @@ import os
import shutil import shutil
import jinja2 import jinja2
from neutron_lib import constants as lib_const
from neutron_lib.utils import file as file_utils from neutron_lib.utils import file as file_utils
from oslo_config import cfg from oslo_config import cfg
from oslo_log import log as logging from oslo_log import log as logging
@ -26,7 +27,6 @@ from neutron.agent.linux import external_process
from neutron.agent.linux import pd from neutron.agent.linux import pd
from neutron.agent.linux import pd_driver from neutron.agent.linux import pd_driver
from neutron.agent.linux import utils from neutron.agent.linux import utils
from neutron.common import constants
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
@ -167,7 +167,7 @@ class PDDibbler(pd_driver.PDDriverBase):
def get_prefix(self): def get_prefix(self):
prefix = utils.get_value_from_file(self.prefix_path) prefix = utils.get_value_from_file(self.prefix_path)
if not prefix: if not prefix:
prefix = constants.PROVISIONAL_IPV6_PD_PREFIX prefix = lib_const.PROVISIONAL_IPV6_PD_PREFIX
return prefix return prefix
@staticmethod @staticmethod

View File

@ -97,7 +97,7 @@ class PrefixDelegation(object):
return return
self._delete_pd(router, pd_info) self._delete_pd(router, pd_info)
if self._is_pd_master_router(router): if self._is_pd_master_router(router):
prefix_update[subnet_id] = l3_constants.PROVISIONAL_IPV6_PD_PREFIX prefix_update[subnet_id] = n_const.PROVISIONAL_IPV6_PD_PREFIX
LOG.debug("Update server with prefixes: %s", prefix_update) LOG.debug("Update server with prefixes: %s", prefix_update)
self.notifier(self.context, prefix_update) self.notifier(self.context, prefix_update)
del router['subnets'][subnet_id] del router['subnets'][subnet_id]
@ -152,7 +152,7 @@ class PrefixDelegation(object):
pd_info.driver.disable(self.pmon, router['ns_name']) pd_info.driver.disable(self.pmon, router['ns_name'])
pd_info.prefix = None pd_info.prefix = None
pd_info.client_started = False pd_info.client_started = False
prefix = l3_constants.PROVISIONAL_IPV6_PD_PREFIX prefix = n_const.PROVISIONAL_IPV6_PD_PREFIX
prefix_update[subnet_id] = prefix prefix_update[subnet_id] = prefix
if prefix_update: if prefix_update:
LOG.debug("Update server with prefixes: %s", prefix_update) LOG.debug("Update server with prefixes: %s", prefix_update)
@ -310,7 +310,7 @@ class PrefixDelegation(object):
router_id, subnet_id, pd_info.ri_ifname) router_id, subnet_id, pd_info.ri_ifname)
prefix = None prefix = None
if (pd_info.prefix != if (pd_info.prefix !=
l3_constants.PROVISIONAL_IPV6_PD_PREFIX): n_const.PROVISIONAL_IPV6_PD_PREFIX):
prefix = pd_info.prefix prefix = pd_info.prefix
pd_info.driver.enable(self.pmon, router['ns_name'], pd_info.driver.enable(self.pmon, router['ns_name'],
@ -397,8 +397,8 @@ class PDInfo(object):
""" """
def __init__(self, pd_info=None, ri_ifname=None, mac=None): def __init__(self, pd_info=None, ri_ifname=None, mac=None):
if pd_info is None: if pd_info is None:
self.prefix = l3_constants.PROVISIONAL_IPV6_PD_PREFIX self.prefix = n_const.PROVISIONAL_IPV6_PD_PREFIX
self.old_prefix = l3_constants.PROVISIONAL_IPV6_PD_PREFIX self.old_prefix = n_const.PROVISIONAL_IPV6_PD_PREFIX
self.ri_ifname = ri_ifname self.ri_ifname = ri_ifname
self.mac = mac self.mac = mac
self.bind_lla = None self.bind_lla = None

View File

@ -45,7 +45,7 @@ class PDDriverBase(object):
def get_prefix(self): def get_prefix(self):
"""Get the current assigned prefix for this PDDriver from the PD agent. """Get the current assigned prefix for this PDDriver from the PD agent.
If no prefix is currently assigned, return If no prefix is currently assigned, return
constants.PROVISIONAL_IPV6_PD_PREFIX neutron_lib.constants.PROVISIONAL_IPV6_PD_PREFIX
""" """
@staticmethod @staticmethod

View File

@ -109,10 +109,6 @@ IPTABLES_PROTOCOL_MAP = {lib_constants.PROTO_NAME_DCCP: 'dccp',
lib_constants.PROTO_NAME_TCP: 'tcp', lib_constants.PROTO_NAME_TCP: 'tcp',
lib_constants.PROTO_NAME_UDP: 'udp'} lib_constants.PROTO_NAME_UDP: 'udp'}
# TODO(boden): consume with I9642ed9b513a43c5558f9611f43227299707284a
# Special provisional prefix for IPv6 Prefix Delegation
PROVISIONAL_IPV6_PD_PREFIX = '::/64'
# Timeout in seconds for getting an IPv6 LLA # Timeout in seconds for getting an IPv6 LLA
LLA_TASK_TIMEOUT = 40 LLA_TASK_TIMEOUT = 40

View File

@ -40,7 +40,6 @@ from sqlalchemy import not_
from neutron._i18n import _ from neutron._i18n import _
from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api
from neutron.common import constants as n_const
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.common import utils from neutron.common import utils
@ -777,7 +776,7 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
subnetpool_id = None subnetpool_id = None
self._validate_subnet(context, s) self._validate_subnet(context, s)
else: else:
prefix = n_const.PROVISIONAL_IPV6_PD_PREFIX prefix = constants.PROVISIONAL_IPV6_PD_PREFIX
subnet['subnet']['cidr'] = prefix subnet['subnet']['cidr'] = prefix
self._validate_subnet_for_pd(s) self._validate_subnet_for_pd(s)
else: else:

View File

@ -30,7 +30,6 @@ from sqlalchemy import and_, or_
from sqlalchemy.orm import exc as orm_exc from sqlalchemy.orm import exc as orm_exc
from neutron._i18n import _ from neutron._i18n import _
from neutron.common import constants
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.common import utils as common_utils from neutron.common import utils as common_utils
@ -239,7 +238,7 @@ class IpamBackendMixin(db_base_plugin_common.DbBasePluginCommon):
subnet_list = self._get_all_subnets(context) subnet_list = self._get_all_subnets(context)
for subnet in subnet_list: for subnet in subnet_list:
if ((netaddr.IPSet([subnet.cidr]) & new_subnet_ipset) and if ((netaddr.IPSet([subnet.cidr]) & new_subnet_ipset) and
subnet.cidr != constants.PROVISIONAL_IPV6_PD_PREFIX): subnet.cidr != const.PROVISIONAL_IPV6_PD_PREFIX):
# don't give out details of the overlapping subnet # don't give out details of the overlapping subnet
err_msg = ("Requested subnet with cidr: %(cidr)s for " err_msg = ("Requested subnet with cidr: %(cidr)s for "
"network: %(network_id)s overlaps with another " "network: %(network_id)s overlaps with another "

View File

@ -24,7 +24,6 @@ from oslo_log import log as logging
from oslo_utils import excutils from oslo_utils import excutils
from sqlalchemy import and_ from sqlalchemy import and_
from neutron.common import constants as n_const
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.db import api as db_api from neutron.db import api as db_api
from neutron.db import ipam_backend_mixin from neutron.db import ipam_backend_mixin
@ -263,7 +262,7 @@ class IpamPluggableBackend(ipam_backend_mixin.IpamBackendMixin):
is_auto_addr_subnet = ipv6_utils.is_auto_address_subnet(subnet) is_auto_addr_subnet = ipv6_utils.is_auto_address_subnet(subnet)
if ('ip_address' in fixed and if ('ip_address' in fixed and
subnet['cidr'] != n_const.PROVISIONAL_IPV6_PD_PREFIX): subnet['cidr'] != constants.PROVISIONAL_IPV6_PD_PREFIX):
if (is_auto_addr_subnet and device_owner not in if (is_auto_addr_subnet and device_owner not in
constants.ROUTER_INTERFACE_OWNERS): constants.ROUTER_INTERFACE_OWNERS):
raise ipam_exc.AllocationOnAutoAddressSubnet( raise ipam_exc.AllocationOnAutoAddressSubnet(

View File

@ -37,7 +37,6 @@ from sqlalchemy.orm import exc
from neutron._i18n import _ from neutron._i18n import _
from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api
from neutron.common import constants as n_const
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.common import rpc as n_rpc from neutron.common import rpc as n_rpc
from neutron.common import utils from neutron.common import utils
@ -609,7 +608,7 @@ class L3_NAT_dbonly_mixin(l3.RouterPluginBase,
# Ignore temporary Prefix Delegation CIDRs # Ignore temporary Prefix Delegation CIDRs
new_subnets = [s for s in new_subnets new_subnets = [s for s in new_subnets
if s['cidr'] != n_const.PROVISIONAL_IPV6_PD_PREFIX] if s['cidr'] != constants.PROVISIONAL_IPV6_PD_PREFIX]
id_filter = {'id': router_subnets} id_filter = {'id': router_subnets}
subnets = self._core_plugin.get_subnets(context.elevated(), subnets = self._core_plugin.get_subnets(context.elevated(),
filters=id_filter) filters=id_filter)

View File

@ -19,7 +19,6 @@ from neutron_lib import constants as lib_constants
from oslo_utils import uuidutils from oslo_utils import uuidutils
from six import moves from six import moves
from neutron.common import constants as n_const
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
_uuid = uuidutils.generate_uuid _uuid = uuidutils.generate_uuid
@ -285,7 +284,7 @@ def router_append_pd_enabled_subnet(router, count=1):
'subnet_id': subnet_id}], 'subnet_id': subnet_id}],
'mac_address': str(mac_address), 'mac_address': str(mac_address),
'subnets': [{'id': subnet_id, 'subnets': [{'id': subnet_id,
'cidr': n_const.PROVISIONAL_IPV6_PD_PREFIX, 'cidr': lib_constants.PROVISIONAL_IPV6_PD_PREFIX,
'gateway_ip': '::1', 'gateway_ip': '::1',
'ipv6_ra_mode': lib_constants.IPV6_SLAAC, 'ipv6_ra_mode': lib_constants.IPV6_SLAAC,
'subnetpool_id': lib_constants.IPV6_PD_POOL_ID}]} 'subnetpool_id': lib_constants.IPV6_PD_POOL_ID}]}
@ -299,7 +298,7 @@ def get_unassigned_pd_interfaces(router):
for intf in router[lib_constants.INTERFACE_KEY]: for intf in router[lib_constants.INTERFACE_KEY]:
for subnet in intf['subnets']: for subnet in intf['subnets']:
if (ipv6_utils.is_ipv6_pd_enabled(subnet) and if (ipv6_utils.is_ipv6_pd_enabled(subnet) and
subnet['cidr'] == n_const.PROVISIONAL_IPV6_PD_PREFIX): subnet['cidr'] == lib_constants.PROVISIONAL_IPV6_PD_PREFIX):
pd_intfs.append(intf) pd_intfs.append(intf)
return pd_intfs return pd_intfs
@ -309,7 +308,7 @@ def assign_prefix_for_pd_interfaces(router):
for ifno, intf in enumerate(router[lib_constants.INTERFACE_KEY]): for ifno, intf in enumerate(router[lib_constants.INTERFACE_KEY]):
for subnet in intf['subnets']: for subnet in intf['subnets']:
if (ipv6_utils.is_ipv6_pd_enabled(subnet) and if (ipv6_utils.is_ipv6_pd_enabled(subnet) and
subnet['cidr'] == n_const.PROVISIONAL_IPV6_PD_PREFIX): subnet['cidr'] == lib_constants.PROVISIONAL_IPV6_PD_PREFIX):
subnet['cidr'] = "2001:db8:%d::/64" % ifno subnet['cidr'] = "2001:db8:%d::/64" % ifno
pd_intfs.append(intf) pd_intfs.append(intf)
return pd_intfs return pd_intfs

View File

@ -2945,7 +2945,7 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
requestor_id, ri, False)) requestor_id, ri, False))
for subnet in intf['subnets']: for subnet in intf['subnets']:
expected_pd_update[subnet['id']] = ( expected_pd_update[subnet['id']] = (
n_const.PROVISIONAL_IPV6_PD_PREFIX) lib_constants.PROVISIONAL_IPV6_PD_PREFIX)
# Implement the prefix update notifier # Implement the prefix update notifier
# Keep track of the updated prefix # Keep track of the updated prefix
@ -2980,7 +2980,7 @@ class TestBasicRouterOperations(BasicRouterOperationsFramework):
requestor_id, ri, False)) requestor_id, ri, False))
for subnet in intf['subnets']: for subnet in intf['subnets']:
expected_pd_update += [{subnet['id']: expected_pd_update += [{subnet['id']:
n_const.PROVISIONAL_IPV6_PD_PREFIX}] lib_constants.PROVISIONAL_IPV6_PD_PREFIX}]
# Implement the prefix update notifier # Implement the prefix update notifier
# Keep track of the updated prefix # Keep track of the updated prefix

View File

@ -43,7 +43,6 @@ import neutron
from neutron.api import api_common from neutron.api import api_common
from neutron.api import extensions from neutron.api import extensions
from neutron.api.v2 import router from neutron.api.v2 import router
from neutron.common import constants as n_const
from neutron.common import exceptions as n_exc from neutron.common import exceptions as n_exc
from neutron.common import ipv6_utils from neutron.common import ipv6_utils
from neutron.common import test_lib from neutron.common import test_lib
@ -3755,7 +3754,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase):
@testtools.skipIf(tools.is_bsd(), 'bug/1484837') @testtools.skipIf(tools.is_bsd(), 'bug/1484837')
def test_create_subnet_ipv6_pd_gw_values(self): def test_create_subnet_ipv6_pd_gw_values(self):
cidr = n_const.PROVISIONAL_IPV6_PD_PREFIX cidr = constants.PROVISIONAL_IPV6_PD_PREFIX
# Gateway is last IP in IPv6 DHCPv6 Stateless subnet # Gateway is last IP in IPv6 DHCPv6 Stateless subnet
gateway = '::ffff:ffff:ffff:ffff' gateway = '::ffff:ffff:ffff:ffff'
allocation_pools = [{'start': '::1', allocation_pools = [{'start': '::1',
@ -3899,7 +3898,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase):
@testtools.skipIf(tools.is_bsd(), 'bug/1484837') @testtools.skipIf(tools.is_bsd(), 'bug/1484837')
def test_create_subnet_with_v6_pd_allocation_pool(self): def test_create_subnet_with_v6_pd_allocation_pool(self):
gateway_ip = '::1' gateway_ip = '::1'
cidr = n_const.PROVISIONAL_IPV6_PD_PREFIX cidr = constants.PROVISIONAL_IPV6_PD_PREFIX
allocation_pools = [{'start': '::2', allocation_pools = [{'start': '::2',
'end': '::ffff:ffff:ffff:fffe'}] 'end': '::ffff:ffff:ffff:fffe'}]
self._test_create_subnet(gateway_ip=gateway_ip, self._test_create_subnet(gateway_ip=gateway_ip,
@ -4108,7 +4107,7 @@ class TestSubnetsV2(NeutronDbPluginV2TestCase):
plugin = directory.get_plugin() plugin = directory.get_plugin()
ctx = context.get_admin_context() ctx = context.get_admin_context()
new_subnet = {'ip_version': 6, new_subnet = {'ip_version': 6,
'cidr': n_const.PROVISIONAL_IPV6_PD_PREFIX, 'cidr': constants.PROVISIONAL_IPV6_PD_PREFIX,
'enable_dhcp': True, 'enable_dhcp': True,
'ipv6_address_mode': None, 'ipv6_address_mode': None,
'ipv6_ra_mode': None} 'ipv6_ra_mode': None}

View File

@ -26,7 +26,6 @@ from oslo_utils import netutils
from oslo_utils import uuidutils from oslo_utils import uuidutils
import webob.exc import webob.exc
from neutron.common import constants as n_const
from neutron.db import ipam_backend_mixin from neutron.db import ipam_backend_mixin
from neutron.db import ipam_pluggable_backend from neutron.db import ipam_pluggable_backend
from neutron.db import models_v2 from neutron.db import models_v2
@ -343,7 +342,7 @@ class TestDbBasePluginIpam(test_db_base.NeutronDbPluginV2TestCase):
def test_test_fixed_ips_for_port_pd_gateway(self): def test_test_fixed_ips_for_port_pd_gateway(self):
context = mock.Mock() context = mock.Mock()
pluggable_backend = ipam_pluggable_backend.IpamPluggableBackend() pluggable_backend = ipam_pluggable_backend.IpamPluggableBackend()
with self.subnet(cidr=n_const.PROVISIONAL_IPV6_PD_PREFIX, with self.subnet(cidr=constants.PROVISIONAL_IPV6_PD_PREFIX,
ip_version=6) as subnet: ip_version=6) as subnet:
subnet = subnet['subnet'] subnet = subnet['subnet']
fixed_ips = [{'subnet_id': subnet['id'], fixed_ips = [{'subnet_id': subnet['id'],
@ -378,7 +377,7 @@ class TestDbBasePluginIpam(test_db_base.NeutronDbPluginV2TestCase):
def test_create_ipv6_pd_subnet_over_ipam(self, pool_mock): def test_create_ipv6_pd_subnet_over_ipam(self, pool_mock):
mocks = self._prepare_mocks_with_pool_mock(pool_mock) mocks = self._prepare_mocks_with_pool_mock(pool_mock)
cfg.CONF.set_override('ipv6_pd_enabled', True) cfg.CONF.set_override('ipv6_pd_enabled', True)
cidr = n_const.PROVISIONAL_IPV6_PD_PREFIX cidr = constants.PROVISIONAL_IPV6_PD_PREFIX
allocation_pools = [netaddr.IPRange('::2', '::ffff:ffff:ffff:ffff')] allocation_pools = [netaddr.IPRange('::2', '::ffff:ffff:ffff:ffff')]
with self.subnet(cidr=None, ip_version=6, with self.subnet(cidr=None, ip_version=6,
subnetpool_id=constants.IPV6_PD_POOL_ID, subnetpool_id=constants.IPV6_PD_POOL_ID,