Loading src/nbi/service/pathcompextended/Resources.py +11 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,17 @@ class Health(_Resource): class Reset(_Resource): def post(self): LOGGER.info("Operation POST /reset") # TODO: implement try: result = self.pathcompextended_client.Reset(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 resetting: %s", e, exc_info=True) return {"error": str(e)}, 500 # ---------------------------------------------------------------------------------- # # -- NetworkContext ---------------------------------------------------------------- # Loading src/nbi/service/pathcompextended/__init__.py +6 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from .Resources import ( NetworkContext, NetworkContextDetails, Health, Reset, TransportOpticalSlice, TransportOpticalSliceDetails, TransportNetworkSliceL3, Loading Loading @@ -47,6 +48,11 @@ def register_pathcompextended(nbi_app : NbiApplication): URL_PREFIX + '/health', endpoint='pathcompextended.health' ) nbi_app.add_rest_api_resource( Reset, URL_PREFIX + '/reset', endpoint='pathcompextended.reset' ) nbi_app.add_rest_api_resource( TransportOpticalSlice, URL_PREFIX + '/transport-optical-slice', Loading src/pathcompextended/connector/general.py +14 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ from pathcompextended.schemas.common import ( HealthCheckGetResponse, ExternalKpisPostRequest, ExternalKpisPostResponse, ResetPostResponse, ) LOGGER = logging.getLogger(__name__) Loading Loading @@ -103,3 +104,16 @@ class GeneralAPI: LOGGER.warning("Failed to parse KPIs response: %s", exc) return ExternalKpisPostResponse(message=res.text) def post_reset(self) -> ResetPostResponse: """ Reset H-RAT context (clears all topologies, slices, etc.). """ LOGGER.debug("Resetting H-RAT context") endpoint = f"{self._base_api_url}/reset" res = self._api.post(endpoint, {}) if res.status_code != 200: LOGGER.error("Failed to reset H-RAT: %s - %s", res.status_code, res.text) res.raise_for_status() LOGGER.debug("Response from HRAT reset: %s - %s", res.status_code, res.text) return ResetPostResponse(**res.json()) src/pathcompextended/connector/hrat.py +10 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,16 @@ class HRAT: """ return self.transport_network_slice_l3_api.delete_all_transport_network_slices_l3() # ======================================================================== # RESET # ======================================================================== def reset(self): """ Wrapper around GeneralAPI.post_reset. """ return self.general_api.post_reset() # ======================================================================== # HEALTH CHECK METHODS # ======================================================================== Loading src/pathcompextended/example/reset/post/response.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "message": "H-RAT context reset successfully", "status": "ok" } No newline at end of file Loading
src/nbi/service/pathcompextended/Resources.py +11 −2 Original line number Diff line number Diff line Loading @@ -58,8 +58,17 @@ class Health(_Resource): class Reset(_Resource): def post(self): LOGGER.info("Operation POST /reset") # TODO: implement try: result = self.pathcompextended_client.Reset(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 resetting: %s", e, exc_info=True) return {"error": str(e)}, 500 # ---------------------------------------------------------------------------------- # # -- NetworkContext ---------------------------------------------------------------- # Loading
src/nbi/service/pathcompextended/__init__.py +6 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ from .Resources import ( NetworkContext, NetworkContextDetails, Health, Reset, TransportOpticalSlice, TransportOpticalSliceDetails, TransportNetworkSliceL3, Loading Loading @@ -47,6 +48,11 @@ def register_pathcompextended(nbi_app : NbiApplication): URL_PREFIX + '/health', endpoint='pathcompextended.health' ) nbi_app.add_rest_api_resource( Reset, URL_PREFIX + '/reset', endpoint='pathcompextended.reset' ) nbi_app.add_rest_api_resource( TransportOpticalSlice, URL_PREFIX + '/transport-optical-slice', Loading
src/pathcompextended/connector/general.py +14 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ from pathcompextended.schemas.common import ( HealthCheckGetResponse, ExternalKpisPostRequest, ExternalKpisPostResponse, ResetPostResponse, ) LOGGER = logging.getLogger(__name__) Loading Loading @@ -103,3 +104,16 @@ class GeneralAPI: LOGGER.warning("Failed to parse KPIs response: %s", exc) return ExternalKpisPostResponse(message=res.text) def post_reset(self) -> ResetPostResponse: """ Reset H-RAT context (clears all topologies, slices, etc.). """ LOGGER.debug("Resetting H-RAT context") endpoint = f"{self._base_api_url}/reset" res = self._api.post(endpoint, {}) if res.status_code != 200: LOGGER.error("Failed to reset H-RAT: %s - %s", res.status_code, res.text) res.raise_for_status() LOGGER.debug("Response from HRAT reset: %s - %s", res.status_code, res.text) return ResetPostResponse(**res.json())
src/pathcompextended/connector/hrat.py +10 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,16 @@ class HRAT: """ return self.transport_network_slice_l3_api.delete_all_transport_network_slices_l3() # ======================================================================== # RESET # ======================================================================== def reset(self): """ Wrapper around GeneralAPI.post_reset. """ return self.general_api.post_reset() # ======================================================================== # HEALTH CHECK METHODS # ======================================================================== Loading
src/pathcompextended/example/reset/post/response.json 0 → 100644 +4 −0 Original line number Diff line number Diff line { "message": "H-RAT context reset successfully", "status": "ok" } No newline at end of file