Merge changes I26e0d43f,I9db62b54
authorAravindhan Ayyanathan <aravindhan.a@est.tech>
Mon, 26 Feb 2024 11:15:01 +0000 (11:15 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Mon, 26 Feb 2024 11:15:01 +0000 (11:15 +0000)
* changes:
  Uplift spring boot version
  Move the rApp to COMMISSIONED state when chart upload fails

participants/pom.xml
pom.xml
rapp-manager-application/src/main/java/com/oransc/rappmanager/service/RappService.java
rapp-manager-application/src/test/java/com/oransc/rappmanager/service/RappServiceTest.java

index 7bf4f7d..5d3a73a 100755 (executable)
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
         <relativePath/>
     </parent>
     <groupId>org.o-ran-sc.nonrtric.plt</groupId>
diff --git a/pom.xml b/pom.xml
index 033c2ed..b772daa 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.2.2</version>
+        <version>3.2.3</version>
     </parent>
     <groupId>org.o-ran-sc.nonrtric.plt</groupId>
     <artifactId>rappmanager</artifactId>
index 23ab2d8..d704480 100755 (executable)
@@ -23,6 +23,7 @@ import com.oransc.rappmanager.acm.service.AcmDeployer;
 import com.oransc.rappmanager.models.RappDeployer;
 import com.oransc.rappmanager.models.cache.RappCacheService;
 import com.oransc.rappmanager.models.exception.RappHandlerException;
+import com.oransc.rappmanager.models.exception.RappValidationException;
 import com.oransc.rappmanager.models.rapp.Rapp;
 import com.oransc.rappmanager.models.rapp.RappEvent;
 import com.oransc.rappmanager.models.rapp.RappState;
@@ -51,14 +52,19 @@ public class RappService {
         if (rapp.getState().equals(RappState.COMMISSIONED)) {
             rapp.setState(RappState.PRIMING);
             rapp.setReason(null);
-            //Configuring the deployment artifact needs to be done before starting the priming with other components
-            //If there are additional conditions needs to be checked before priming, This needs handled as part of pre-priming stage.
-            if (deploymentArtifactsService.configureDeploymentArtifacts(rapp) && rappDeployers.parallelStream()
-                                                                                         .allMatch(
-                                                                                                 rappDeployer -> rappDeployer.primeRapp(
-                                                                                                         rapp))) {
-                rapp.setState(RappState.PRIMED);
-                return ResponseEntity.ok().build();
+            try {
+                //Configuring the deployment artifact needs to be done before starting the priming with other components
+                //If there are additional conditions needs to be checked before priming, This needs handled as part of pre-priming stage.
+                if (deploymentArtifactsService.configureDeploymentArtifacts(rapp) && rappDeployers.parallelStream()
+                                                                                             .allMatch(
+                                                                                                     rappDeployer -> rappDeployer.primeRapp(
+                                                                                                             rapp))) {
+                    rapp.setState(RappState.PRIMED);
+                    return ResponseEntity.ok().build();
+                }
+            } catch (RappValidationException e) {
+                rapp.setState(RappState.COMMISSIONED);
+                throw e;
             }
             rapp.setState(RappState.COMMISSIONED);
             throw new RappHandlerException(HttpStatus.BAD_GATEWAY, rapp.getReason());
index 9dc4987..0627f68 100755 (executable)
@@ -22,11 +22,13 @@ package com.oransc.rappmanager.service;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.when;
 
 import com.oransc.rappmanager.acm.service.AcmDeployer;
 import com.oransc.rappmanager.dme.service.DmeDeployer;
 import com.oransc.rappmanager.models.exception.RappHandlerException;
+import com.oransc.rappmanager.models.exception.RappValidationException;
 import com.oransc.rappmanager.models.rapp.Rapp;
 import com.oransc.rappmanager.models.rapp.RappState;
 import com.oransc.rappmanager.models.rappinstance.RappInstance;
@@ -126,6 +128,19 @@ class RappServiceTest {
         assertEquals(RappState.COMMISSIONED, rapp.getState());
     }
 
+    @Test
+    void testPrimeRappHelmUploadFailure() {
+        Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
+                            .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
+        doThrow(new RappValidationException("")).when(deploymentArtifactsService).configureDeploymentArtifacts(any());
+        when(acmDeployer.primeRapp(any())).thenReturn(true);
+        when(dmeDeployer.primeRapp(any())).thenReturn(false);
+        RappValidationException rappValidationException =
+                assertThrows(RappValidationException.class, () -> rappService.primeRapp(rapp));
+        assertEquals(HttpStatus.BAD_REQUEST, rappValidationException.getStatusCode());
+        assertEquals(RappState.COMMISSIONED, rapp.getState());
+    }
+
     @Test
     void testPrimeRappDeployArtifactFailure() {
         Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)