Skip to content

Commit

Permalink
Copy rt_list before modifying
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Sachin Bansal committed Sep 26, 2015
1 parent 109c570 commit 7ce38c8
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/config/schema-transformer/config_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')

Expand Down Expand Up @@ -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())
Expand Down

0 comments on commit 7ce38c8

Please sign in to comment.