diff --git a/src/config/schema-transformer/test/test_service.py b/src/config/schema-transformer/test/test_service.py index 4137f6dfe7a..02eca90c75c 100644 --- a/src/config/schema-transformer/test/test_service.py +++ b/src/config/schema-transformer/test/test_service.py @@ -522,7 +522,16 @@ def _match_route_table_cleanup(sc_ri_name, rt100): _match_route_table_cleanup(sc_ri_name, rt100) + # add the route again, then delete the network without deleting the + # link to route table + routes.add_route(route) + rt.set_routes(routes) + self._vnc_lib.route_table_update(rt) + _match_route_table(rtgt_list.get_route_target()) self._vnc_lib.virtual_network_delete(fq_name=vn.get_fq_name()) + _match_route_table_cleanup(sc_ri_name, rt100) + + self._vnc_lib.route_table_delete(fq_name=rt.get_fq_name()) self.delete_network_policy(np, auto_policy=True) gevent.sleep(2) self._vnc_lib.virtual_network_delete(fq_name=lvn.get_fq_name()) diff --git a/src/config/schema-transformer/to_bgp.py b/src/config/schema-transformer/to_bgp.py index 7088cc87d61..c105486d7a6 100644 --- a/src/config/schema-transformer/to_bgp.py +++ b/src/config/schema-transformer/to_bgp.py @@ -327,6 +327,9 @@ def delete(cls, name): if name in policy.analyzer_vn_set: analyzer_vn_set |= policy.networks_back_ref policy.analyzer_vn_set.discard(name) + + vn.route_table_refs = set() + vn.update_route_table() del cls._dict[name] vn.uve_send(deleted=True) return analyzer_vn_set