aboutsummaryrefslogtreecommitdiffstats
path: root/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java
diff options
context:
space:
mode:
Diffstat (limited to 'runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java')
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java
index 24dcc2382..539a992ff 100644
--- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java
+++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/comm/ParticipantPrimePublisher.java
@@ -25,10 +25,12 @@ package org.onap.policy.clamp.acm.runtime.supervision.comm;
import io.micrometer.core.annotation.Timed;
import java.time.Instant;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import lombok.AllArgsConstructor;
+import org.onap.policy.clamp.acm.runtime.participants.AcmParticipantProvider;
import org.onap.policy.clamp.models.acm.concepts.AcTypeState;
import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionDefinition;
import org.onap.policy.clamp.models.acm.concepts.ParticipantDefinition;
@@ -50,6 +52,7 @@ public class ParticipantPrimePublisher extends AbstractParticipantPublisher<Part
private static final Logger LOGGER = LoggerFactory.getLogger(ParticipantPrimePublisher.class);
private final ParticipantProvider participantProvider;
+ private final AcmParticipantProvider acmParticipantProvider;
/**
* Send ParticipantPrime to Participant
@@ -72,7 +75,7 @@ public class ParticipantPrimePublisher extends AbstractParticipantPublisher<Part
}
/**
- * Pepare the Priming message creating the list of ParticipantDefinition to send
+ * Prepare the Priming message creating the list of ParticipantDefinition to send
* and fill the ElementState map of the AC Definition.
*
* @param acmDefinition the AutomationComposition Definition
@@ -82,11 +85,13 @@ public class ParticipantPrimePublisher extends AbstractParticipantPublisher<Part
acmDefinition.setState(AcTypeState.PRIMING);
var acElements = AcmUtils.extractAcElementsFromServiceTemplate(acmDefinition.getServiceTemplate());
Map<ToscaConceptIdentifier, UUID> supportedElementMap = new HashMap<>();
+ var participantIds = new HashSet<UUID>();
if (AcTypeState.PRIMED.equals(acmDefinition.getState())) {
// scenario Prime again, participants already assigned
for (var elementEntry : acElements) {
var elementState = acmDefinition.getElementStateMap().get(elementEntry.getKey());
elementState.setState(AcTypeState.PRIMING);
+ participantIds.add(elementState.getParticipantId());
var type = new ToscaConceptIdentifier(elementEntry.getValue().getType(),
elementEntry.getValue().getTypeVersion());
supportedElementMap.put(type, elementState.getParticipantId());
@@ -99,9 +104,14 @@ public class ParticipantPrimePublisher extends AbstractParticipantPublisher<Part
elementState.setState(AcTypeState.PRIMING);
var type = new ToscaConceptIdentifier(elementEntry.getValue().getType(),
elementEntry.getValue().getTypeVersion());
- elementState.setParticipantId(supportedElementMap.get(type));
+ var participantId = supportedElementMap.get(type);
+ if (participantId != null) {
+ elementState.setParticipantId(participantId);
+ participantIds.add(participantId);
+ }
}
}
+ acmParticipantProvider.verifyParticipantState(participantIds);
return AcmUtils.prepareParticipantPriming(acElements, supportedElementMap);
}