fix-sonar-complaints
[portal/ric-dashboard.git] / dashboard / webapp-backend / src / main / java / org / oransc / ric / portal / dashboard / controller / AppManagerController.java
index 0a9d0c8..47e6868 100644 (file)
@@ -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<String> 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<String> 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<String> 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);
        }
 
 }