From 8219f3f61b17b8fa62cc8ae20f5e8c0307b71cff Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Tue, 29 Aug 2023 08:18:10 +0200 Subject: [PATCH] Get default value for BFD/ECMP extra attributes from config The default value for 'enable_default_route_bfd' and 'enable_default_route_ecmp' is configurable. Ensure the default comes from configuration if a request to create router does not contain a value for these attributes. Partial-Bug: #2002687 Change-Id: I581f4c5e5cfa275f8a6f0adec405f205e877ac55 --- neutron/db/l3_extra_gws_db.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/neutron/db/l3_extra_gws_db.py b/neutron/db/l3_extra_gws_db.py index bec734a53ea..c8641a7cd71 100644 --- a/neutron/db/l3_extra_gws_db.py +++ b/neutron/db/l3_extra_gws_db.py @@ -36,6 +36,7 @@ from neutron_lib.exceptions import l3 as l3_exc from neutron_lib.exceptions import l3_ext_gw_multihoming as mh_exc from neutron_lib.plugins import constants as plugin_constants from neutron_lib.plugins import directory +from oslo_config import cfg def format_gateway_info(gw_port): @@ -79,11 +80,16 @@ class ExtraGatewaysDbOnlyMixin(l3_gwmode_db.L3_NAT_dbonly_mixin): @registry.receives(resources.ROUTER, [events.PRECOMMIT_CREATE]) def _process_bfd_ecmp_request(self, resource, event, trigger, payload): + attr_defaults = { + l3_enable_default_route_ecmp.ENABLE_DEFAULT_ROUTE_ECMP: ( + cfg.CONF.enable_default_route_ecmp), + l3_enable_default_route_bfd.ENABLE_DEFAULT_ROUTE_BFD: ( + cfg.CONF.enable_default_route_bfd), + } router = payload.latest_state router_db = payload.metadata['router_db'] - for attr in (l3_enable_default_route_ecmp.ENABLE_DEFAULT_ROUTE_ECMP, - l3_enable_default_route_bfd.ENABLE_DEFAULT_ROUTE_BFD): - value = router.get(attr) + for attr in attr_defaults.keys(): + value = router.get(attr, attr_defaults[attr]) if value is not None: self.set_extra_attr_value(router_db, attr, value)