@@ -873,6 +873,7 @@ def __allocate_services(self, *, rid: ID, inv: NetworkServiceInventory, sliver:
873873 self .logger .info (f"Allocated Interface Sliver: { ifs } delegation: { delegation_id } " )
874874
875875 owner_v4_service = self .get_ns_from_switch (switch = owner_switch , ns_type = ServiceType .FABNetv4 )
876+ self .logger .info (f"owner_v4_service: { owner_v4_service } " )
876877 if owner_v4_service and owner_v4_service .get_labels ():
877878 ero_source_end_info .append ((owner_switch .node_id , owner_v4_service .get_labels ().ipv4 ))
878879
@@ -891,8 +892,12 @@ def __allocate_services(self, *, rid: ID, inv: NetworkServiceInventory, sliver:
891892 if ServiceType .MPLS == ns .get_type ():
892893 owner_mpls_ns = ns
893894 break
894- delegation_id , delegated_label = InventoryForType .get_delegations (lab_cap_delegations =
895- owner_ns .get_label_delegations ())
895+ if owner_ns and ServiceType .MPLS == owner_ns .get_type ():
896+ delegation_id , delegated_label = InventoryForType .get_delegations (lab_cap_delegations =
897+ owner_switch .get_label_delegations ())
898+ else :
899+ delegation_id , delegated_label = InventoryForType .get_delegations (lab_cap_delegations =
900+ owner_ns .get_label_delegations ())
896901
897902 # Set the Subnet and gateway from the Owner Switch (a)
898903 existing_reservations = self .get_existing_reservations (node_id = owner_ns_id ,
@@ -917,7 +922,7 @@ def __allocate_services(self, *, rid: ID, inv: NetworkServiceInventory, sliver:
917922 node_id_to_reservations = node_id_to_reservations , term = term )
918923
919924 if sliver .ero and len (sliver .ero .get ()) and len (ero_source_end_info ) == 2 :
920- self .logger .info (f"Requested ERO: { sliver .ero } " )
925+ self .logger .info (f"Requested ERO: { sliver .ero } { ero_source_end_info } " )
921926 ero_hops = []
922927 new_path = [ero_source_end_info [0 ][1 ]]
923928 type , path = sliver .ero .get ()
@@ -939,11 +944,13 @@ def __allocate_services(self, *, rid: ID, inv: NetworkServiceInventory, sliver:
939944 new_path .append (ero_source_end_info [1 ][1 ])
940945
941946 if len (new_path ):
947+ '''
942948 if not self.validate_requested_ero_path(source_node=ero_source_end_info[0][0],
943949 end_node=ero_source_end_info[1][0],
944950 hops=ero_hops):
945951 raise BrokerException(error_code=ExceptionErrorCode.INVALID_ARGUMENT,
946952 msg=f"Requested ERO path: {sliver.ero} is invalid!")
953+ '''
947954 ero_path = Path ()
948955 ero_path .set_symmetric (new_path )
949956 sliver .ero .set (ero_path )
@@ -997,7 +1004,7 @@ def __allocate_peered_interfaces(self, *, rid: ID, peered_interfaces: List[Inter
9971004 ns_type = sliver .get_type ())
9981005 peer_mpls , peer_sw = self .get_network_service_from_graph (node_id = peer_ns_id , parent = True )
9991006
1000- peer_mpls , peer_ns = self .get_ns (switch = peer_sw , ns_type = sliver .get_type ())
1007+ peer_ns = self .get_ns_from_switch (switch = peer_sw , ns_type = sliver .get_type ())
10011008
10021009 bqm_interface = None
10031010 for bifs in owner_mpls .interface_info .interfaces .values ():
@@ -1020,7 +1027,8 @@ def __allocate_peered_interfaces(self, *, rid: ID, peered_interfaces: List[Inter
10201027 pfs .set_node_map (node_map = (self .combined_broker_model_graph_id , bqm_interface .node_id ))
10211028 if pfs .peer_labels is None :
10221029 pfs .peer_labels = Labels ()
1023- pfs .peer_labels = Labels .update (pfs .peer_labels , asn = peer_ns .labels .asn )
1030+ if peer_ns and peer_ns .labels :
1031+ pfs .peer_labels = Labels .update (pfs .peer_labels , asn = peer_ns .labels .asn )
10241032 self .logger .info (f"Allocated Peered Interface Sliver: { pfs } " )
10251033
10261034 # Update the Network Service Sliver Node Map
@@ -1380,16 +1388,6 @@ def get_shortest_path(self, *, src_node_id: str, dest_node_id: str):
13801388 finally :
13811389 self .lock .release ()
13821390
1383- def get_ns (self , * , switch : NodeSliver , ns_type : ServiceType ) -> Tuple [NetworkServiceSliver , NetworkServiceSliver ]:
1384- peer_mpls = peer_ns = None
1385- for ns in switch .network_service_info .network_services .values ():
1386- if ServiceType .MPLS == ns .get_type ():
1387- peer_mpls = ns
1388- if ns .get_type () == ns_type :
1389- peer_ns = ns
1390-
1391- return peer_mpls , peer_ns
1392-
13931391 def get_peer_node (self , * , site : str , node_type : str , node_name : str ) -> NodeSliver :
13941392 if node_type == str (NodeType .Facility ):
13951393 peer_node = self .get_facility_sliver (node_name = f'{ site } ,{ node_name } ' )
0 commit comments