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%2FAppManagerController.java;h=47e68686eb0dfd7e0416f54b8703fa9d013f0d24;hb=848677173191182d46aa22ab83bee0de84999a81;hp=0a9d0c80a4356ec66b3980ce9b9749bab61cbe30;hpb=64a5e9470799236f0af4ce2df98f77c94eb1bed3;p=portal%2Fric-dashboard.git diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java index 0a9d0c80..47e68686 100644 --- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java +++ b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/AppManagerController.java @@ -21,30 +21,30 @@ package org.oransc.ric.portal.dashboard.controller; import java.lang.invoke.MethodHandles; -import javax.servlet.http.HttpServletResponse; - -import org.oransc.ric.plt.appmgr.client.api.HealthApi; -import org.oransc.ric.plt.appmgr.client.api.XappApi; -import org.oransc.ric.plt.appmgr.client.model.AllDeployableXapps; -import org.oransc.ric.plt.appmgr.client.model.AllDeployedXapps; -import org.oransc.ric.plt.appmgr.client.model.AllXappConfig; -import org.oransc.ric.plt.appmgr.client.model.ConfigValidationErrors; -import org.oransc.ric.plt.appmgr.client.model.XAppConfig; -import org.oransc.ric.plt.appmgr.client.model.Xapp; -import org.oransc.ric.plt.appmgr.client.model.XappDescriptor; import org.oransc.ric.portal.dashboard.DashboardApplication; import org.oransc.ric.portal.dashboard.DashboardConstants; import org.oransc.ric.portal.dashboard.config.AppManagerApiBuilder; import org.oransc.ric.portal.dashboard.model.AppTransport; import org.oransc.ric.portal.dashboard.model.DashboardDeployableXapps; import org.oransc.ric.portal.dashboard.model.SuccessTransport; +import org.oransc.ricplt.appmgr.client.api.HealthApi; +import org.oransc.ricplt.appmgr.client.api.XappApi; +import org.oransc.ricplt.appmgr.client.model.AllDeployableXapps; +import org.oransc.ricplt.appmgr.client.model.AllDeployedXapps; +import org.oransc.ricplt.appmgr.client.model.AllXappConfig; +import org.oransc.ricplt.appmgr.client.model.ConfigValidationErrors; +import org.oransc.ricplt.appmgr.client.model.XAppConfig; +import org.oransc.ricplt.appmgr.client.model.Xapp; +import org.oransc.ricplt.appmgr.client.model.XappDescriptor; 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.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -59,10 +59,9 @@ import io.swagger.annotations.ApiOperation; /** * Proxies calls from the front end to the App 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 @@ -108,24 +107,23 @@ public class AppManagerController { @GetMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" + HEALTH_ALIVE_METHOD) // No role required - public void getHealth(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - HttpServletResponse response) { + public ResponseEntity getHealth(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey) { logger.debug("getHealthAlive instance {}", instanceKey); HealthApi api = appManagerApiBuilder.getHealthApi(instanceKey); api.getHealthAlive(); - response.setStatus(api.getApiClient().getStatusCode().value()); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } @ApiOperation(value = "Readiness check of App Manager - Readiness probe.") @GetMapping(DashboardConstants.RIC_INSTANCE_KEY + "/{" + DashboardConstants.RIC_INSTANCE_KEY + "}/" + HEALTH_READY_METHOD) // No role required - public void getHealthReady(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - HttpServletResponse response) { + public ResponseEntity getHealthReady( + @PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey) { logger.debug("getHealthReady instance {}", instanceKey); HealthApi api = appManagerApiBuilder.getHealthApi(instanceKey); api.getHealthReady(); - response.setStatus(api.getApiClient().getStatusCode().value()); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } @ApiOperation(value = "Returns the configuration of all Xapps.", response = AllXappConfig.class) @@ -140,7 +138,8 @@ public class AppManagerController { @PutMapping(CONFIG_METHOD_PATH) @Secured({ DashboardConstants.ROLE_ADMIN }) public ConfigValidationErrors modifyXappConfig( - @PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, @RequestBody XAppConfig xAppConfig) { + @PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, // + @Validated @RequestBody XAppConfig xAppConfig) { logger.debug("modifyXappConfig instance {} config {}", instanceKey, xAppConfig); return appManagerApiBuilder.getXappApi(instanceKey).modifyXappConfig(xAppConfig); } @@ -182,8 +181,8 @@ public class AppManagerController { @ApiOperation(value = "Deploy a xapp.", response = Xapp.class) @PostMapping(XAPPS_METHOD_PATH) @Secured({ DashboardConstants.ROLE_ADMIN }) - public Xapp deployXapp(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - @RequestBody XappDescriptor appDescriptor) { + public Xapp deployXapp(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, // + @Validated @RequestBody XappDescriptor appDescriptor) { logger.debug("deployXapp instance {} descriptor {}", instanceKey, appDescriptor); return appManagerApiBuilder.getXappApi(instanceKey).deployXapp(appDescriptor); } @@ -191,12 +190,12 @@ public class AppManagerController { @ApiOperation(value = "Undeploy an existing xapp.") @DeleteMapping(XAPPS_METHOD_PATH + "/{" + PP_XAPP_NAME + "}") @Secured({ DashboardConstants.ROLE_ADMIN }) - public void undeployXapp(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, - @PathVariable(PP_XAPP_NAME) String appName, HttpServletResponse response) { + public ResponseEntity undeployXapp(@PathVariable(DashboardConstants.RIC_INSTANCE_KEY) String instanceKey, + @PathVariable(PP_XAPP_NAME) String appName) { logger.debug("undeployXapp instance {} name {}", instanceKey, appName); XappApi api = appManagerApiBuilder.getXappApi(instanceKey); api.undeployXapp(appName); - response.setStatus(api.getApiClient().getStatusCode().value()); + return ResponseEntity.status(api.getApiClient().getStatusCode().value()).body(null); } }