aboutsummaryrefslogtreecommitdiffstats
path: root/runtime-acm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime-acm')
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProvider.java4
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionAspect.java5
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScanner.java68
-rw-r--r--runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/scanner/MonitoringScanner.java123
-rw-r--r--runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java6
-rw-r--r--runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java66
6 files changed, 175 insertions, 97 deletions
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProvider.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProvider.java
index 48b139495..d225d4462 100644
--- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProvider.java
+++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProvider.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation.
+ * Copyright (C) 2021-2025 Nordix Foundation.
* Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -137,7 +137,7 @@ public class CommissioningProvider {
throw new PfModelRuntimeException(Status.BAD_REQUEST,
"ACM not in COMMISSIONED state, Delete of ACM Definition not allowed");
}
- var serviceTemplate = acDefinitionProvider.deleteAcDefintion(compositionId);
+ var serviceTemplate = acDefinitionProvider.deleteAcDefinition(compositionId);
return createCommissioningResponse(compositionId, serviceTemplate);
}
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 9ef979f8e..b52e47d22 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
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation.
+ * Copyright (C) 2021-2025 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,7 +21,6 @@
package org.onap.policy.clamp.acm.runtime.supervision;
import java.io.Closeable;
-import java.io.IOException;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@@ -71,7 +70,7 @@ public class SupervisionAspect implements Closeable {
}
@Override
- public void close() throws IOException {
+ public void close() {
executor.shutdown();
}
}
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 718bccefb..355d20e99 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
@@ -26,21 +26,11 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
-import org.onap.policy.clamp.acm.runtime.supervision.scanner.AcDefinitionScanner;
-import org.onap.policy.clamp.acm.runtime.supervision.scanner.PhaseScanner;
-import org.onap.policy.clamp.acm.runtime.supervision.scanner.SimpleScanner;
-import org.onap.policy.clamp.acm.runtime.supervision.scanner.StageScanner;
-import org.onap.policy.clamp.acm.runtime.supervision.scanner.UpdateSync;
-import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
+import org.onap.policy.clamp.acm.runtime.supervision.scanner.MonitoringScanner;
import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionDefinition;
-import org.onap.policy.clamp.models.acm.concepts.DeployState;
-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.persistence.provider.AcDefinitionProvider;
import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider;
import org.onap.policy.clamp.models.acm.persistence.provider.MessageProvider;
-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;
@@ -55,11 +45,8 @@ public class SupervisionScanner {
private final AutomationCompositionProvider automationCompositionProvider;
private final AcDefinitionProvider acDefinitionProvider;
- private final AcDefinitionScanner acDefinitionScanner;
- private final StageScanner stageScanner;
- private final SimpleScanner simpleScanner;
- private final PhaseScanner phaseScanner;
private final MessageProvider messageProvider;
+ private final MonitoringScanner monitoringScanner;
/**
* Run Scanning.
@@ -89,16 +76,7 @@ public class SupervisionScanner {
if (optJobId.isEmpty()) {
return;
}
- var messages = messageProvider.getAllMessages(compositionId);
- var acDefinitionOpt = acDefinitionProvider.findAcDefinition(compositionId);
- var updateSync = new UpdateSync();
- for (var message : messages) {
- acDefinitionOpt.ifPresent(
- acDefinition -> updateSync.or(acDefinitionScanner.scanMessage(acDefinition, message)));
- messageProvider.removeMessage(message.getMessageId());
- }
- acDefinitionOpt.ifPresent(acDefinition ->
- acDefinitionScanner.scanAutomationCompositionDefinition(acDefinition, updateSync));
+ monitoringScanner.scanAcDefinition(compositionId);
messageProvider.removeJob(optJobId.get());
}
@@ -108,45 +86,7 @@ public class SupervisionScanner {
if (optJobId.isEmpty()) {
return;
}
- var messages = messageProvider.getAllMessages(instanceId);
- var automationCompositionOpt = automationCompositionProvider.findAutomationComposition(instanceId);
- var updateSync = new UpdateSync();
- for (var message : messages) {
- automationCompositionOpt.ifPresent(ac -> updateSync.or(simpleScanner.scanMessage(ac, message)));
- messageProvider.removeMessage(message.getMessageId());
- }
- if (automationCompositionOpt.isPresent()) {
- var automationComposition = automationCompositionOpt.get();
- var compositionId = automationComposition.getCompositionTargetId() != null
- ? automationComposition.getCompositionTargetId() : automationComposition.getCompositionId();
- var acDefinition = acDefinitionMap.computeIfAbsent(compositionId, acDefinitionProvider::getAcDefinition);
- scanAutomationComposition(automationComposition, acDefinition.getServiceTemplate(), updateSync);
- }
-
+ monitoringScanner.scanAutomationComposition(instanceId, acDefinitionMap);
messageProvider.removeJob(optJobId.get());
}
-
- private void scanAutomationComposition(final AutomationComposition automationComposition,
- ToscaServiceTemplate serviceTemplate, UpdateSync updateSync) {
- LOGGER.debug("scanning automation composition {} . . .", automationComposition.getInstanceId());
-
- if (!AcmUtils.isInTransitionalState(automationComposition.getDeployState(),
- automationComposition.getLockState(), automationComposition.getSubState())
- || StateChangeResult.FAILED.equals(automationComposition.getStateChangeResult())) {
- LOGGER.debug("automation composition {} scanned, OK", automationComposition.getInstanceId());
- simpleScanner.saveAndSync(automationComposition, updateSync);
- return;
- }
-
- if (DeployState.MIGRATING.equals(automationComposition.getDeployState())) {
- stageScanner.scanStage(automationComposition, serviceTemplate, updateSync);
- } else if (DeployState.UPDATING.equals(automationComposition.getDeployState())
- || SubState.REVIEWING.equals(automationComposition.getSubState())
- || SubState.PREPARING.equals(automationComposition.getSubState())
- || SubState.MIGRATION_PRECHECKING.equals(automationComposition.getSubState())) {
- simpleScanner.simpleScan(automationComposition, updateSync);
- } else {
- phaseScanner.scanWithPhase(automationComposition, serviceTemplate, updateSync);
- }
- }
}
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/scanner/MonitoringScanner.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/scanner/MonitoringScanner.java
new file mode 100644
index 000000000..66875faa1
--- /dev/null
+++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/supervision/scanner/MonitoringScanner.java
@@ -0,0 +1,123 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2025 Nordix Foundation.
+ * ================================================================================
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.clamp.acm.runtime.supervision.scanner;
+
+import jakarta.transaction.Transactional;
+import java.util.Map;
+import java.util.UUID;
+import lombok.RequiredArgsConstructor;
+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.DeployState;
+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.persistence.provider.AcDefinitionProvider;
+import org.onap.policy.clamp.models.acm.persistence.provider.AutomationCompositionProvider;
+import org.onap.policy.clamp.models.acm.persistence.provider.MessageProvider;
+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;
+
+@Component
+@RequiredArgsConstructor
+@Transactional
+public class MonitoringScanner {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringScanner.class);
+
+ private final AutomationCompositionProvider automationCompositionProvider;
+ private final AcDefinitionProvider acDefinitionProvider;
+ private final AcDefinitionScanner acDefinitionScanner;
+ private final StageScanner stageScanner;
+ private final SimpleScanner simpleScanner;
+ private final PhaseScanner phaseScanner;
+ private final MessageProvider messageProvider;
+
+ /**
+ * Scan Composition Definition by compositionId.
+ *
+ * @param compositionId the Composition Definition id
+ */
+ public void scanAcDefinition(UUID compositionId) {
+ var messages = messageProvider.getAllMessages(compositionId);
+ var acDefinitionOpt = acDefinitionProvider.findAcDefinition(compositionId);
+ var updateSync = new UpdateSync();
+ for (var message : messages) {
+ acDefinitionOpt.ifPresent(
+ acDefinition -> updateSync.or(acDefinitionScanner.scanMessage(acDefinition, message)));
+ messageProvider.removeMessage(message.getMessageId());
+ }
+ acDefinitionOpt.ifPresent(acDefinition ->
+ acDefinitionScanner.scanAutomationCompositionDefinition(acDefinition, updateSync));
+ }
+
+ /**
+ * Scan AutomationComposition Instance by instanceId.
+ *
+ * @param instanceId the AutomationComposition Instance id
+ * @param acDefinitionMap Map of Composition Definitions
+ */
+ public void scanAutomationComposition(UUID instanceId,
+ Map<UUID, AutomationCompositionDefinition> acDefinitionMap) {
+ var messages = messageProvider.getAllMessages(instanceId);
+ var automationCompositionOpt = automationCompositionProvider.findAutomationComposition(instanceId);
+ var updateSync = new UpdateSync();
+ for (var message : messages) {
+ automationCompositionOpt.ifPresent(ac -> updateSync.or(simpleScanner.scanMessage(ac, message)));
+ messageProvider.removeMessage(message.getMessageId());
+ }
+ if (automationCompositionOpt.isPresent()) {
+ var automationComposition = automationCompositionOpt.get();
+ var compositionId = automationComposition.getCompositionTargetId() != null
+ ? automationComposition.getCompositionTargetId() : automationComposition.getCompositionId();
+ var acDefinition = acDefinitionMap.computeIfAbsent(compositionId, acDefinitionProvider::getAcDefinition);
+ scanAutomationComposition(automationComposition, acDefinition.getServiceTemplate(), updateSync);
+ }
+ }
+
+ private void scanAutomationComposition(final AutomationComposition automationComposition,
+ ToscaServiceTemplate serviceTemplate, UpdateSync updateSync) {
+ LOGGER.debug("scanning automation composition {} . . .", automationComposition.getInstanceId());
+
+ if (!AcmUtils.isInTransitionalState(automationComposition.getDeployState(),
+ automationComposition.getLockState(), automationComposition.getSubState())
+ || StateChangeResult.FAILED.equals(automationComposition.getStateChangeResult())) {
+ LOGGER.debug("automation composition {} scanned, OK", automationComposition.getInstanceId());
+ simpleScanner.saveAndSync(automationComposition, updateSync);
+ return;
+ }
+
+ if (DeployState.MIGRATING.equals(automationComposition.getDeployState())) {
+ stageScanner.scanStage(automationComposition, serviceTemplate, updateSync);
+ } else if (DeployState.UPDATING.equals(automationComposition.getDeployState())
+ || SubState.REVIEWING.equals(automationComposition.getSubState())
+ || SubState.PREPARING.equals(automationComposition.getSubState())
+ || SubState.MIGRATION_PRECHECKING.equals(automationComposition.getSubState())) {
+ simpleScanner.simpleScan(automationComposition, updateSync);
+ } else {
+ phaseScanner.scanWithPhase(automationComposition, serviceTemplate, updateSync);
+ }
+ }
+}
diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java
index 8c76baef7..e168210b9 100644
--- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java
+++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/commissioning/CommissioningProviderTest.java
@@ -1,6 +1,6 @@
/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2021-2024 Nordix Foundation.
+ * Copyright (C) 2021-2025 Nordix Foundation.
* Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -138,7 +138,7 @@ class CommissioningProviderTest {
var compositionId = UUID.randomUUID();
var serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
assertNotNull(serviceTemplate);
- when(acDefinitionProvider.deleteAcDefintion(compositionId)).thenReturn(serviceTemplate);
+ when(acDefinitionProvider.deleteAcDefinition(compositionId)).thenReturn(serviceTemplate);
var acmDefinition = new AutomationCompositionDefinition();
acmDefinition.setCompositionId(compositionId);
@@ -151,7 +151,7 @@ class CommissioningProviderTest {
provider.deleteAutomationCompositionDefinition(compositionId);
- verify(acDefinitionProvider).deleteAcDefintion(compositionId);
+ verify(acDefinitionProvider).deleteAcDefinition(compositionId);
}
@Test
diff --git a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java
index ab1564bec..bd1850050 100644
--- a/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java
+++ b/runtime-acm/src/test/java/org/onap/policy/clamp/acm/runtime/supervision/SupervisionScannerTest.java
@@ -38,6 +38,7 @@ import java.util.UUID;
import org.junit.jupiter.api.Test;
import org.onap.policy.clamp.acm.runtime.instantiation.InstantiationUtils;
import org.onap.policy.clamp.acm.runtime.supervision.scanner.AcDefinitionScanner;
+import org.onap.policy.clamp.acm.runtime.supervision.scanner.MonitoringScanner;
import org.onap.policy.clamp.acm.runtime.supervision.scanner.PhaseScanner;
import org.onap.policy.clamp.acm.runtime.supervision.scanner.SimpleScanner;
import org.onap.policy.clamp.acm.runtime.supervision.scanner.StageScanner;
@@ -64,12 +65,11 @@ class SupervisionScannerTest {
private static final UUID INSTANCE_ID = UUID.randomUUID();
private static final String JOB_ID = "JOB_ID";
- private AutomationCompositionDefinition createAutomationCompositionDefinition(
- AcTypeState acTypeState, StateChangeResult stateChangeResult) {
+ private AutomationCompositionDefinition createAutomationCompositionDefinition(AcTypeState acTypeState) {
var serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
var acDefinition = new AutomationCompositionDefinition();
acDefinition.setState(acTypeState);
- acDefinition.setStateChangeResult(stateChangeResult);
+ acDefinition.setStateChangeResult(StateChangeResult.NO_ERROR);
acDefinition.setCompositionId(COMPOSITION_ID);
acDefinition.setLastMsg(TimestampHelper.now());
acDefinition.setServiceTemplate(Objects.requireNonNull(serviceTemplate));
@@ -96,18 +96,13 @@ class SupervisionScannerTest {
return acDefinitionProvider;
}
- private AcDefinitionProvider createAcDefinitionProvider(AcTypeState acTypeState,
- StateChangeResult stateChangeResult) {
- return createAcDefinitionProvider(createAutomationCompositionDefinition(acTypeState, stateChangeResult));
- }
-
- private AcDefinitionProvider createAcDefinitionProvider() {
- return createAcDefinitionProvider(AcTypeState.PRIMED, StateChangeResult.NO_ERROR);
+ private AcDefinitionProvider createAcDefinitionProvider(AcTypeState acTypeState) {
+ return createAcDefinitionProvider(createAutomationCompositionDefinition(acTypeState));
}
@Test
void testAcDefinition() {
- var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMING, StateChangeResult.NO_ERROR);
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMING);
var acDefinitionScanner = mock(AcDefinitionScanner.class);
when(acDefinitionScanner.scanMessage(any(), any())).thenReturn(new UpdateSync());
var messageProvider = mock(MessageProvider.class);
@@ -115,9 +110,12 @@ class SupervisionScannerTest {
when(messageProvider.findCompositionMessages()).thenReturn(Set.of(COMPOSITION_ID));
var message = new DocMessage();
when(messageProvider.getAllMessages(COMPOSITION_ID)).thenReturn(List.of(message));
- var supervisionScanner = new SupervisionScanner(mock(AutomationCompositionProvider.class), acDefinitionProvider,
+ var automationCompositionProvider = mock(AutomationCompositionProvider.class);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
acDefinitionScanner, mock(StageScanner.class), mock(SimpleScanner.class), mock(PhaseScanner.class),
messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verify(acDefinitionScanner).scanAutomationCompositionDefinition(any(), any());
verify(messageProvider).removeMessage(message.getMessageId());
@@ -126,14 +124,17 @@ class SupervisionScannerTest {
@Test
void testAcDefinitionJobExist() {
- var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMING, StateChangeResult.NO_ERROR);
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMING);
var acDefinitionScanner = mock(AcDefinitionScanner.class);
var messageProvider = mock(MessageProvider.class);
when(messageProvider.createJob(COMPOSITION_ID)).thenReturn(Optional.empty());
when(messageProvider.findCompositionMessages()).thenReturn(Set.of());
- var supervisionScanner = new SupervisionScanner(mock(AutomationCompositionProvider.class), acDefinitionProvider,
+ var automationCompositionProvider = mock(AutomationCompositionProvider.class);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
acDefinitionScanner, mock(StageScanner.class), mock(SimpleScanner.class), mock(PhaseScanner.class),
messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verify(acDefinitionScanner, times(0)).scanAutomationCompositionDefinition(any(), any());
}
@@ -152,8 +153,11 @@ class SupervisionScannerTest {
var simpleScanner = mock(SimpleScanner.class);
var phaseScanner = mock(PhaseScanner.class);
var messageProvider = mock(MessageProvider.class);
- var supervisionScanner = new SupervisionScanner(automationCompositionProvider, createAcDefinitionProvider(),
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
mock(AcDefinitionScanner.class), stageScanner, simpleScanner, phaseScanner, messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
// not in transition
supervisionScanner.run();
@@ -187,8 +191,11 @@ class SupervisionScannerTest {
var phaseScanner = mock(PhaseScanner.class);
var messageProvider = mock(MessageProvider.class);
when(messageProvider.createJob(automationComposition.getInstanceId())).thenReturn(Optional.of(JOB_ID));
- var supervisionScanner = new SupervisionScanner(automationCompositionProvider, createAcDefinitionProvider(),
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
mock(AcDefinitionScanner.class), stageScanner, simpleScanner, phaseScanner, messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
// automationComposition not present in DB
supervisionScanner.run();
@@ -227,8 +234,11 @@ class SupervisionScannerTest {
when(messageProvider.getAllMessages(INSTANCE_ID)).thenReturn(List.of(message));
when(messageProvider.findInstanceMessages()).thenReturn(Set.of(INSTANCE_ID));
- var supervisionScanner = new SupervisionScanner(automationCompositionProvider, createAcDefinitionProvider(),
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
mock(AcDefinitionScanner.class), stageScanner, simpleScanner, phaseScanner, messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verify(stageScanner, times(0)).scanStage(any(), any(), any());
@@ -261,18 +271,19 @@ class SupervisionScannerTest {
when(automationCompositionProvider.findAutomationComposition(automationComposition.getInstanceId()))
.thenReturn(Optional.of(automationComposition));
- var definitionTarget = createAutomationCompositionDefinition(AcTypeState.PRIMED, StateChangeResult.NO_ERROR);
+ var definitionTarget = createAutomationCompositionDefinition(AcTypeState.PRIMED);
definitionTarget.setCompositionId(compositionTargetId);
- var acDefinitionProvider = createAcDefinitionProvider();
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
when(acDefinitionProvider.getAcDefinition(compositionTargetId)).thenReturn(definitionTarget);
var stageScanner = mock(StageScanner.class);
var messageProvider = mock(MessageProvider.class);
when(messageProvider.createJob(automationComposition.getInstanceId())).thenReturn(Optional.of(JOB_ID));
-
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
+ mock(AcDefinitionScanner.class), stageScanner, mock(SimpleScanner.class), mock(PhaseScanner.class),
+ messageProvider);
var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
- mock(AcDefinitionScanner.class), stageScanner, mock(SimpleScanner.class),
- mock(PhaseScanner.class), messageProvider);
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verify(stageScanner).scanStage(automationComposition, definitionTarget.getServiceTemplate(),
@@ -301,9 +312,12 @@ class SupervisionScannerTest {
when(messageProvider.createJob(automationComposition.getInstanceId())).thenReturn(Optional.of(JOB_ID));
var simpleScanner = mock(SimpleScanner.class);
- var supervisionScanner = new SupervisionScanner(automationCompositionProvider, createAcDefinitionProvider(),
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
mock(AcDefinitionScanner.class), mock(StageScanner.class), simpleScanner, mock(PhaseScanner.class),
messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verify(simpleScanner).simpleScan(automationComposition, new UpdateSync());
verify(messageProvider).removeJob(JOB_ID);
@@ -359,8 +373,11 @@ class SupervisionScannerTest {
var phaseScanner = mock(PhaseScanner.class);
var stageScanner = mock(StageScanner.class);
- var supervisionScanner = new SupervisionScanner(automationCompositionProvider, createAcDefinitionProvider(),
+ var acDefinitionProvider = createAcDefinitionProvider(AcTypeState.PRIMED);
+ var monitoringScanner = new MonitoringScanner(automationCompositionProvider, acDefinitionProvider,
mock(AcDefinitionScanner.class), stageScanner, simpleScanner, phaseScanner, messageProvider);
+ var supervisionScanner = new SupervisionScanner(automationCompositionProvider, acDefinitionProvider,
+ messageProvider, monitoringScanner);
supervisionScanner.run();
verifyNoInteraction(stageScanner, simpleScanner, phaseScanner);
@@ -368,5 +385,4 @@ class SupervisionScannerTest {
verify(messageProvider).removeMessage(message.getMessageId());
verify(messageProvider).removeJob(JOB_ID);
}
-
}