CSAR validation return type removed 21/14721/1
authoraravind.est <aravindhan.a@est.tech>
Tue, 15 Jul 2025 11:55:26 +0000 (12:55 +0100)
committeraravind.est <aravindhan.a@est.tech>
Tue, 15 Jul 2025 11:56:59 +0000 (12:56 +0100)
CSAR validation errors are thrown as part of exception, so the return type has been removed

Issue-ID: NONRTRIC-1080
Change-Id: Ie4f95451f32ae3af485554aa8b600e302d566931
Signed-off-by: aravind.est <aravindhan.a@est.tech>
rapp-manager-application/src/main/java/org/oransc/rappmanager/rest/RappController.java
rapp-manager-models/src/main/java/org/oransc/rappmanager/models/csar/validator/RappValidationHandler.java
rapp-manager-models/src/test/java/org/oransc/rappmanager/models/csar/validator/RappValidationHandlerTest.java

index a8335f6..3af2bd9 100644 (file)
@@ -79,27 +79,19 @@ public class RappController {
     @PostMapping("{rapp_id}")
     public ResponseEntity<Rapp> createRapp(@PathVariable("rapp_id") String rappId,
             @Valid @RequestPart("file") MultipartFile csarFilePart) throws IOException {
-        if (rappValidationHandler.isValidRappPackage(csarFilePart)) {
-            File csarFile = new File(
-                    rappCsarConfigurationHandler.getRappPackageLocation(rappManagerConfiguration.getCsarLocation(),
-                            rappId, csarFilePart.getOriginalFilename()).toUri());
-            csarFile.getParentFile().mkdirs();
-            Files.copy(csarFilePart.getInputStream(), csarFile.getAbsoluteFile().toPath(),
-                    StandardCopyOption.REPLACE_EXISTING);
-            Rapp rapp = Rapp.builder().name(rappId).packageLocation(rappManagerConfiguration.getCsarLocation())
-                                .packageName(csarFile.getName()).state(RappState.COMMISSIONED).build();
-            rapp.setRappResources(rappCsarConfigurationHandler.getRappResource(rapp));
-            rapp.setAsdMetadata(rappCsarConfigurationHandler.getAsdMetadata(rapp));
-            rappCacheService.putRapp(rapp);
-            return ResponseEntity.accepted().build();
-        } else {
-            if (rappId == null) {
-                logger.info("Invalid Rapp package with null rAppId");
-            } else {
-                logger.info("Invalid Rapp package for {}", rappId);
-            }
-            throw new RappHandlerException(HttpStatus.BAD_REQUEST, "Invalid rApp package.");
-        }
+        rappValidationHandler.isValidRappPackage(csarFilePart);
+        File csarFile = new File(
+                rappCsarConfigurationHandler.getRappPackageLocation(rappManagerConfiguration.getCsarLocation(), rappId,
+                        csarFilePart.getOriginalFilename()).toUri());
+        csarFile.getParentFile().mkdirs();
+        Files.copy(csarFilePart.getInputStream(), csarFile.getAbsoluteFile().toPath(),
+                StandardCopyOption.REPLACE_EXISTING);
+        Rapp rapp = Rapp.builder().name(rappId).packageLocation(rappManagerConfiguration.getCsarLocation())
+                            .packageName(csarFile.getName()).state(RappState.COMMISSIONED).build();
+        rapp.setRappResources(rappCsarConfigurationHandler.getRappResource(rapp));
+        rapp.setAsdMetadata(rappCsarConfigurationHandler.getAsdMetadata(rapp));
+        rappCacheService.putRapp(rapp);
+        return ResponseEntity.accepted().build();
     }
 
     @PutMapping("{rapp_id}")
index f44ed92..d3fb54a 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START======================================================================
- * Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved.
  * ===============================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,10 +31,9 @@ public class RappValidationHandler {
 
     private final List<RappValidator> rappValidators;
 
-    public boolean isValidRappPackage(MultipartFile multipartFile) {
+    public void isValidRappPackage(MultipartFile multipartFile) {
         List<RappValidator> validatorList =
                 rappValidators.stream().sorted(Comparator.comparing(RappValidator::getOrder)).toList();
         validatorList.forEach(rappValidator -> rappValidator.validate(multipartFile, null));
-        return true;
     }
 }
index 7325747..e6b46b3 100644 (file)
@@ -19,6 +19,7 @@
 
 package org.oransc.rappmanager.models.csar.validator;
 
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.mock;
@@ -63,7 +64,7 @@ class RappValidationHandlerTest {
         MultipartFile multipartFile =
                 new MockMultipartFile(rappCsarPath, rappCsarPath, ContentType.MULTIPART_FORM_DATA.getMimeType(),
                         new FileInputStream(rappCsarPath));
-        assertEquals(Boolean.TRUE, rappValidationHandler.isValidRappPackage(multipartFile));
+        assertDoesNotThrow(() -> rappValidationHandler.isValidRappPackage(multipartFile));
     }
 
     @ParameterizedTest