aboutsummaryrefslogtreecommitdiffstats
path: root/participant/participant-impl/participant-impl-policy/src/test/java
diff options
context:
space:
mode:
authorSirisha_Manchikanti <sirisha.manchikanti@est.tech>2021-08-10 21:51:48 +0100
committerSirisha_Manchikanti <sirisha.manchikanti@est.tech>2021-08-18 14:58:42 +0100
commitd0a1bcee60c43a736a0526d49c07c564632c4f02 (patch)
tree32d46f33307a9bb65215a1f52eb626ae7db3d1ee /participant/participant-impl/participant-impl-policy/src/test/java
parenta37bd982693785af5fc791df0baaa49dda039846 (diff)
Updated ControlLoop component messages
Updated controlloop messages (ParticipantUpdate, ControlLoopUpdate, ParticipantStatus) according to the following Wiki and added implementation for the corresponding updates in runtime-controlloop and participant components https://wiki.onap.org/display/DW/The+CLAMP+Control+Loop+Participant+Protocol Issue-ID: POLICY-3417 Signed-off-by: Sirisha_Manchikanti <sirisha.manchikanti@est.tech> Change-Id: I80d96a7553a89ca47de2aa35e09df5a5c792acfa
Diffstat (limited to 'participant/participant-impl/participant-impl-policy/src/test/java')
-rw-r--r--participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java38
-rw-r--r--participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantPolicyTest.java103
-rw-r--r--participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java153
3 files changed, 142 insertions, 152 deletions
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java
index 08e7154bb..df9a4b259 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantMessagesTest.java
@@ -21,8 +21,10 @@
package org.onap.policy.clamp.controlloop.participant.policy.endtoend;
import static org.assertj.core.api.Assertions.assertThatCode;
+import static org.junit.Assert.assertEquals;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -36,6 +38,8 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopInfo;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopStatistics;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregister;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantDeregisterAck;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantRegister;
@@ -43,6 +47,7 @@ import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.Parti
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantStatus;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdateAck;
+import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopUpdateListener;
import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantDeregisterAckListener;
import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantMessagePublisher;
import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ParticipantRegisterAckListener;
@@ -52,7 +57,7 @@ import org.onap.policy.clamp.controlloop.participant.policy.main.utils.TestListe
import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
import org.onap.policy.common.endpoints.event.comm.TopicSink;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaNodeTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
@@ -135,6 +140,9 @@ class ParticipantMessagesTest {
ParticipantUpdateListener participantUpdateListener = new ParticipantUpdateListener(participantHandler);
participantUpdateListener.onTopicEvent(INFRA, TOPIC, null, participantUpdateMsg);
}
+
+ // Verify the result of GET participants with what is stored
+ assertEquals("org.onap.PM_Policy", participantHandler.getParticipantId().getName());
}
@Test
@@ -156,13 +164,17 @@ class ParticipantMessagesTest {
final ParticipantStatus heartbeat = new ParticipantStatus();
heartbeat.setParticipantId(getParticipantId());
ControlLoopInfo clInfo = getControlLoopInfo(getControlLoopId());
- heartbeat.setControlLoopInfoMap(Map.of(getControlLoopId().toString(), clInfo));
+ clInfo.setControlLoopId(getControlLoopId());
+ heartbeat.setControlLoopInfoList(List.of(clInfo));
ControlLoopElementDefinition clDefinition = getClElementDefinition();
- Map<UUID, ControlLoopElementDefinition> clElementDefinitionMap = Map.of(UUID.randomUUID(), clDefinition);
- Map<String, Map<UUID, ControlLoopElementDefinition>>
- participantDefinitionUpdateMap = Map.of(getParticipantId().toString(), clElementDefinitionMap);
- heartbeat.setParticipantDefinitionUpdateMap(participantDefinitionUpdateMap);
+ List<ControlLoopElementDefinition> controlLoopElementDefinitionList =
+ List.of(clDefinition);
+ ParticipantDefinition participantDefinition = new ParticipantDefinition();
+ participantDefinition.setParticipantId(getParticipantId());
+ participantDefinition.setControlLoopElementDefinitionList(controlLoopElementDefinitionList);
+ List<ParticipantDefinition> participantDefinitionUpdates = List.of(participantDefinition);
+ heartbeat.setParticipantDefinitionUpdates(participantDefinitionUpdates);
synchronized (lockit) {
ParticipantMessagePublisher publisher =
@@ -208,15 +220,15 @@ class ParticipantMessagesTest {
}
private ControlLoopElementDefinition getClElementDefinition() {
- ToscaServiceTemplate toscaServiceTemplate = new ToscaServiceTemplate();
- toscaServiceTemplate.setName("serviceTemplate");
- toscaServiceTemplate.setDerivedFrom("parentServiceTemplate");
- toscaServiceTemplate.setDescription("Description of serviceTemplate");
- toscaServiceTemplate.setVersion("1.2.3");
+ ToscaNodeTemplate toscaNodeTemplate = new ToscaNodeTemplate();
+ toscaNodeTemplate.setName("serviceTemplate");
+ toscaNodeTemplate.setDerivedFrom("parentServiceTemplate");
+ toscaNodeTemplate.setDescription("Description of serviceTemplate");
+ toscaNodeTemplate.setVersion("1.2.3");
ControlLoopElementDefinition clDefinition = new ControlLoopElementDefinition();
- clDefinition.setId(UUID.randomUUID());
- clDefinition.setControlLoopElementToscaServiceTemplate(toscaServiceTemplate);
+ clDefinition.setCommonPropertiesMap(Map.of("Prop1", "Prop1Value"));
+ clDefinition.setControlLoopElementToscaNodeTemplate(toscaNodeTemplate);
Map<String, String> commonPropertiesMap = Map.of("Prop1", "PropValue");
clDefinition.setCommonPropertiesMap(commonPropertiesMap);
return clDefinition;
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantPolicyTest.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantPolicyTest.java
deleted file mode 100644
index 10563cde2..000000000
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/endtoend/ParticipantPolicyTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.clamp.controlloop.participant.policy.endtoend;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
-import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopStateChangeListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.comm.ControlLoopUpdateListener;
-import org.onap.policy.clamp.controlloop.participant.intermediary.handler.ParticipantHandler;
-import org.onap.policy.clamp.controlloop.participant.policy.main.utils.TestListenerUtils;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
-@TestPropertySource(locations = {"classpath:application_test.properties"})
-class ParticipantPolicyTest {
-
- private static final Object lockit = new Object();
- private static final CommInfrastructure INFRA = CommInfrastructure.NOOP;
- private static final String TOPIC = "my-topic";
-
- @Autowired
- private ParticipantHandler participantHandler;
-
- @Test
- void testUpdatePolicyTypes() {
- ControlLoopUpdate controlLoopUpdateMsg = TestListenerUtils.createControlLoopUpdateMsg();
- controlLoopUpdateMsg.getControlLoop().setOrderedState(ControlLoopOrderedState.PASSIVE);
-
- synchronized (lockit) {
- ControlLoopUpdateListener clUpdateListener = new ControlLoopUpdateListener(participantHandler);
-
- clUpdateListener.onTopicEvent(INFRA, TOPIC, null, controlLoopUpdateMsg);
- }
- // Verify the result of GET participants with what is stored
- assertEquals("org.onap.PM_Policy", participantHandler.getParticipantId().getName());
- }
-
- @Test
- void testUpdatePolicies() throws Exception {
- ControlLoopUpdate controlLoopUpdateMsg = TestListenerUtils.createControlLoopUpdateMsg();
- controlLoopUpdateMsg.getControlLoop().setOrderedState(ControlLoopOrderedState.PASSIVE);
-
- synchronized (lockit) {
- ControlLoopUpdateListener clUpdateListener = new ControlLoopUpdateListener(participantHandler);
-
- clUpdateListener.onTopicEvent(INFRA, TOPIC, null, controlLoopUpdateMsg);
- }
- // Verify the result of GET participants with what is stored
- assertEquals("org.onap.PM_Policy", participantHandler.getParticipantId().getName());
- }
-
- @Test
- void testDeletePoliciesAndPolicyTypes() throws Exception {
- ControlLoopUpdate controlLoopUpdateMsg = TestListenerUtils.createControlLoopUpdateMsg();
- controlLoopUpdateMsg.getControlLoop().setOrderedState(ControlLoopOrderedState.PASSIVE);
-
- synchronized (lockit) {
- ControlLoopUpdateListener clUpdateListener = new ControlLoopUpdateListener(participantHandler);
-
- clUpdateListener.onTopicEvent(INFRA, TOPIC, null, controlLoopUpdateMsg);
- }
- // Verify the result of GET participants with what is stored
- assertEquals("org.onap.PM_Policy", participantHandler.getParticipantId().getName());
-
- ControlLoopStateChangeListener clStateChangeListener = new ControlLoopStateChangeListener(participantHandler);
- ControlLoopStateChange controlLoopStateChangeMsg =
- TestListenerUtils.createControlLoopStateChangeMsg(ControlLoopOrderedState.UNINITIALISED);
- controlLoopStateChangeMsg.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
- clStateChangeListener.onTopicEvent(INFRA, TOPIC, null, controlLoopStateChangeMsg);
-
- // Verify the result of GET participants with what is stored
- assertEquals("org.onap.PM_Policy", participantHandler.getParticipantId().getName());
- }
-}
diff --git a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java
index f87714e0e..5984cf149 100644
--- a/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java
+++ b/participant/participant-impl/participant-impl-policy/src/test/java/org/onap/policy/clamp/controlloop/participant/policy/main/utils/TestListenerUtils.java
@@ -25,7 +25,9 @@ import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileNotFoundException;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
@@ -34,6 +36,8 @@ import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopElementDefinition;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopState;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantDefinition;
+import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ParticipantUpdates;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopStateChange;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ControlLoopUpdate;
import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantUpdate;
@@ -55,6 +59,7 @@ public class TestListenerUtils {
private static final Coder CODER = new StandardCoder();
static CommonTestData commonTestData = new CommonTestData();
private static final Logger LOGGER = LoggerFactory.getLogger(TestListenerUtils.class);
+ private static final String CONTROL_LOOP_ELEMENT = "ControlLoopElement";
private TestListenerUtils() {}
@@ -130,47 +135,80 @@ public class TestListenerUtils {
*/
public static ControlLoopUpdate createControlLoopUpdateMsg() {
final ControlLoopUpdate clUpdateMsg = new ControlLoopUpdate();
- ToscaConceptIdentifier controlLoopId = new ToscaConceptIdentifier();
- controlLoopId.setName("PMSHInstance0");
- controlLoopId.setVersion("1.0.0");
-
- ToscaConceptIdentifier participantId = new ToscaConceptIdentifier();
- participantId.setName("org.onap.PM_Policy");
- participantId.setVersion("0.0.0");
+ ToscaConceptIdentifier controlLoopId =
+ new ToscaConceptIdentifier("PMSHInstance0", "1.0.0");
+ ToscaConceptIdentifier participantId =
+ new ToscaConceptIdentifier("org.onap.PM_Policy", "0.0.0");
clUpdateMsg.setControlLoopId(controlLoopId);
clUpdateMsg.setParticipantId(participantId);
+ clUpdateMsg.setMessageId(UUID.randomUUID());
+ clUpdateMsg.setTimestamp(Instant.now());
- ControlLoop controlLoop = new ControlLoop();
Map<UUID, ControlLoopElement> elements = new LinkedHashMap<>();
ToscaServiceTemplate toscaServiceTemplate = testControlLoopRead();
Map<String, ToscaNodeTemplate> nodeTemplatesMap =
toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates();
for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry : nodeTemplatesMap.entrySet()) {
- ControlLoopElement clElement = new ControlLoopElement();
- clElement.setId(UUID.randomUUID());
+ if (toscaInputEntry.getValue().getType().contains(CONTROL_LOOP_ELEMENT)) {
+ ControlLoopElement clElement = new ControlLoopElement();
+ clElement.setId(UUID.randomUUID());
+ ToscaConceptIdentifier clParticipantId;
+ try {
+ clParticipantId = CODER.decode(
+ toscaInputEntry.getValue().getProperties().get("participant_id").toString(),
+ ToscaConceptIdentifier.class);
+ } catch (CoderException e) {
+ throw new RuntimeException("cannot get ParticipantId from toscaNodeTemplate", e);
+ }
- ToscaConceptIdentifier clElementParticipantId = new ToscaConceptIdentifier();
- clElementParticipantId.setName(toscaInputEntry.getKey());
- clElementParticipantId.setVersion(toscaInputEntry.getValue().getVersion());
- clElement.setParticipantId(clElementParticipantId);
- clElement.setParticipantType(clElementParticipantId);
+ clElement.setParticipantId(clParticipantId);
+ clElement.setParticipantType(clParticipantId);
- clElement.setDefinition(clElementParticipantId);
- clElement.setState(ControlLoopState.UNINITIALISED);
- clElement.setDescription(toscaInputEntry.getValue().getDescription());
- clElement.setOrderedState(ControlLoopOrderedState.UNINITIALISED);
- elements.put(clElement.getId(), clElement);
+ clElement.setDefinition(new ToscaConceptIdentifier(toscaInputEntry.getKey(),
+ toscaInputEntry.getValue().getVersion()));
+ clElement.setState(ControlLoopState.UNINITIALISED);
+ clElement.setDescription(toscaInputEntry.getValue().getDescription());
+ clElement.setOrderedState(ControlLoopOrderedState.PASSIVE);
+ elements.put(clElement.getId(), clElement);
+ }
}
- controlLoop.setElements(elements);
- controlLoop.setName("PMSHInstance0");
- controlLoop.setVersion("1.0.0");
- controlLoop.setDefinition(controlLoopId);
- clUpdateMsg.setControlLoop(controlLoop);
+ List<ParticipantUpdates> participantUpdates = new ArrayList<>();
+ for (ControlLoopElement element : elements.values()) {
+ prepareParticipantUpdateForControlLoop(element, participantUpdates);
+ }
+ clUpdateMsg.setParticipantUpdatesList(participantUpdates);
return clUpdateMsg;
}
+ private static void prepareParticipantUpdateForControlLoop(ControlLoopElement clElement,
+ List<ParticipantUpdates> participantUpdates) {
+ if (participantUpdates.isEmpty()) {
+ participantUpdates.add(getControlLoopElementList(clElement));
+ } else {
+ boolean participantExists = false;
+ for (ParticipantUpdates participantUpdate : participantUpdates) {
+ if (participantUpdate.getParticipantId().equals(clElement.getParticipantId())) {
+ participantUpdate.getControlLoopElementList().add(clElement);
+ participantExists = true;
+ }
+ }
+ if (!participantExists) {
+ participantUpdates.add(getControlLoopElementList(clElement));
+ }
+ }
+ }
+
+ private static ParticipantUpdates getControlLoopElementList(ControlLoopElement clElement) {
+ ParticipantUpdates participantUpdate = new ParticipantUpdates();
+ List<ControlLoopElement> controlLoopElementList = new ArrayList<>();
+ participantUpdate.setParticipantId(clElement.getParticipantId());
+ controlLoopElementList.add(clElement);
+ participantUpdate.setControlLoopElementList(controlLoopElementList);
+ return participantUpdate;
+ }
+
/**
* Method to create participantUpdateMsg.
*
@@ -192,20 +230,63 @@ public class TestListenerUtils {
// Add policies to the toscaServiceTemplate
TestListenerUtils.addPoliciesToToscaServiceTemplate(toscaServiceTemplate);
- ControlLoopElementDefinition clDefinition = new ControlLoopElementDefinition();
- clDefinition.setId(UUID.randomUUID());
- clDefinition.setControlLoopElementToscaServiceTemplate(toscaServiceTemplate);
- Map<String, String> commonPropertiesMap = Map.of("Prop1", "PropValue");
- clDefinition.setCommonPropertiesMap(commonPropertiesMap);
+ List<ParticipantDefinition> participantDefinitionUpdates = new ArrayList<>();
+ for (Map.Entry<String, ToscaNodeTemplate> toscaInputEntry :
+ toscaServiceTemplate.getToscaTopologyTemplate().getNodeTemplates().entrySet()) {
+ if (toscaInputEntry.getValue().getType().contains(CONTROL_LOOP_ELEMENT)) {
+ ToscaConceptIdentifier clParticipantId;
+ try {
+ clParticipantId = CODER.decode(
+ toscaInputEntry.getValue().getProperties().get("participant_id").toString(),
+ ToscaConceptIdentifier.class);
+ } catch (CoderException e) {
+ throw new RuntimeException("cannot get ParticipantId from toscaNodeTemplate", e);
+ }
+ prepareParticipantDefinitionUpdate(clParticipantId, toscaInputEntry.getKey(),
+ toscaInputEntry.getValue(), participantDefinitionUpdates);
+ }
+ }
- Map<UUID, ControlLoopElementDefinition> controlLoopElementDefinitionMap =
- Map.of(UUID.randomUUID(), clDefinition);
+ participantUpdateMsg.setParticipantDefinitionUpdates(participantDefinitionUpdates);
+ participantUpdateMsg.setToscaServiceTemplate(toscaServiceTemplate);
+ return participantUpdateMsg;
+ }
- Map<String, Map<UUID, ControlLoopElementDefinition>> participantDefinitionUpdateMap =
- Map.of(participantId.toString(), controlLoopElementDefinitionMap);
- participantUpdateMsg.setParticipantDefinitionUpdateMap(participantDefinitionUpdateMap);
+ private static void prepareParticipantDefinitionUpdate(ToscaConceptIdentifier clParticipantId, String entryKey,
+ ToscaNodeTemplate entryValue, List<ParticipantDefinition> participantDefinitionUpdates) {
+
+ var clDefinition = new ControlLoopElementDefinition();
+ clDefinition.setClElementDefinitionId(new ToscaConceptIdentifier(
+ entryKey, entryValue.getVersion()));
+ clDefinition.setControlLoopElementToscaNodeTemplate(entryValue);
+ List<ControlLoopElementDefinition> controlLoopElementDefinitionList = new ArrayList<>();
+
+ if (participantDefinitionUpdates.isEmpty()) {
+ participantDefinitionUpdates.add(getParticipantDefinition(clDefinition, clParticipantId,
+ controlLoopElementDefinitionList));
+ } else {
+ boolean participantExists = false;
+ for (ParticipantDefinition participantDefinitionUpdate : participantDefinitionUpdates) {
+ if (participantDefinitionUpdate.getParticipantId().equals(clParticipantId)) {
+ participantDefinitionUpdate.getControlLoopElementDefinitionList().add(clDefinition);
+ participantExists = true;
+ }
+ }
+ if (!participantExists) {
+ participantDefinitionUpdates.add(getParticipantDefinition(clDefinition, clParticipantId,
+ controlLoopElementDefinitionList));
+ }
+ }
+ }
- return participantUpdateMsg;
+ private static ParticipantDefinition getParticipantDefinition(ControlLoopElementDefinition clDefinition,
+ ToscaConceptIdentifier clParticipantId,
+ List<ControlLoopElementDefinition> controlLoopElementDefinitionList) {
+ ParticipantDefinition participantDefinition = new ParticipantDefinition();
+ participantDefinition.setParticipantId(clParticipantId);
+ controlLoopElementDefinitionList.add(clDefinition);
+ participantDefinition.setControlLoopElementDefinitionList(controlLoopElementDefinitionList);
+ return participantDefinition;
}
/**