From 2df59bcd84c52b013ac5f607acd0ae50fdbff8bf Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Wed, 18 Sep 2024 17:27:04 +0100 Subject: Move policy definition data under instance properties Move policy definition data under instance properties for policy-participant. Issue-ID: POLICY-4938 Change-Id: I60c6536554ce3750f03e42e397f000b35b5d6e07 Signed-off-by: FrancescoFioraEst --- .../runtime/supervision/SupervisionAcHandler.java | 8 +--- .../supervision/SupervisionParticipantHandler.java | 9 ++-- .../runtime/supervision/SupervisionScanner.java | 35 ++++++-------- .../comm/AutomationCompositionDeployPublisher.java | 7 +-- .../supervision/comm/ParticipantSyncPublisher.java | 9 +--- .../supervision/SupervisionAcHandlerTest.java | 56 +++++++++------------- .../SupervisionParticipantHandlerTest.java | 41 ++++++++-------- .../supervision/SupervisionScannerTest.java | 14 +++--- .../supervision/comm/SupervisionMessagesTest.java | 9 +++- 9 files changed, 79 insertions(+), 109 deletions(-) (limited to 'runtime-acm/src') diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAcHandler.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAcHandler.java index 4f564478f..05a866e43 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAcHandler.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAcHandler.java @@ -43,7 +43,6 @@ import org.onap.policy.clamp.models.acm.concepts.ParticipantUtils; import org.onap.policy.clamp.models.acm.concepts.StateChangeResult; import org.onap.policy.clamp.models.acm.concepts.SubState; import org.onap.policy.clamp.models.acm.messages.kafka.participant.AutomationCompositionDeployAck; -import org.onap.policy.clamp.models.acm.persistence.provider.AcDefinitionProvider; import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider; import org.onap.policy.clamp.models.acm.utils.AcmUtils; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; @@ -61,7 +60,6 @@ public class SupervisionAcHandler { private static final Logger LOGGER = LoggerFactory.getLogger(SupervisionAcHandler.class); private final AutomationCompositionProvider automationCompositionProvider; - private final AcDefinitionProvider acDefinitionProvider; // Publishers for participant communication private final AutomationCompositionDeployPublisher automationCompositionDeployPublisher; @@ -96,8 +94,7 @@ public class SupervisionAcHandler { automationComposition.setPhase(startPhase); automationCompositionProvider.updateAutomationComposition(automationComposition); executor.execute( - () -> automationCompositionDeployPublisher.send(automationComposition, acDefinition.getServiceTemplate(), - startPhase, true)); + () -> automationCompositionDeployPublisher.send(automationComposition, startPhase, true)); } /** @@ -287,8 +284,7 @@ public class SupervisionAcHandler { automationCompositionAckMessage.getStateChangeResult(), automationCompositionAckMessage.getStage()); if (updated) { automationComposition = automationCompositionProvider.updateAcState(automationComposition); - var acDefinition = acDefinitionProvider.getAcDefinition(automationComposition.getCompositionId()); - participantSyncPublisher.sendSync(acDefinition.getServiceTemplate(), automationComposition); + participantSyncPublisher.sendSync(automationComposition); } } 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 3eb471609..5de6a4c74 100644 --- 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 @@ -110,8 +110,7 @@ public class SupervisionParticipantHandler { participantStatusMsg.getParticipantSupportedElementType(), false); if (!participantStatusMsg.getAutomationCompositionInfoList().isEmpty()) { - updateAcOutProperties(participantStatusMsg.getAutomationCompositionInfoList(), - participantStatusMsg.getCompositionId()); + updateAcOutProperties(participantStatusMsg.getAutomationCompositionInfoList()); } if (!participantStatusMsg.getParticipantDefinitionUpdates().isEmpty() && participantStatusMsg.getCompositionId() != null) { @@ -152,13 +151,11 @@ public class SupervisionParticipantHandler { } - private void updateAcOutProperties(List automationCompositionInfoList, - UUID compositionId) { + private void updateAcOutProperties(List automationCompositionInfoList) { automationCompositionProvider.upgradeStates(automationCompositionInfoList); - var acDefinition = acDefinitionProvider.getAcDefinition(compositionId); for (var acInfo : automationCompositionInfoList) { var ac = automationCompositionProvider.getAutomationComposition(acInfo.getAutomationCompositionId()); - participantSyncPublisher.sendSync(acDefinition.getServiceTemplate(), ac); + participantSyncPublisher.sendSync(ac); } } diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScanner.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScanner.java index de2f37564..9b030eae1 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScanner.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScanner.java @@ -151,7 +151,7 @@ public class SupervisionScanner { || SubState.PREPARING.equals(automationComposition.getSubState()) || SubState.REVIEWING.equals(automationComposition.getSubState()) || SubState.MIGRATION_PRECHECKING.equals(automationComposition.getSubState())) { - simpleScan(automationComposition, serviceTemplate); + simpleScan(automationComposition); } else { scanWithPhase(automationComposition, serviceTemplate); } @@ -187,7 +187,7 @@ public class SupervisionScanner { } if (completed) { - complete(automationComposition, serviceTemplate); + complete(automationComposition); } else { LOGGER.debug("automation composition scan: transition state {} {} not completed", automationComposition.getDeployState(), automationComposition.getLockState()); @@ -198,9 +198,9 @@ public class SupervisionScanner { var nextSpNotCompleted = isForward ? minSpNotCompleted : maxSpNotCompleted; if (nextSpNotCompleted != automationComposition.getPhase()) { - sendAutomationCompositionMsg(automationComposition, serviceTemplate, nextSpNotCompleted); + sendAutomationCompositionMsg(automationComposition, nextSpNotCompleted); } else { - handleTimeout(automationComposition, serviceTemplate); + handleTimeout(automationComposition); } } } @@ -209,17 +209,16 @@ public class SupervisionScanner { * Simple scan: UPDATE, PREPARE, REVIEW, MIGRATE_PRECHECKING. * * @param automationComposition the AutomationComposition - * @param serviceTemplate the ToscaServiceTemplate */ - private void simpleScan(final AutomationComposition automationComposition, ToscaServiceTemplate serviceTemplate) { + private void simpleScan(final AutomationComposition automationComposition) { var completed = automationComposition.getElements().values().stream() .filter(element -> AcmUtils.isInTransitionalState(element.getDeployState(), element.getLockState(), element.getSubState())).findFirst().isEmpty(); if (completed) { - complete(automationComposition, serviceTemplate); + complete(automationComposition); } else { - handleTimeout(automationComposition, serviceTemplate); + handleTimeout(automationComposition); } } @@ -246,7 +245,7 @@ public class SupervisionScanner { } if (completed) { - complete(automationComposition, serviceTemplate); + complete(automationComposition); } else { LOGGER.debug("automation composition scan: transition from state {} to {} not completed", automationComposition.getDeployState(), automationComposition.getLockState()); @@ -256,13 +255,12 @@ public class SupervisionScanner { LOGGER.debug("retry message AutomationCompositionMigration"); automationCompositionMigrationPublisher.send(automationComposition, minStageNotCompleted); } else { - handleTimeout(automationComposition, serviceTemplate); + handleTimeout(automationComposition); } } } - private void complete(final AutomationComposition automationComposition, - ToscaServiceTemplate serviceTemplate) { + private void complete(final AutomationComposition automationComposition) { LOGGER.debug("automation composition scan: transition state {} {} {} completed", automationComposition.getDeployState(), automationComposition.getLockState(), automationComposition.getSubState()); @@ -287,7 +285,7 @@ public class SupervisionScanner { } else { acToUpdate = automationCompositionProvider.updateAcState(acToUpdate); } - participantSyncPublisher.sendSync(serviceTemplate, acToUpdate); + participantSyncPublisher.sendSync(acToUpdate); } private void handleTimeout(AutomationCompositionDefinition acDefinition) { @@ -306,8 +304,7 @@ public class SupervisionScanner { } } - private void handleTimeout(AutomationComposition automationComposition, - ToscaServiceTemplate serviceTemplate) { + private void handleTimeout(AutomationComposition automationComposition) { LOGGER.debug("automation composition scan: transition from state {} to {} {} not completed", automationComposition.getDeployState(), automationComposition.getLockState(), automationComposition.getSubState()); @@ -322,7 +319,7 @@ public class SupervisionScanner { LOGGER.debug("Report timeout for the ac instance {}", automationComposition.getInstanceId()); automationComposition.setStateChangeResult(StateChangeResult.TIMEOUT); automationCompositionProvider.updateAcState(automationComposition); - participantSyncPublisher.sendSync(serviceTemplate, automationComposition); + participantSyncPublisher.sendSync(automationComposition); } } @@ -332,14 +329,12 @@ public class SupervisionScanner { automationCompositionProvider.updateAcState(automationComposition); } - private void sendAutomationCompositionMsg(AutomationComposition automationComposition, - ToscaServiceTemplate serviceTemplate, int startPhase) { + private void sendAutomationCompositionMsg(AutomationComposition automationComposition, int startPhase) { savePhase(automationComposition, startPhase); if (DeployState.DEPLOYING.equals(automationComposition.getDeployState())) { LOGGER.debug("retry message AutomationCompositionDeploy"); - automationCompositionDeployPublisher.send(automationComposition, serviceTemplate, startPhase, - false); + automationCompositionDeployPublisher.send(automationComposition, startPhase, false); } else { LOGGER.debug("retry message AutomationCompositionStateChange"); automationCompositionStateChangePublisher.send(automationComposition, startPhase, false); diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/AutomationCompositionDeployPublisher.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/AutomationCompositionDeployPublisher.java index 7fe63a7c5..d6d38ddf1 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/AutomationCompositionDeployPublisher.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/AutomationCompositionDeployPublisher.java @@ -36,7 +36,6 @@ import org.onap.policy.clamp.models.acm.concepts.ParticipantDeploy; import org.onap.policy.clamp.models.acm.messages.kafka.participant.AutomationCompositionDeploy; import org.onap.policy.clamp.models.acm.messages.rest.instantiation.DeployOrder; import org.onap.policy.clamp.models.acm.utils.AcmUtils; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -59,14 +58,10 @@ public class AutomationCompositionDeployPublisher extends AbstractParticipantPub */ @Timed(value = "publisher.automation_composition_deploy", description = "AUTOMATION_COMPOSITION_DEPLOY messages published") - public void send(AutomationComposition automationComposition, ToscaServiceTemplate toscaServiceTemplate, - int startPhase, boolean firstStartPhase) { - var toscaServiceTemplateFragment = AcmUtils.getToscaServiceTemplateFragment(toscaServiceTemplate); + public void send(AutomationComposition automationComposition, int startPhase, boolean firstStartPhase) { Map> map = new HashMap<>(); for (var element : automationComposition.getElements().values()) { var acElementDeploy = AcmUtils.createAcElementDeploy(element, DeployOrder.DEPLOY); - acElementDeploy.setToscaServiceTemplateFragment(toscaServiceTemplateFragment); - map.putIfAbsent(element.getParticipantId(), new ArrayList<>()); map.get(element.getParticipantId()).add(acElementDeploy); } diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantSyncPublisher.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantSyncPublisher.java index d90b6f667..3e42f940c 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantSyncPublisher.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantSyncPublisher.java @@ -33,7 +33,6 @@ import org.onap.policy.clamp.models.acm.concepts.DeployState; import org.onap.policy.clamp.models.acm.concepts.ParticipantRestartAc; import org.onap.policy.clamp.models.acm.messages.kafka.participant.ParticipantSync; import org.onap.policy.clamp.models.acm.utils.AcmUtils; -import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -67,10 +66,9 @@ public class ParticipantSyncPublisher extends AbstractParticipantPublisher