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 <frode.nordahl@canonical.com>
Change-Id: Ic7b73fb58fd2e3a6c689511038c0681cf99a1cfb
This commit is contained in:
Frode Nordahl 2023-10-10 14:08:08 +02:00
parent 9d91415dc8
commit 2fe08b23b7
1 changed files with 11 additions and 1 deletions

View File

@ -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."""