diff --git a/src/config/schema-transformer/config_db.py b/src/config/schema-transformer/config_db.py index 9a5ec545193..eaad1ba0dc0 100644 --- a/src/config/schema-transformer/config_db.py +++ b/src/config/schema-transformer/config_db.py @@ -511,8 +511,15 @@ def set_properties(self, properties): self.allow_transit = properties.allow_transit for sc_list in self.service_chains.values(): for service_chain in sc_list: - ri_name = self.get_service_name(service_chain.name, - service_chain.service_list[0]) + if not service_chain.created: + continue + if self.name == service_chain.left_vn: + si_name = service_chain.service_list[0] + elif self.name == service_chain.right_vn: + si_name = service_chain.service_list[-1] + else: + continue + ri_name = self.get_service_name(service_chain.name, si_name) ri = RoutingInstanceST.get(ri_name) if not ri: continue @@ -524,8 +531,7 @@ def set_properties(self, properties): else: # if the network is not a transit network any more, then we # need to delete the route target from service RIs - ri.update_route_target_list([], [self.get_route_target()], - import_export='export') + ri.update_route_target_list([], [self.get_route_target()]) # end set_properties def set_route_target_list(self, rt_list): @@ -1832,10 +1838,10 @@ def update_route_target_list(self, rt_add, rt_del=None, rtgt_obj = RouteTargetST.locate(rt).obj inst_tgt_data = InstanceTargetType(import_export=import_export) self.obj.add_route_target(rtgt_obj, inst_tgt_data) - for rt in rt_del or set(): + for rt in rt_del or []: rtgt_obj = RouteTarget(rt) self.obj.del_route_target(rtgt_obj) - if len(rt_add) or len(rt_del or set()): + if rt_add or rt_del: try: self._vnc_lib.routing_instance_update(self.obj) except NoIdError: