From a37c2d2a1e27266f51259b33c5b2720f41f00b71 Mon Sep 17 00:00:00 2001 From: Miguel Lavalle Date: Wed, 14 May 2025 19:13:42 -0500 Subject: [PATCH] Fix ovn_db_sync for user defined flavor routers When ovn_db_sync is executed in repair mode after a Neutron server restart, it erronously adds user defined flavor routers to the OVN NBDB. Those routers are not managed by OVN. Hereby the issue if fixed. Change-Id: Iacd78020ee41399c3a8ce6cfdf9e37c4f865c90e Closes-Bug: #2110060 --- .../plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py | 2 ++ .../ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py index 9a8f5142356..88410d0b1cc 100644 --- a/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py +++ b/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py @@ -564,6 +564,8 @@ class OvnNbSynchronizer(OvnDbSynchronizer): db_extends = {} db_router_ports = {} for router in self.l3_plugin.get_routers(ctx): + if not utils.is_ovn_provider_router(router): + continue db_routers[router['id']] = router db_extends[router['id']] = {} db_extends[router['id']]['routes'] = [] diff --git a/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py b/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py index da8208b61af..01fc25585d7 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py +++ b/neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_db_sync.py @@ -263,7 +263,9 @@ class TestOvnNbSyncML2(test_mech_driver.OVNMechanismDriverTestCase): 'external_fixed_ips': [ {'subnet_id': 'ext-subnet', 'ip_address': '100.0.0.2'}]}}, - {'id': 'r4', 'routes': []}] + {'id': 'r4', 'routes': []}, + {'id': 'r5', 'routes': [], + 'flavor_id': 'user-defined'}] self.get_sync_router_ports = [ {'fixed_ips': [{'subnet_id': 'subnet1',