From 092e94405aaeffb9c24b1d4037948d13ff19e7e3 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Thu, 3 Aug 2023 13:21:22 +0100 Subject: Add support to save outProperties in AC Definition in ACM runtime Add support to save outProperties in AC Definition from Participant Status message. Add outProperties support in restart message. Issue-ID: POLICY-4781 Change-Id: I9f9bed5c9c3e6692a1e4666162b752db95994f95 Signed-off-by: FrancescoFioraEst --- .../supervision/SupervisionParticipantHandler.java | 24 ++++++++++++++++++++++ .../comm/ParticipantRestartPublisher.java | 11 +++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) mode change 100644 => 100755 runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantRestartPublisher.java (limited to 'runtime-acm/src/main') diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionParticipantHandler.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionParticipantHandler.java index f8bc233e9..ebccc2f66 100755 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionParticipantHandler.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionParticipantHandler.java @@ -35,6 +35,7 @@ import org.onap.policy.clamp.models.acm.concepts.AcTypeState; import org.onap.policy.clamp.models.acm.concepts.AutomationComposition; import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionDefinition; import org.onap.policy.clamp.models.acm.concepts.Participant; +import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition; import org.onap.policy.clamp.models.acm.concepts.ParticipantState; import org.onap.policy.clamp.models.acm.concepts.ParticipantSupportedElementType; import org.onap.policy.clamp.models.acm.concepts.StateChangeResult; @@ -130,6 +131,29 @@ public class SupervisionParticipantHandler { if (!participantStatusMsg.getAutomationCompositionInfoList().isEmpty()) { automationCompositionProvider.upgradeStates(participantStatusMsg.getAutomationCompositionInfoList()); } + if (!participantStatusMsg.getParticipantDefinitionUpdates().isEmpty() + && participantStatusMsg.getCompositionId() != null) { + updateAcDefinitionOutProperties(participantStatusMsg.getCompositionId(), + participantStatusMsg.getParticipantDefinitionUpdates()); + } + } + + private void updateAcDefinitionOutProperties(UUID composotionId, List list) { + var acDefinitionOpt = acDefinitionProvider.findAcDefinition(composotionId); + if (acDefinitionOpt.isEmpty()) { + LOGGER.error("Ac Definition with id {} not found", composotionId); + return; + } + var acDefinition = acDefinitionOpt.get(); + for (var acElements : list) { + for (var element : acElements.getAutomationCompositionElementDefinitionList()) { + var state = acDefinition.getElementStateMap().get(element.getAcElementDefinitionId().getName()); + if (state != null) { + state.setOutProperties(element.getOutProperties()); + } + } + } + acDefinitionProvider.updateAcDefinition(acDefinition); } private void checkOnline(Participant participant) { diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantRestartPublisher.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantRestartPublisher.java old mode 100644 new mode 100755 index b086b1914..c00116e3b --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantRestartPublisher.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantRestartPublisher.java @@ -100,6 +100,15 @@ public class ParticipantRestartPublisher extends AbstractParticipantPublisher