Merge "Add updateGlobalPropertiesJson controller"
authorAdam Krysiak <adam.krysiak@nokia.com>
Wed, 13 Mar 2019 08:10:33 +0000 (08:10 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 13 Mar 2019 08:10:33 +0000 (08:10 +0000)
src/main/java/org/onap/clamp/loop/LoopController.java
src/main/java/org/onap/clamp/loop/LoopService.java
src/main/resources/clds/camel/rest/clamp-api-v2.xml
src/test/java/org/onap/clamp/loop/LoopServiceTestItCase.java

index 7e45174..2bcce1e 100644 (file)
@@ -24,6 +24,8 @@
 package org.onap.clamp.loop;
 
 import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 
 import java.lang.reflect.Type;
@@ -60,13 +62,17 @@ public class LoopController {
     public Loop updateOperationalPolicies(String loopName, JsonArray operationalPoliciesJson) {
         List<OperationalPolicy> operationalPolicies = JsonUtils.GSON
             .fromJson(operationalPoliciesJson, OPERATIONAL_POLICY_TYPE);
-        return loopService.updateOperationalPolicies(loopName, operationalPolicies);
+        return loopService.updateAndSaveOperationalPolicies(loopName, operationalPolicies);
     }
 
     public Loop updateMicroservicePolicies(String loopName, JsonArray microServicePoliciesJson) {
         List<MicroServicePolicy> microservicePolicies = JsonUtils.GSON
             .fromJson(microServicePoliciesJson, MICROSERVICE_POLICY_TYPE);
-        return loopService.updateMicroservicePolicies(loopName, microservicePolicies);
+        return loopService.updateAndSaveMicroservicePolicies(loopName, microservicePolicies);
+    }
+
+    public Loop updateGlobalPropertiesJson(String loopName, JsonObject globalProperties){
+        return loopService.updateAndSaveGlobalPropertiesJson(loopName, globalProperties);
     }
 
     public String getSVGRepresentation(String loopName) {
index 91b4bdf..cf2f4c6 100644 (file)
@@ -26,6 +26,8 @@ package org.onap.clamp.loop;
 import java.util.List;
 import java.util.Set;
 import javax.persistence.EntityNotFoundException;
+
+import com.google.gson.JsonObject;
 import org.onap.clamp.policy.microservice.MicroservicePolicyService;
 import org.onap.clamp.policy.operational.OperationalPolicyService;
 import org.onap.clamp.policy.microservice.MicroServicePolicy;
@@ -66,22 +68,42 @@ public class LoopService {
         return closedLoopByName.getSvgRepresentation();
     }
 
-    Loop updateOperationalPolicies(String loopName, List<OperationalPolicy> newOperationalPolicies) {
+    Loop updateAndSaveOperationalPolicies(String loopName, List<OperationalPolicy> newOperationalPolicies) {
         Loop loop = findClosedLoopByName(loopName);
-        Set<OperationalPolicy> newPolicies = operationalPolicyService
-            .updatePolicies(loop, newOperationalPolicies);
+        updateOperationalPolicies(loop, newOperationalPolicies);
+        return loopsRepository.save(loop);
+    }
 
-        loop.setOperationalPolicies(newPolicies);
+    Loop updateAndSaveMicroservicePolicies(String loopName, List<MicroServicePolicy> newMicroservicePolicies) {
+        Loop loop = findClosedLoopByName(loopName);
+        updateMicroservicePolicies(loop, newMicroservicePolicies);
         return loopsRepository.save(loop);
     }
 
-    Loop updateMicroservicePolicies(String loopName, List<MicroServicePolicy> newMicroservicePolicies) {
+    Loop updateAndSaveGlobalPropertiesJson(String loopName, JsonObject newGlobalPropertiesJson) {
         Loop loop = findClosedLoopByName(loopName);
-        Set<MicroServicePolicy> newPolicies = microservicePolicyService
-            .updatePolicies(loop, newMicroservicePolicies);
+        updateGlobalPropertiesJson(loop, newGlobalPropertiesJson);
+        return loopsRepository.save(loop);
+    }
 
+    private Loop updateOperationalPolicies(Loop loop, List<OperationalPolicy> newOperationalPolicies) {
+        Set<OperationalPolicy> newPolicies = operationalPolicyService
+                .updatePolicies(loop, newOperationalPolicies);
+
+        loop.setOperationalPolicies(newPolicies);
+        return loop;
+    }
+
+    private Loop updateMicroservicePolicies(Loop loop, List<MicroServicePolicy> newMicroservicePolicies) {
+        Set<MicroServicePolicy> newPolicies = microservicePolicyService
+                .updatePolicies(loop, newMicroservicePolicies);
         loop.setMicroServicePolicies(newPolicies);
-        return loopsRepository.save(loop);
+        return loop;
+    }
+
+    private Loop updateGlobalPropertiesJson(Loop loop, JsonObject newGlobalPropertiesJson) {
+        loop.setGlobalPropertiesJson(newGlobalPropertiesJson);
+        return loop;
     }
 
     private Loop findClosedLoopByName(String loopName) {
index 4fa575a..6b6ec45 100644 (file)
             <to
                 uri="bean:org.onap.clamp.loop.LoopController?method=getSVGRepresentation(${header.loopName})" />
         </get>
-        <post uri="/v2/loop/globalProperties/{loopName}"
-            type="com.google.gson.JsonArray"
-            consumes="application/json"
-            outType="org.onap.clamp.loop.Loop"
-            produces="application/json">
+
+        <post uri="/v2/loop/updateGlobalProperties/{loopName}"
+              type="com.google.gson.JsonObject"
+              consumes="application/json"
+              outType="org.onap.clamp.loop.Loop"
+              produces="application/json">
             <to
-                uri="bean:org.onap.clamp.loop.LoopController?method=updateOperationalPolicies(${header.loopName},${body})" />
+                    uri="bean:org.onap.clamp.loop.LoopController?method=updateGlobalPropertiesJson(${header.loopName},${body})" />
         </post>
         <post uri="/v2/loop/updateOperationalPolicies/{loopName}"
             type="com.google.gson.JsonArray"
index b7781bf..d247344 100644 (file)
@@ -92,7 +92,7 @@ public class LoopServiceTestItCase {
 
         //when
         Loop actualLoop = loopService
-            .updateOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(operationalPolicy));
+            .updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(operationalPolicy));
 
         //then
         assertThat(actualLoop).isNotNull();
@@ -118,7 +118,7 @@ public class LoopServiceTestItCase {
 
         //when
         Loop actualLoop = loopService
-            .updateMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(microServicePolicy));
+            .updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(microServicePolicy));
 
         //then
         assertThat(actualLoop).isNotNull();
@@ -143,14 +143,14 @@ public class LoopServiceTestItCase {
         String secondPolicyTosca = "secondPolicyTosca";
         MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy(firstPolicyName, "policyTosca",
             false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
-        loopService.updateMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
+        loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
 
         MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy(secondPolicyName, secondPolicyTosca, true,
             newJsonRepresentation, null);
 
         //when
         firstMicroServicePolicy.setJsonRepresentation(newJsonRepresentation);
-        Loop actualLoop = loopService.updateMicroservicePolicies(EXAMPLE_LOOP_NAME,
+        Loop actualLoop = loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME,
             Lists.newArrayList(firstMicroServicePolicy, secondMicroServicePolicy));
 
         //then
@@ -180,14 +180,14 @@ public class LoopServiceTestItCase {
         String secondPolicyTosca = "secondPolicyTosca";
         MicroServicePolicy firstMicroServicePolicy = new MicroServicePolicy(firstPolicyName, "policyTosca",
             false, JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
-        loopService.updateMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
+        loopService.updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstMicroServicePolicy));
 
         MicroServicePolicy secondMicroServicePolicy = new MicroServicePolicy(secondPolicyName, secondPolicyTosca, true,
             jsonRepresentation, null);
 
         //when
         Loop actualLoop = loopService
-            .updateMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(secondMicroServicePolicy));
+            .updateAndSaveMicroservicePolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(secondMicroServicePolicy));
 
         //then
         assertThat(actualLoop).isNotNull();
@@ -210,13 +210,13 @@ public class LoopServiceTestItCase {
         String secondPolicyName = "secondPolicyName";
         OperationalPolicy firstOperationalPolicy = new OperationalPolicy(firstPolicyName, null,
             JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
-        loopService.updateOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
+        loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
 
         OperationalPolicy secondOperationalPolicy = new OperationalPolicy(secondPolicyName, null, newJsonConfiguration);
 
         //when
         firstOperationalPolicy.setConfigurationsJson(newJsonConfiguration);
-        Loop actualLoop = loopService.updateOperationalPolicies(EXAMPLE_LOOP_NAME,
+        Loop actualLoop = loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME,
             Lists.newArrayList(firstOperationalPolicy, secondOperationalPolicy));
 
         //then
@@ -244,13 +244,13 @@ public class LoopServiceTestItCase {
         String secondPolicyName = "policyName";
         OperationalPolicy firstOperationalPolicy = new OperationalPolicy(firstPolicyName, null,
             JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
-        loopService.updateOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
+        loopService.updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(firstOperationalPolicy));
 
         OperationalPolicy secondOperationalPolicy = new OperationalPolicy(secondPolicyName, null, jsonRepresentation);
 
         //when
         Loop actualLoop = loopService
-            .updateOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(secondOperationalPolicy));
+            .updateAndSaveOperationalPolicies(EXAMPLE_LOOP_NAME, Lists.newArrayList(secondOperationalPolicy));
 
         //then
         assertThat(actualLoop).isNotNull();
@@ -264,6 +264,26 @@ public class LoopServiceTestItCase {
 
     }
 
+    @Test
+    public void shouldCreateModelPropertiesAndUpdateJsonRepresentationOfOldOne() {
+        //given
+        saveTestLoopToDb();
+        String expectedJson = "{\"test\":\"test\"}";
+        JsonObject baseGlobalProperites = JsonUtils.GSON.fromJson("{}", JsonObject.class);
+        JsonObject updatedGlobalProperites = JsonUtils.GSON.fromJson(expectedJson, JsonObject.class);
+        loopService.updateAndSaveGlobalPropertiesJson(EXAMPLE_LOOP_NAME, baseGlobalProperites);
+
+        //when
+        Loop actualLoop = loopService
+                .updateAndSaveGlobalPropertiesJson(EXAMPLE_LOOP_NAME, updatedGlobalProperites);
+
+        //then
+        assertThat(actualLoop).isNotNull();
+        assertThat(actualLoop.getName()).isEqualTo(EXAMPLE_LOOP_NAME);
+        JsonObject returnedGlobalProperties = actualLoop.getGlobalPropertiesJson();
+        assertThat(returnedGlobalProperties.getAsJsonObject()).isEqualTo(updatedGlobalProperites);
+    }
+
     private Loop createTestLoop(String loopName, String loopBlueprint, String loopSvg) {
         return new Loop(loopName, loopBlueprint, loopSvg);
     }