X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=rapp-manager-application%2Fsrc%2Fmain%2Fjava%2Fcom%2Foransc%2Frappmanager%2Frest%2FRappController.java;h=287e2972f314ffa6a34e7f569c454d42c10ac6d8;hb=b5c6c711f527ccf4a288457fb7168cbbf7399f24;hp=7bef1f11f0b576f508a7e540c44c12d1a0e94dc5;hpb=a071d6befe8d38a5e589dffbbf1dc3904ff3aa79;p=nonrtric%2Fplt%2Frappmanager.git diff --git a/rapp-manager-application/src/main/java/com/oransc/rappmanager/rest/RappController.java b/rapp-manager-application/src/main/java/com/oransc/rappmanager/rest/RappController.java index 7bef1f1..287e297 100755 --- a/rapp-manager-application/src/main/java/com/oransc/rappmanager/rest/RappController.java +++ b/rapp-manager-application/src/main/java/com/oransc/rappmanager/rest/RappController.java @@ -21,6 +21,7 @@ package com.oransc.rappmanager.rest; import com.oransc.rappmanager.configuration.RappManagerConfiguration; import com.oransc.rappmanager.models.cache.RappCacheService; import com.oransc.rappmanager.models.csar.RappCsarConfigurationHandler; +import com.oransc.rappmanager.models.exception.RappHandlerException; import com.oransc.rappmanager.models.rapp.PrimeOrder; import com.oransc.rappmanager.models.rapp.Rapp; import com.oransc.rappmanager.models.rapp.RappPrimeOrder; @@ -30,11 +31,12 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.StandardCopyOption; +import java.util.Collection; import java.util.Optional; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cache.Cache; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -57,15 +59,17 @@ public class RappController { private final RappManagerConfiguration rappManagerConfiguration; private final RappCacheService rappCacheService; private final RappService rappService; + private static final String RAPP_NOT_FOUND = "rApp %s not found."; @GetMapping - public ResponseEntity getRapps() { + public ResponseEntity> getRapps() { return ResponseEntity.ok(rappCacheService.getAllRapp()); } @GetMapping("{rapp_id}") public ResponseEntity getRapp(@PathVariable("rapp_id") String rappId) { - return rappCacheService.getRapp(rappId).map(ResponseEntity::ok).orElse(ResponseEntity.badRequest().build()); + return rappCacheService.getRapp(rappId).map(ResponseEntity::ok).orElseThrow( + () -> new RappHandlerException(HttpStatus.NOT_FOUND, String.format(RAPP_NOT_FOUND, rappId))); } @PostMapping("{rapp_id}") @@ -85,7 +89,7 @@ public class RappController { return ResponseEntity.accepted().build(); } else { logger.info("Invalid Rapp package for {}", rappId); - return ResponseEntity.badRequest().build(); + throw new RappHandlerException(HttpStatus.BAD_REQUEST, "Invalid rApp package."); } } @@ -98,20 +102,18 @@ public class RappController { .filter(primeOrder -> primeOrder.equals(PrimeOrder.PRIME)) .map(primeOrder -> rappService.primeRapp(rapp)) .orElseGet(() -> rappService.deprimeRapp(rapp))) - .orElse(ResponseEntity.notFound().build()); + .orElseThrow(() -> new RappHandlerException(HttpStatus.NOT_FOUND, + String.format(RAPP_NOT_FOUND, rappId))); // @formatter:on } @DeleteMapping("{rapp_id}") - public ResponseEntity deleteRapp(@PathVariable("rapp_id") String rappId) { + public ResponseEntity deleteRapp(@PathVariable("rapp_id") String rappId) { // @formatter:off return rappCacheService.getRapp(rappId) - .filter(rapp -> rapp.getRappInstances().isEmpty() && rapp.getState().equals(RappState.COMMISSIONED)) - .map(rapp -> { - rappCacheService.deleteRapp(rapp); - return ResponseEntity.ok().build(); - }) - .orElse(ResponseEntity.notFound().build()); + .map(rappService::deleteRapp) + .orElseThrow(() -> new RappHandlerException(HttpStatus.NOT_FOUND, + String.format(RAPP_NOT_FOUND, rappId))); // @formatter:on } }