aboutsummaryrefslogtreecommitdiffstats
path: root/runtime-acm/src/main
diff options
context:
space:
mode:
authorFrancescoFioraEst <francesco.fiora@est.tech>2024-05-28 14:28:52 +0100
committerFrancescoFioraEst <francesco.fiora@est.tech>2024-05-29 10:44:16 +0100
commitf2ed4877b7cfba7bcf224cbe9d7e739ec637a055 (patch)
tree3e1fbcc0321e73d99404837a1b911a3054d2e903 /runtime-acm/src/main
parent6d8ebc3dfe0ee496e009eec4db39babcde51a289 (diff)
Remove Map in ACM-R for timeout Participant
Issue-ID: POLICY-5024 Change-Id: Ibb8a93be55380b110c84ec4580690f43e624d125 Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
Diffstat (limited to 'runtime-acm/src/main')
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java7
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionPartecipantScanner.java34
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionParticipantHandler.java5
3 files changed, 14 insertions, 32 deletions
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java
index 0d814bff5..8f3a4c2eb 100644
--- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java
+++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java
@@ -28,8 +28,6 @@ import java.util.concurrent.TimeUnit;
import lombok.RequiredArgsConstructor;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.onap.policy.clamp.models.acm.messages.kafka.participant.ParticipantStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
@@ -72,11 +70,6 @@ public class SupervisionAspect implements Closeable {
}
}
- @Before("@annotation(MessageIntercept) && args(participantStatusMsg,..)")
- public void handleParticipantStatus(ParticipantStatus participantStatusMsg) {
- executor.execute(() -> partecipantScanner.handleParticipantStatus(participantStatusMsg.getParticipantId()));
- }
-
@Override
public void close() throws IOException {
executor.shutdown();
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionPartecipantScanner.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionPartecipantScanner.java
index c07c584cd..4d2a22f26 100644
--- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionPartecipantScanner.java
+++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionPartecipantScanner.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2023 Nordix Foundation.
+ * Copyright (C) 2023-2024 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,11 +20,11 @@
package org.onap.policy.clamp.acm.runtime.supervision;
-import java.util.UUID;
import org.onap.policy.clamp.acm.runtime.main.parameters.AcRuntimeParameterGroup;
import org.onap.policy.clamp.models.acm.concepts.Participant;
import org.onap.policy.clamp.models.acm.concepts.ParticipantState;
import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.models.acm.utils.TimestampHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -36,7 +36,7 @@ import org.springframework.stereotype.Component;
public class SupervisionPartecipantScanner {
private static final Logger LOGGER = LoggerFactory.getLogger(SupervisionPartecipantScanner.class);
- private final TimeoutHandler<UUID> participantStatusTimeout = new TimeoutHandler<>();
+ private final long maxWaitMs;
private final ParticipantProvider participantProvider;
@@ -49,8 +49,7 @@ public class SupervisionPartecipantScanner {
public SupervisionPartecipantScanner(final ParticipantProvider participantProvider,
final AcRuntimeParameterGroup acRuntimeParameterGroup) {
this.participantProvider = participantProvider;
-
- participantStatusTimeout.setMaxWaitMs(acRuntimeParameterGroup.getParticipantParameters().getMaxStatusWaitMs());
+ this.maxWaitMs = acRuntimeParameterGroup.getParticipantParameters().getMaxStatusWaitMs();
}
/**
@@ -68,29 +67,16 @@ public class SupervisionPartecipantScanner {
private void scanParticipantStatus(Participant participant) {
var id = participant.getParticipantId();
- if (participantStatusTimeout.isTimeout(id)) {
- if (ParticipantState.ON_LINE.equals(participant.getParticipantState())) {
- // restart scenario
- LOGGER.debug("Participant is back ON_LINE {}", id);
- participantStatusTimeout.clear(id);
- } else {
- LOGGER.debug("report Participant is still OFF_LINE {}", id);
- return;
- }
+ if (ParticipantState.OFF_LINE.equals(participant.getParticipantState())) {
+ LOGGER.debug("report Participant is still OFF_LINE {}", id);
+ return;
}
- if (participantStatusTimeout.getDuration(id) > participantStatusTimeout.getMaxWaitMs()) {
+ var now = TimestampHelper.nowEpochMilli();
+ var lastMsg = TimestampHelper.toEpochMilli(participant.getLastMsg());
+ if ((now - lastMsg) > maxWaitMs) {
LOGGER.debug("report Participant OFF_LINE {}", id);
- participantStatusTimeout.setTimeout(id);
participant.setParticipantState(ParticipantState.OFF_LINE);
participantProvider.updateParticipant(participant);
}
}
-
- /**
- * handle participant Status message.
- */
- public void handleParticipantStatus(UUID id) {
- LOGGER.debug("Participant is ON_LINE {}", id);
- participantStatusTimeout.clear(id);
- }
}
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 24c256fa4..d1efb6ac0 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
@@ -46,6 +46,7 @@ import org.onap.policy.clamp.models.acm.messages.kafka.participant.ParticipantSt
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.persistence.provider.ParticipantProvider;
+import org.onap.policy.clamp.models.acm.utils.TimestampHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -159,8 +160,9 @@ public class SupervisionParticipantHandler {
private void checkOnline(Participant participant) {
if (ParticipantState.OFF_LINE.equals(participant.getParticipantState())) {
participant.setParticipantState(ParticipantState.ON_LINE);
- participantProvider.saveParticipant(participant);
}
+ participant.setLastMsg(TimestampHelper.now());
+ participantProvider.saveParticipant(participant);
}
private void handleRestart(UUID participantId) {
@@ -226,6 +228,7 @@ public class SupervisionParticipantHandler {
participant.setParticipantId(participantId);
participant.setParticipantSupportedElementTypes(participantSupportedElementType);
participant.setParticipantState(ParticipantState.ON_LINE);
+ participant.setLastMsg(TimestampHelper.now());
return participant;
}