diff options
author | Rodolfo Alonso Hernandez <ralonsoh@redhat.com> | 2023-03-29 20:41:33 +0200 |
---|---|---|
committer | Rodolfo Alonso <ralonsoh@redhat.com> | 2023-05-09 11:06:24 +0000 |
commit | 3e65ef863cc4913fd6414e4010ec2506632c00b9 (patch) | |
tree | e5a32718aa7a8f565a4b03f4844a1127df8b1c23 | |
parent | 0b954831060089588fb17367c0c1553d6b230d67 (diff) | |
download | neutron-3e65ef863cc4913fd6414e4010ec2506632c00b9.tar.gz |
Mark "ipv6_pd_enabled" as deprecated and experimental.
This functionality will be kept in the code as experimental as long
as no bugs are reported againts this feature.
This patch also marks the config option "ipv6_pd_enabled" as
experimental. In order to enable this flag, it is needed to configure
the "experimental.ipv6_pd_enabled" flag too.
Related-Bug: #1916428
Change-Id: I27aeed74f308d5bdf0210e76d9557f95b66c71bf
-rw-r--r-- | neutron/conf/common.py | 7 | ||||
-rw-r--r-- | neutron/conf/experimental.py | 5 | ||||
-rw-r--r-- | neutron/db/db_base_plugin_v2.py | 12 | ||||
-rw-r--r-- | releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml | 7 |
4 files changed, 30 insertions, 1 deletions
diff --git a/neutron/conf/common.py b/neutron/conf/common.py index c820b3c5d7..30b09a14aa 100644 --- a/neutron/conf/common.py +++ b/neutron/conf/common.py @@ -77,7 +77,12 @@ core_opts = [ "without providing a CIDR or subnetpool ID will be " "given a CIDR via the Prefix Delegation mechanism. " "Note that enabling PD will override the behavior of " - "the default IPv6 subnetpool.")), + "the default IPv6 subnetpool."), + deprecated_for_removal=True, + deprecated_since='2023.2', + deprecated_reason=("The Dibbler client used for this feature " + "is no longer maintained. See LP#1916428"), + ), cfg.IntOpt('dhcp_lease_duration', default=86400, help=_("DHCP lease duration (in seconds). Use -1 to tell " "dnsmasq to use infinite lease times.")), diff --git a/neutron/conf/experimental.py b/neutron/conf/experimental.py index 463ab4a88b..dbb13ec820 100644 --- a/neutron/conf/experimental.py +++ b/neutron/conf/experimental.py @@ -17,11 +17,16 @@ from neutron._i18n import _ EXPERIMENTAL_CFG_GROUP = 'experimental' EXPERIMENTAL_LINUXBRIDGE = 'linuxbridge' +EXPERIMENTAL_IPV6_PD = 'ipv6_pd_enabled' experimental_opts = [ cfg.BoolOpt(EXPERIMENTAL_LINUXBRIDGE, default=False, help=_('Enable execution of the experimental Linuxbridge ' 'agent.')), + cfg.BoolOpt(EXPERIMENTAL_IPV6_PD, + default=False, + help=_('Enable execution of the experimental IPv6 Prefix ' + 'Delegation functionality in the L3 agent.')), ] diff --git a/neutron/db/db_base_plugin_v2.py b/neutron/db/db_base_plugin_v2.py index d80e7b3fc7..95a7d2277e 100644 --- a/neutron/db/db_base_plugin_v2.py +++ b/neutron/db/db_base_plugin_v2.py @@ -51,8 +51,10 @@ from sqlalchemy import not_ from neutron._i18n import _ from neutron.api.rpc.agentnotifiers import l3_rpc_agent_api from neutron.common import _constants +from neutron.common import experimental from neutron.common import ipv6_utils from neutron.common import utils +from neutron.conf import experimental as c_exp from neutron.db import db_base_plugin_common from neutron.db import ipam_pluggable_backend from neutron.db import models_v2 @@ -156,7 +158,17 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon, result_filters=None) return super(NeutronDbPluginV2, cls).__new__(cls, *args, **kwargs) + @staticmethod + def _validate_ipv6_pd(): + try: + if cfg.CONF.ipv6_pd_enabled: + experimental.validate_experimental_enabled( + c_exp.EXPERIMENTAL_IPV6_PD) + except cfg.NoSuchOptError: + return + def __init__(self): + self._validate_ipv6_pd() self.set_ipam_backend() if (cfg.CONF.notify_nova_on_port_status_changes or cfg.CONF.notify_nova_on_port_data_changes): diff --git a/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml b/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml new file mode 100644 index 0000000000..b340343261 --- /dev/null +++ b/releasenotes/notes/mark_ipv6_pd_enabled_as_experimental-c9bfe343a0beb334.yaml @@ -0,0 +1,7 @@ +--- +deprecations: + - | + "ipv6_pd_enabled" has been marked as deprecated and marked as experimental. + To continue using it, deployers have to set to True the "ipv6_pd_enabled" + option in the "experimental" section of neutron.conf. See + `Dibbler project concluded <https://bugs.launchpad.net/neutron/+bug/1916428>`_. |