Fix outProperties message in participant simulator 50/139250/2
authorFrancescoFioraEst <francesco.fiora@est.tech>
Tue, 22 Oct 2024 09:24:57 +0000 (10:24 +0100)
committerFrancescoFioraEst <francesco.fiora@est.tech>
Tue, 22 Oct 2024 12:37:05 +0000 (13:37 +0100)
Issue-ID: POLICY-5145
Change-Id: I1a597ad17aeda4dcdcd863da97bb61eeb0bdaa09
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/main/handler/AutomationCompositionElementHandlerV1.java
participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/main/handler/AutomationCompositionElementHandlerV2.java
participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/main/handler/AutomationCompositionElementHandlerV3.java
participant/participant-impl/participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/main/handler/SimulatorService.java
participant/participant-impl/participant-impl-simulator/src/test/java/org/onap/policy/clamp/acm/participant/sim/main/handler/AutomationCompositionElementHandlerV2Test.java

index 534b01b..839ae3c 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.policy.clamp.acm.participant.sim.main.handler;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -99,6 +100,7 @@ public class AutomationCompositionElementHandlerV1 extends AcElementListenerV1 {
         Map<String, Object> properties) {
         LOGGER.debug("migrate call instanceId: {}, element: {}, compositionTargetId: {}, properties: {}",
                 instanceId, element, compositionTargetId, properties);
-        simulatorService.migrate(instanceId, element.getId(), 0, Map.of());
+
+        simulatorService.migrate(instanceId, element.getId(), 0, properties, new HashMap<>());
     }
 }
index 82602c1..154d559 100644 (file)
@@ -126,7 +126,7 @@ public class AutomationCompositionElementHandlerV2 extends AcElementListenerV2 {
             simulatorService.delete(instanceElement.instanceId(), instanceElement.elementId());
         } else {
             simulatorService.migrate(instanceElement.instanceId(), instanceElement.elementId(),
-                    0, compositionElementTarget.inProperties());
+                    0, compositionElementTarget.inProperties(), instanceElementMigrate.outProperties());
         }
     }
 
index e406a61..8ffca7e 100644 (file)
@@ -20,8 +20,6 @@
 
 package org.onap.policy.clamp.acm.participant.sim.main.handler;
 
-import java.util.ArrayList;
-import java.util.List;
 import lombok.Getter;
 import lombok.Setter;
 import org.onap.policy.clamp.acm.participant.intermediary.api.CompositionDto;
@@ -131,13 +129,7 @@ public class AutomationCompositionElementHandlerV3 extends AcElementListenerV3 {
             simulatorService.delete(instanceElement.instanceId(), instanceElement.elementId());
         } else {
             simulatorService.migrate(instanceElementMigrate.instanceId(), instanceElementMigrate.elementId(), stage,
-                    compositionElementTarget.inProperties());
-            instanceElementMigrate.outProperties().putIfAbsent("stage", new ArrayList<>());
-            @SuppressWarnings("unchecked")
-            var stageList = (List<Integer>) instanceElementMigrate.outProperties().get("stage");
-            stageList.add(stage);
-            intermediaryApi.sendAcElementInfo(instanceElementMigrate.instanceId(), instanceElementMigrate.elementId(),
-                    null, null, instanceElementMigrate.outProperties());
+                    compositionElementTarget.inProperties(), instanceElementMigrate.outProperties());
         }
     }
 
index b0006f7..284aa0e 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.policy.clamp.acm.participant.sim.main.handler;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import lombok.Getter;
@@ -330,7 +331,8 @@ public class SimulatorService {
      * @param elementId the elementId
      * @param stage the stage
      */
-    public void migrate(UUID instanceId, UUID elementId, int stage, Map<String, Object> compositionInProperties) {
+    public void migrate(UUID instanceId, UUID elementId, int stage, Map<String, Object> compositionInProperties,
+            Map<String, Object> instanceOutProperties) {
         if (!execution(getConfig().getMigrateTimerMs(),
                 "Current Thread migrate is Interrupted during execution {}", elementId)) {
             return;
@@ -344,6 +346,11 @@ public class SimulatorService {
                     nextStage = Math.min(s, nextStage);
                 }
             }
+            instanceOutProperties.putIfAbsent("stage", new ArrayList<>());
+            @SuppressWarnings("unchecked")
+            var stageList = (List<Integer>) instanceOutProperties.get("stage");
+            stageList.add(stage);
+            intermediaryApi.sendAcElementInfo(instanceId, elementId, null, null, instanceOutProperties);
             if (nextStage == 1000) {
                 intermediaryApi.updateAutomationCompositionElementState(
                         instanceId, elementId,
index f3a1839..e89a826 100644 (file)
@@ -23,6 +23,7 @@ package org.onap.policy.clamp.acm.participant.sim.main.handler;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.UUID;
 import org.junit.jupiter.api.Test;
@@ -208,7 +209,7 @@ class AutomationCompositionElementHandlerV2Test {
                 Map.of(), Map.of());
         var instanceElementMigrated = new InstanceElementDto(
                 INSTANCE_ELEMENT.instanceId(), INSTANCE_ELEMENT.elementId(),
-                null, Map.of("key", "value"), Map.of());
+                null, Map.of("key", "value"), new HashMap<>());
         acElementHandler
             .migrate(COMPOSITION_ELEMENT, compositionElementTarget, INSTANCE_ELEMENT, instanceElementMigrated);
         verify(intermediaryApi).updateAutomationCompositionElementState(
@@ -240,7 +241,8 @@ class AutomationCompositionElementHandlerV2Test {
         var compoElTargetAdd = new CompositionElementDto(
                 UUID.randomUUID(), new ToscaConceptIdentifier(), Map.of(), Map.of(), ElementState.NEW);
         var inElMigratedAdd = new InstanceElementDto(
-                instanceElement.instanceId(), instanceElement.elementId(), null, Map.of(), Map.of(), ElementState.NEW);
+                instanceElement.instanceId(), instanceElement.elementId(), null,
+                Map.of(), new HashMap<>(), ElementState.NEW);
         acElementHandler
                 .migrate(compositionElement, compoElTargetAdd, instanceElement, inElMigratedAdd);
         verify(intermediaryApi).updateAutomationCompositionElementState(