X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dashboard%2Fwebapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fcontroller%2FE2ManagerController.java;h=06cbc6b7fd914ceeeab30f386a7f5e56cc756d3b;hb=329b53efb578dd41a6de31eafd5f228f3f10987c;hp=749ecaeb28206623949c3b2b62feb15d6518d4cf;hpb=64a5e9470799236f0af4ce2df98f77c94eb1bed3;p=portal%2Fric-dashboard.git diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java index 749ecaeb..06cbc6b7 100644 --- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java +++ b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java @@ -23,29 +23,29 @@ import java.lang.invoke.MethodHandles; import java.util.ArrayList; import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import org.oransc.ric.e2mgr.client.api.HealthCheckApi; -import org.oransc.ric.e2mgr.client.api.NodebApi; -import org.oransc.ric.e2mgr.client.model.GetNodebResponse; -import org.oransc.ric.e2mgr.client.model.NodebIdentity; -import org.oransc.ric.e2mgr.client.model.ResetRequest; -import org.oransc.ric.e2mgr.client.model.SetupRequest; +import javax.validation.Valid; + import org.oransc.ric.portal.dashboard.DashboardApplication; import org.oransc.ric.portal.dashboard.DashboardConstants; import org.oransc.ric.portal.dashboard.config.E2ManagerApiBuilder; import org.oransc.ric.portal.dashboard.model.RanDetailsTransport; import org.oransc.ric.portal.dashboard.model.SuccessTransport; +import org.oransc.ricplt.e2mgr.client.api.HealthCheckApi; +import org.oransc.ricplt.e2mgr.client.api.NodebApi; +import org.oransc.ricplt.e2mgr.client.model.GetNodebResponse; +import org.oransc.ricplt.e2mgr.client.model.NodebIdentity; +import org.oransc.ricplt.e2mgr.client.model.UpdateGnbRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.security.access.annotation.Secured; import org.springframework.util.Assert; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -57,10 +57,9 @@ import io.swagger.annotations.ApiOperation; /** * Proxies calls from the front end to the E2 Manager API. * - * If a method throws RestClientResponseException, it is handled by - * {@link CustomResponseEntityExceptionHandler#handleProxyMethodException(Exception, org.springframework.web.context.request.WebRequest)} - * which returns status 502. All other exceptions are handled by Spring which - * returns status 500. + * If a method throws RestClientResponseException, it is handled by a method in + * {@link CustomResponseEntityExceptionHandler} which returns status 502. All + * other exceptions are handled by Spring which returns status 500. */ @Configuration @RestController @@ -78,10 +77,6 @@ public class E2ManagerController { public static final String RAN_METHOD = NODEB_PREFIX + "/ran"; public static final String NODEB_SHUTDOWN_METHOD = NODEB_PREFIX + "/shutdown"; public static final String NODEB_LIST_METHOD = NODEB_PREFIX + "/ids"; - public static final String ENDC_SETUP_METHOD = NODEB_PREFIX + "/endc-setup"; - public static final String X2_SETUP_METHOD = NODEB_PREFIX + "/x2-setup"; - // Reset uses prefix, adds a path parameter below - public static final String RESET_METHOD = "reset"; // Path parameters private static final String PP_RANNAME = "ranName"; @@ -106,12 +101,11 @@ public class E2ManagerController { @ApiOperation(value = "Gets the health from the E2 manager, expressed as the response code.") @GetMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" + HEALTH_METHOD) // No role required - public void healthGet(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - HttpServletResponse response) { + public ResponseEntity healthGet(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey) { logger.debug("healthGet instance {}", instanceKey); HealthCheckApi api = e2ManagerApiBuilder.getHealthCheckApi(instanceKey); api.healthGet(); - response.setStatus(api.getApiClient().getStatusCode().value()); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } // This calls other methods to simplify the task of the front-end. @@ -159,53 +153,29 @@ public class E2ManagerController { return e2ManagerApiBuilder.getNodebApi(instanceKey).getNb(ranName); } - @ApiOperation(value = "Sets up an EN-DC RAN connection via the E2 manager.") - @PostMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" - + ENDC_SETUP_METHOD) - @Secured({ DashboardConstants.ROLE_ADMIN }) - public void endcSetup(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - @RequestBody SetupRequest setupRequest, HttpServletResponse response) { - logger.debug("endcSetup instance {} request {}", instanceKey, setupRequest); - NodebApi api = e2ManagerApiBuilder.getNodebApi(instanceKey); - api.endcSetup(setupRequest); - response.setStatus(api.getApiClient().getStatusCode().value()); - } - - @ApiOperation(value = "Sets up an X2 RAN connection via the E2 manager.") - @PostMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" - + X2_SETUP_METHOD) - @Secured({ DashboardConstants.ROLE_ADMIN }) - public void x2Setup(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - @RequestBody SetupRequest setupRequest, HttpServletResponse response) { - logger.debug("x2Setup instance {} request {}", instanceKey, setupRequest); - NodebApi api = e2ManagerApiBuilder.getNodebApi(instanceKey); - api.x2Setup(setupRequest); - response.setStatus(api.getApiClient().getStatusCode().value()); - } - @ApiOperation(value = "Close all connections to the RANs and delete the data from the nodeb-rnib DB.") @PutMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" + NODEB_SHUTDOWN_METHOD) @Secured({ DashboardConstants.ROLE_ADMIN }) - public void nodebShutdownPut(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - HttpServletResponse response) { + public ResponseEntity nodebShutdownPut( + @PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey) { logger.debug("nodebShutdownPut instance {}", instanceKey); NodebApi api = e2ManagerApiBuilder.getNodebApi(instanceKey); api.nodebShutdownPut(); - response.setStatus(api.getApiClient().getStatusCode().value()); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } - @ApiOperation(value = "Abort any other ongoing procedures over X2 between the RIC and the RAN.") + @ApiOperation(value = "Update GNB.") @PutMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" + NODEB_PREFIX - + "/{" + PP_RANNAME + "}/" + RESET_METHOD) + + "/{" + PP_RANNAME + "}") @Secured({ DashboardConstants.ROLE_ADMIN }) - public void reset(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - @PathVariable(PP_RANNAME) String ranName, @RequestBody ResetRequest resetRequest, - HttpServletResponse response) { - logger.debug("reset instance {} name {}", instanceKey, ranName); + public ResponseEntity updateGnb(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, + @PathVariable(PP_RANNAME) String ranName, // + @Valid @Validated @RequestBody UpdateGnbRequest updateGnbRequest) { + logger.debug("updateGnb instance {} ran {}", instanceKey, ranName); NodebApi api = e2ManagerApiBuilder.getNodebApi(instanceKey); - api.reset(ranName, resetRequest); - response.setStatus(api.getApiClient().getStatusCode().value()); + api.updateGnb(updateGnbRequest, ranName); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } }