From 2fe08b23b786f08efd11898978510f400b60e79e Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Tue, 10 Oct 2023 14:08:08 +0200 Subject: [PATCH] l3_extra_gws: Add PRECOMMIT_UPDATE receiver The apidef allows for updating the `enable_default_route_bfd` and `enable_default_route_ecmp` router extra attributes, however the extension does currently not implement a receiver for it. Signed-off-by: Frode Nordahl Change-Id: Ic7b73fb58fd2e3a6c689511038c0681cf99a1cfb --- neutron/db/l3_extra_gws_db.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/neutron/db/l3_extra_gws_db.py b/neutron/db/l3_extra_gws_db.py index 57fa2b5d20f..69648f6483d 100644 --- a/neutron/db/l3_extra_gws_db.py +++ b/neutron/db/l3_extra_gws_db.py @@ -79,7 +79,7 @@ class ExtraGatewaysDbOnlyMixin(l3_gwmode_db.L3_NAT_dbonly_mixin): self._remove_all_gateways(payload.context, payload.resource_id) @registry.receives(resources.ROUTER, [events.PRECOMMIT_CREATE]) - def _process_bfd_ecmp_request(self, resource, event, trigger, payload): + def _process_bfd_ecmp_create(self, resource, event, trigger, payload): attr_defaults = { l3_enable_default_route_ecmp.ENABLE_DEFAULT_ROUTE_ECMP: ( cfg.CONF.enable_default_route_ecmp), @@ -93,6 +93,16 @@ class ExtraGatewaysDbOnlyMixin(l3_gwmode_db.L3_NAT_dbonly_mixin): if value is not None: self.set_extra_attr_value(router_db, attr, value) + @registry.receives(resources.ROUTER, [events.PRECOMMIT_UPDATE]) + def _process_bfd_ecmp_update(self, resource, event, trigger, payload): + router = payload.request_body + router_db = payload.desired_state + for attr in (l3_enable_default_route_bfd.ENABLE_DEFAULT_ROUTE_BFD, + l3_enable_default_route_ecmp.ENABLE_DEFAULT_ROUTE_ECMP): + value = router.get(attr, None) + if value is not None: + self.set_extra_attr_value(router_db, attr, value) + def _add_external_gateways( self, context, router_id, gw_info_list, payload): """Add external gateways to a router."""