From: FrancescoFioraEst Date: Thu, 3 Aug 2023 12:21:22 +0000 (+0100) Subject: Add support to save outProperties in AC Definition in ACM runtime X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=af691618ebd408111c87224e389d27ea8f9bcf46;p=policy%2Fclamp.git 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 (cherry picked from commit 092e94405aaeffb9c24b1d4037948d13ff19e7e3) --- 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