From 7ce38c8147b4eae294e40a55ce7c5f6cfdfd2fd1 Mon Sep 17 00:00:00 2001 From: Sachin Bansal Date: Fri, 25 Sep 2015 17:29:49 -0700 Subject: [PATCH] Copy rt_list before modifying For transit networks, we had the following code: rt_list = vn.rt_list rt_list |= set([vn.get_route_target()]) Because of assigning the vn.rt_list to rt_list, and then using, '|=' operator, we unintentionally ended up modifying vn.rt_list. We should make a copy of vn.rt_list before modifying. Change-Id: I1b4b8eac86a47992923681a0f29918248240e8cb Closes-Bug: 1499922 --- src/config/schema-transformer/config_db.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/config/schema-transformer/config_db.py b/src/config/schema-transformer/config_db.py index 7534a4feff4..04e9973c819 100644 --- a/src/config/schema-transformer/config_db.py +++ b/src/config/schema-transformer/config_db.py @@ -2040,9 +2040,9 @@ def _create(self, si_info): if first_node: first_node = False - rt_list = vn1_obj.rt_list + rt_list = set(vn1_obj.rt_list) if vn1_obj.allow_transit: - rt_list |= set([vn1_obj.get_route_target()]) + rt_list.add(vn1_obj.get_route_target()) service_ri1.update_route_target_list(rt_list, import_export='export') @@ -2077,9 +2077,9 @@ def _create(self, si_info): self._vnc_lib.routing_instance_update(service_ri1.obj) self._vnc_lib.routing_instance_update(service_ri2.obj) - rt_list = vn2_obj.rt_list + rt_list = set(vn2_obj.rt_list) if vn2_obj.allow_transit: - rt_list |= set([vn2_obj.get_route_target()]) + rt_list.add(vn2_obj.get_route_target()) service_ri2.update_route_target_list(rt_list, import_export='export') service_ri2.add_connection(vn2_obj.get_primary_routing_instance())