Loading proto/pathcompextended.proto +2 −0 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ service PathCompExtendedService { // Transport Optical Slice rpc CreateTransportOpticalSlice (IetfNetworkSlice) returns (TransportOpticalSlice); rpc DeleteTransportOpticalSlice (UUID) returns (GenericMessage); rpc DeleteAllTransportOpticalSlices (google.protobuf.Empty) returns (GenericMessage); rpc GetTransportOpticalSlices (google.protobuf.Empty) returns (TransportOpticalSlicesResponse); rpc GetTransportOpticalSlice (UUID) returns (TransportOpticalSlice); // Transport Network Slice L3 rpc CreateTransportNetworkSliceL3 (IetfNetworkSlice) returns (TransportNetworkSliceL3); rpc DeleteTransportNetworkSliceL3 (UUID) returns (GenericMessage); rpc DeleteAllTransportNetworkSlicesL3 (google.protobuf.Empty) returns (GenericMessage); rpc GetTransportNetworkSlicesL3 (google.protobuf.Empty) returns (TransportNetworkSlicesL3Response); rpc GetTransportNetworkSliceL3 (UUID) returns (TransportNetworkSliceL3); Loading src/nbi/service/pathcompextended/Resources.py +28 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,20 @@ class TransportOpticalSlice(_Resource): LOGGER.error("Error getting transport optical slices: %s", e, exc_info=True) return {"error": str(e)}, 500 def delete(self): LOGGER.info("Operation DELETE /transport-optical-slice") try: result = self.pathcompextended_client.DeleteAllTransportOpticalSlices(None) LOGGER.debug(grpc_message_to_json_string(result)) if result.ifTrueIsJsonStringified: output = json.loads(result.message) else: output = {"message": result.message} return output, 200 except Exception as e: LOGGER.error("Error deleting all transport optical slices: %s", e, exc_info=True) return {"error": str(e)}, 500 def post(self): LOGGER.info("Operation POST /transport-optical-slice") try: Loading Loading @@ -280,6 +294,20 @@ class TransportNetworkSliceL3(_Resource): LOGGER.error("Error getting transport network slices L3: %s", e, exc_info=True) return {"error": str(e)}, 500 def delete(self): LOGGER.info("Operation DELETE /transport-network-slice-l3") try: result = self.pathcompextended_client.DeleteAllTransportNetworkSlicesL3(None) LOGGER.debug(grpc_message_to_json_string(result)) if result.ifTrueIsJsonStringified: output = json.loads(result.message) else: output = {"message": result.message} return output, 200 except Exception as e: LOGGER.error("Error deleting all transport network slices L3: %s", e, exc_info=True) return {"error": str(e)}, 500 def post(self): LOGGER.info("Operation POST /transport-network-slice-l3") try: Loading src/pathcompextended/client/PathCompExtendedClient.py +18 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,15 @@ class PathCompExtendedClient: LOGGER.debug('DeleteTransportOpticalSlice result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def DeleteAllTransportOpticalSlices(self, request: Empty = None) -> GenericMessage: if request is None: request = Empty() LOGGER.debug('DeleteAllTransportOpticalSlices request') response = self.stub.DeleteAllTransportOpticalSlices(request) LOGGER.debug('DeleteAllTransportOpticalSlices result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def GetTransportOpticalSlices(self, request: Empty = None) -> TransportOpticalSlicesResponse: if request is None: Loading Loading @@ -159,6 +168,15 @@ class PathCompExtendedClient: LOGGER.debug('DeleteTransportNetworkSliceL3 result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def DeleteAllTransportNetworkSlicesL3(self, request: Empty = None) -> GenericMessage: if request is None: request = Empty() LOGGER.debug('DeleteAllTransportNetworkSlicesL3 request') response = self.stub.DeleteAllTransportNetworkSlicesL3(request) LOGGER.debug('DeleteAllTransportNetworkSlicesL3 result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def GetTransportNetworkSlicesL3(self, request: Empty = None) -> TransportNetworkSlicesL3Response: if request is None: Loading src/pathcompextended/service/PathCompExtendedServiceServicerImpl.py +46 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,29 @@ class PathCompExtendedServiceServicerImpl(PathCompExtendedServiceServicer): LOGGER.debug('[DeleteTransportOpticalSlice] end ; reply = {:s}'.format(grpc_message_to_json_string(reply))) return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def DeleteAllTransportOpticalSlices(self, request: ProtoEmpty, context: grpc.ServicerContext) -> GenericMessage: LOGGER.debug('[DeleteAllTransportOpticalSlices] begin') reply = GenericMessage() reply.message = "DeleteAllTransportOpticalSlices not implemented" reply.ifTrueIsJsonStringified = False if is_hrat_enabled() and self._hrat_client: try: LOGGER.debug("Deleting all transport optical slices on H-RAT") with self._lock: hrat_response = self._hrat_client.delete_all_transport_optical_slices() payload = hrat_response.model_dump(by_alias=True) reply.message = json.dumps(payload) reply.ifTrueIsJsonStringified = True except Exception as e: LOGGER.error('[DeleteAllTransportOpticalSlices] Error deleting on H-RAT: {:s}'.format(str(e))) raise LOGGER.debug('[DeleteAllTransportOpticalSlices] end') return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetTransportOpticalSlices(self, request: ProtoEmpty, context: grpc.ServicerContext) -> TransportOpticalSlicesResponse: LOGGER.debug('[GetTransportOpticalSlices] begin') Loading Loading @@ -442,6 +465,29 @@ class PathCompExtendedServiceServicerImpl(PathCompExtendedServiceServicer): LOGGER.debug('[DeleteTransportNetworkSliceL3] end ; reply = {:s}'.format(grpc_message_to_json_string(reply))) return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def DeleteAllTransportNetworkSlicesL3(self, request: ProtoEmpty, context: grpc.ServicerContext) -> GenericMessage: LOGGER.debug('[DeleteAllTransportNetworkSlicesL3] begin') reply = GenericMessage() reply.message = "DeleteAllTransportNetworkSlicesL3 not implemented" reply.ifTrueIsJsonStringified = False if is_hrat_enabled() and self._hrat_client: try: LOGGER.debug("Deleting all transport network slices L3 on H-RAT") with self._lock: hrat_response = self._hrat_client.delete_all_transport_network_slices_l3() payload = hrat_response.model_dump(by_alias=True) reply.message = json.dumps(payload) reply.ifTrueIsJsonStringified = True except Exception as e: LOGGER.error('[DeleteAllTransportNetworkSlicesL3] Error deleting on H-RAT: {:s}'.format(str(e))) raise LOGGER.debug('[DeleteAllTransportNetworkSlicesL3] end') return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetTransportNetworkSlicesL3(self, request: ProtoEmpty, context: grpc.ServicerContext) -> TransportNetworkSlicesL3Response: LOGGER.debug('[GetTransportNetworkSlicesL3] begin') Loading Loading
proto/pathcompextended.proto +2 −0 Original line number Diff line number Diff line Loading @@ -34,12 +34,14 @@ service PathCompExtendedService { // Transport Optical Slice rpc CreateTransportOpticalSlice (IetfNetworkSlice) returns (TransportOpticalSlice); rpc DeleteTransportOpticalSlice (UUID) returns (GenericMessage); rpc DeleteAllTransportOpticalSlices (google.protobuf.Empty) returns (GenericMessage); rpc GetTransportOpticalSlices (google.protobuf.Empty) returns (TransportOpticalSlicesResponse); rpc GetTransportOpticalSlice (UUID) returns (TransportOpticalSlice); // Transport Network Slice L3 rpc CreateTransportNetworkSliceL3 (IetfNetworkSlice) returns (TransportNetworkSliceL3); rpc DeleteTransportNetworkSliceL3 (UUID) returns (GenericMessage); rpc DeleteAllTransportNetworkSlicesL3 (google.protobuf.Empty) returns (GenericMessage); rpc GetTransportNetworkSlicesL3 (google.protobuf.Empty) returns (TransportNetworkSlicesL3Response); rpc GetTransportNetworkSliceL3 (UUID) returns (TransportNetworkSliceL3); Loading
src/nbi/service/pathcompextended/Resources.py +28 −0 Original line number Diff line number Diff line Loading @@ -206,6 +206,20 @@ class TransportOpticalSlice(_Resource): LOGGER.error("Error getting transport optical slices: %s", e, exc_info=True) return {"error": str(e)}, 500 def delete(self): LOGGER.info("Operation DELETE /transport-optical-slice") try: result = self.pathcompextended_client.DeleteAllTransportOpticalSlices(None) LOGGER.debug(grpc_message_to_json_string(result)) if result.ifTrueIsJsonStringified: output = json.loads(result.message) else: output = {"message": result.message} return output, 200 except Exception as e: LOGGER.error("Error deleting all transport optical slices: %s", e, exc_info=True) return {"error": str(e)}, 500 def post(self): LOGGER.info("Operation POST /transport-optical-slice") try: Loading Loading @@ -280,6 +294,20 @@ class TransportNetworkSliceL3(_Resource): LOGGER.error("Error getting transport network slices L3: %s", e, exc_info=True) return {"error": str(e)}, 500 def delete(self): LOGGER.info("Operation DELETE /transport-network-slice-l3") try: result = self.pathcompextended_client.DeleteAllTransportNetworkSlicesL3(None) LOGGER.debug(grpc_message_to_json_string(result)) if result.ifTrueIsJsonStringified: output = json.loads(result.message) else: output = {"message": result.message} return output, 200 except Exception as e: LOGGER.error("Error deleting all transport network slices L3: %s", e, exc_info=True) return {"error": str(e)}, 500 def post(self): LOGGER.info("Operation POST /transport-network-slice-l3") try: Loading
src/pathcompextended/client/PathCompExtendedClient.py +18 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,15 @@ class PathCompExtendedClient: LOGGER.debug('DeleteTransportOpticalSlice result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def DeleteAllTransportOpticalSlices(self, request: Empty = None) -> GenericMessage: if request is None: request = Empty() LOGGER.debug('DeleteAllTransportOpticalSlices request') response = self.stub.DeleteAllTransportOpticalSlices(request) LOGGER.debug('DeleteAllTransportOpticalSlices result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def GetTransportOpticalSlices(self, request: Empty = None) -> TransportOpticalSlicesResponse: if request is None: Loading Loading @@ -159,6 +168,15 @@ class PathCompExtendedClient: LOGGER.debug('DeleteTransportNetworkSliceL3 result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def DeleteAllTransportNetworkSlicesL3(self, request: Empty = None) -> GenericMessage: if request is None: request = Empty() LOGGER.debug('DeleteAllTransportNetworkSlicesL3 request') response = self.stub.DeleteAllTransportNetworkSlicesL3(request) LOGGER.debug('DeleteAllTransportNetworkSlicesL3 result: {:s}'.format(grpc_message_to_json_string(response))) return response @RETRY_DECORATOR def GetTransportNetworkSlicesL3(self, request: Empty = None) -> TransportNetworkSlicesL3Response: if request is None: Loading
src/pathcompextended/service/PathCompExtendedServiceServicerImpl.py +46 −0 Original line number Diff line number Diff line Loading @@ -304,6 +304,29 @@ class PathCompExtendedServiceServicerImpl(PathCompExtendedServiceServicer): LOGGER.debug('[DeleteTransportOpticalSlice] end ; reply = {:s}'.format(grpc_message_to_json_string(reply))) return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def DeleteAllTransportOpticalSlices(self, request: ProtoEmpty, context: grpc.ServicerContext) -> GenericMessage: LOGGER.debug('[DeleteAllTransportOpticalSlices] begin') reply = GenericMessage() reply.message = "DeleteAllTransportOpticalSlices not implemented" reply.ifTrueIsJsonStringified = False if is_hrat_enabled() and self._hrat_client: try: LOGGER.debug("Deleting all transport optical slices on H-RAT") with self._lock: hrat_response = self._hrat_client.delete_all_transport_optical_slices() payload = hrat_response.model_dump(by_alias=True) reply.message = json.dumps(payload) reply.ifTrueIsJsonStringified = True except Exception as e: LOGGER.error('[DeleteAllTransportOpticalSlices] Error deleting on H-RAT: {:s}'.format(str(e))) raise LOGGER.debug('[DeleteAllTransportOpticalSlices] end') return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetTransportOpticalSlices(self, request: ProtoEmpty, context: grpc.ServicerContext) -> TransportOpticalSlicesResponse: LOGGER.debug('[GetTransportOpticalSlices] begin') Loading Loading @@ -442,6 +465,29 @@ class PathCompExtendedServiceServicerImpl(PathCompExtendedServiceServicer): LOGGER.debug('[DeleteTransportNetworkSliceL3] end ; reply = {:s}'.format(grpc_message_to_json_string(reply))) return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def DeleteAllTransportNetworkSlicesL3(self, request: ProtoEmpty, context: grpc.ServicerContext) -> GenericMessage: LOGGER.debug('[DeleteAllTransportNetworkSlicesL3] begin') reply = GenericMessage() reply.message = "DeleteAllTransportNetworkSlicesL3 not implemented" reply.ifTrueIsJsonStringified = False if is_hrat_enabled() and self._hrat_client: try: LOGGER.debug("Deleting all transport network slices L3 on H-RAT") with self._lock: hrat_response = self._hrat_client.delete_all_transport_network_slices_l3() payload = hrat_response.model_dump(by_alias=True) reply.message = json.dumps(payload) reply.ifTrueIsJsonStringified = True except Exception as e: LOGGER.error('[DeleteAllTransportNetworkSlicesL3] Error deleting on H-RAT: {:s}'.format(str(e))) raise LOGGER.debug('[DeleteAllTransportNetworkSlicesL3] end') return reply @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetTransportNetworkSlicesL3(self, request: ProtoEmpty, context: grpc.ServicerContext) -> TransportNetworkSlicesL3Response: LOGGER.debug('[GetTransportNetworkSlicesL3] begin') Loading