From d944ef408f099cbd5e3644e4abb37886d16c985e Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Mon, 24 Jul 2023 09:58:26 +0100 Subject: Add missing validation in Delete AC instance Add missing validation in Delete AC instance when deployState is in DELETING. Fix send Heartbeat when "reportingTimeIntervalMs" is set to short time. Issue-ID: POLICY-4773 Change-Id: Ia90902a68aadbde5c2bb63d093a2495f1a529571 Signed-off-by: FrancescoFioraEst --- .../acm/participant/intermediary/comm/MessageSender.java | 13 ++++++++++--- .../intermediary/comm/ParticipantMessagePublisher.java | 2 ++ .../intermediary/handler/ParticipantHandler.java | 4 +++- .../participant/intermediary/comm/ParticipantCommTest.java | 2 +- .../intermediary/handler/ParticipantHandlerTest.java | 1 + 5 files changed, 17 insertions(+), 5 deletions(-) mode change 100644 => 100755 participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java mode change 100644 => 100755 participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java mode change 100644 => 100755 participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java mode change 100644 => 100755 participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java mode change 100644 => 100755 participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java (limited to 'participant') diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java old mode 100644 new mode 100755 index 0810a8a8a..2388b3bf8 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/MessageSender.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2021 Nordix Foundation. + * Copyright (C) 2021,2023 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,6 +29,8 @@ import org.onap.policy.clamp.acm.participant.intermediary.handler.ParticipantHan import org.onap.policy.clamp.acm.participant.intermediary.parameters.ParticipantParameters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; /** @@ -39,7 +41,8 @@ public class MessageSender extends TimerTask implements Closeable { private static final Logger LOGGER = LoggerFactory.getLogger(MessageSender.class); private final ParticipantHandler participantHandler; - private ScheduledExecutorService timerPool; + private final ScheduledExecutorService timerPool; + private final long interval; /** * Constructor, set the publisher. @@ -52,7 +55,11 @@ public class MessageSender extends TimerTask implements Closeable { // Kick off the timer timerPool = makeTimerPool(); - var interval = parameters.getIntermediaryParameters().getReportingTimeIntervalMs(); + interval = parameters.getIntermediaryParameters().getReportingTimeIntervalMs(); + } + + @EventListener + public void handleContextRefreshEvent(ContextRefreshedEvent ctxRefreshedEvent) { timerPool.scheduleAtFixedRate(this, interval, interval, TimeUnit.MILLISECONDS); } diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java old mode 100644 new mode 100755 index 4c885fa26..0f0f5dd48 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantMessagePublisher.java @@ -24,6 +24,7 @@ package org.onap.policy.clamp.acm.participant.intermediary.comm; import io.micrometer.core.annotation.Timed; import java.util.List; import javax.ws.rs.core.Response.Status; +import lombok.Getter; import org.onap.policy.clamp.acm.participant.intermediary.handler.Publisher; import org.onap.policy.clamp.common.acm.exception.AutomationCompositionRuntimeException; import org.onap.policy.clamp.models.acm.messages.dmaap.participant.AutomationCompositionDeployAck; @@ -46,6 +47,7 @@ public class ParticipantMessagePublisher implements Publisher { private static final Logger LOGGER = LoggerFactory.getLogger(ParticipantMessagePublisher.class); private static final String NOT_ACTIVE_TEXT = "Not Active!"; + @Getter private boolean active = false; private TopicSinkClient topicSinkClient; diff --git a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java old mode 100644 new mode 100755 index c78c7bb43..5f07518e1 --- a/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java +++ b/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandler.java @@ -223,7 +223,9 @@ public class ParticipantHandler { * Dispatch a heartbeat for this participant. */ public void sendHeartbeat() { - publisher.sendHeartbeat(makeHeartbeat(false)); + if (publisher.isActive()) { + publisher.sendHeartbeat(makeHeartbeat(false)); + } } /** diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java old mode 100644 new mode 100755 index db6a3a554..e959d136a --- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java +++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/comm/ParticipantCommTest.java @@ -137,9 +137,9 @@ class ParticipantCommTest { var participantHandler = mock(ParticipantHandler.class); var participantParameters = CommonTestData.getParticipantParameters(); var messageSender = new MessageSender(participantHandler, participantParameters); + messageSender.handleContextRefreshEvent(null); messageSender.run(); assertFalse(messageSender.makeTimerPool().isTerminated()); messageSender.close(); } - } diff --git a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java old mode 100644 new mode 100755 index 68cffe3cd..4e41d9740 --- a/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java +++ b/participant/participant-intermediary/src/test/java/org/onap/policy/clamp/acm/participant/intermediary/handler/ParticipantHandlerTest.java @@ -218,6 +218,7 @@ class ParticipantHandlerTest { when(cacheProvider.getParticipantId()).thenReturn(CommonTestData.getParticipantId()); when(cacheProvider.getAutomationCompositions()).thenReturn(CommonTestData.getTestAutomationCompositionMap()); var publisher = mock(ParticipantMessagePublisher.class); + when(publisher.isActive()).thenReturn(true); var participantHandler = new ParticipantHandler(mock(AutomationCompositionHandler.class), mock(AutomationCompositionOutHandler.class), publisher, cacheProvider); participantHandler.sendHeartbeat(); -- cgit 1.2.3-korg