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 28, 2015
1 parent 56ddedc commit cc4719d
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/config/schema-transformer/to_bgp.py
Original file line number Diff line number Diff line change
Expand Up @@ -1818,9 +1818,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 @@ -1854,9 +1854,9 @@ def _create(self, si_info):
_vnc_lib.routing_instance_update(service_ri1.obj)
_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 cc4719d

Please sign in to comment.