aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common/eventmanager
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common/eventmanager')
-rw-r--r--controlloop/common/eventmanager/pom.xml6
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java4
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java8
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java6
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java12
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java63
6 files changed, 88 insertions, 11 deletions
diff --git a/controlloop/common/eventmanager/pom.xml b/controlloop/common/eventmanager/pom.xml
index deb17b8aa..6897317d5 100644
--- a/controlloop/common/eventmanager/pom.xml
+++ b/controlloop/common/eventmanager/pom.xml
@@ -188,6 +188,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.onap.policy.common</groupId>
+ <artifactId>utils-test</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.onap.policy.drools-applications.controlloop.common</groupId>
<artifactId>simulators</artifactId>
<version>${project.version}</version>
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
index 930f9578f..8641ddc27 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
@@ -90,7 +90,7 @@ public class ControlLoopEventManager implements LockCallback, Serializable {
public final UUID requestID;
private String controlLoopResult;
- private transient ControlLoopProcessor processor = null;
+ private ControlLoopProcessor processor = null;
private VirtualControlLoopEvent onset;
private Integer numOnsets = 0;
private Integer numAbatements = 0;
@@ -101,7 +101,7 @@ public class ControlLoopEventManager implements LockCallback, Serializable {
private LinkedList<ControlLoopOperation> controlLoopHistory = new LinkedList<>();
private ControlLoopOperationManager currentOperation = null;
private ControlLoopOperationManager lastOperationManager = null;
- private transient TargetLock targetLock = null;
+ private TargetLock targetLock = null;
private AaiGetVnfResponse vnfResponse = null;
private AaiGetVserverResponse vserverResponse = null;
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
index 1ad1e5af7..466c826b1 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
@@ -77,13 +77,13 @@ public class ControlLoopOperationManager implements Serializable {
// for Drools Rule statements.
//
public final ControlLoopEvent onset;
- public final transient Policy policy;
+ public final Policy policy;
//
// Properties used to track the Operation
//
private int attempts = 0;
- private transient Operation currentOperation = null;
+ private Operation currentOperation = null;
private LinkedList<Operation> operationHistory = new LinkedList<>();
private PolicyResult policyResult = null;
private ControlLoopEventManager eventManager = null;
@@ -104,7 +104,9 @@ public class ControlLoopOperationManager implements Serializable {
//
// Internal class used for tracking
//
- private class Operation {
+ private class Operation implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private ControlLoopOperation clOperation = new ControlLoopOperation();
private PolicyResult policyResult = null;
private int attempt = 0;
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java
index 3dbc25fcf..ac684fcda 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/processor/ControlLoopProcessor.java
@@ -20,6 +20,7 @@
package org.onap.policy.controlloop.processor;
+import java.io.Serializable;
import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.policy.ControlLoop;
import org.onap.policy.controlloop.policy.ControlLoopPolicy;
@@ -29,8 +30,9 @@ import org.onap.policy.controlloop.policy.PolicyResult;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.CustomClassLoaderConstructor;
-public class ControlLoopProcessor {
-
+public class ControlLoopProcessor implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private final String yaml;
private final ControlLoopPolicy policy;
private String currentNestedPolicyId = null;
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
index 562a46e4e..1673df3be 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java
@@ -54,6 +54,7 @@ import org.onap.policy.aai.RelationshipData;
import org.onap.policy.aai.RelationshipList;
import org.onap.policy.aai.util.AaiException;
import org.onap.policy.common.endpoints.http.server.HttpServletServer;
+import org.onap.policy.common.utils.io.Serializer;
import org.onap.policy.controlloop.ControlLoopEventStatus;
import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.ControlLoopNotificationType;
@@ -212,7 +213,7 @@ public class ControlLoopEventManagerTest {
}
@Test
- public void subsequentOnsetTest() {
+ public void subsequentOnsetTest() throws IOException {
UUID requestId = UUID.randomUUID();
VirtualControlLoopEvent event = new VirtualControlLoopEvent();
event.setClosedLoopControlName("TwoOnsetTest");
@@ -555,6 +556,9 @@ public class ControlLoopEventManagerTest {
VirtualControlLoopNotification clfNotification = manager.isControlLoopFinal();
assertNull(clfNotification);
+
+ // serialize and de-serialize manager
+ manager = Serializer.roundTrip(manager);
manager.getProcessor().nextPolicyForResult(PolicyResult.SUCCESS);
clfNotification = manager.isControlLoopFinal();
@@ -626,6 +630,9 @@ public class ControlLoopEventManagerTest {
ControlLoopOperationManager clom = manager.processControlLoop();
assertNotNull(clom);
assertNull(clom.getOperationResult());
+
+ // serialize and de-serialize manager
+ manager = Serializer.roundTrip(manager);
// Test operation in progress
try {
@@ -715,6 +722,9 @@ public class ControlLoopEventManagerTest {
}
assertNull(manager.unlockCurrentOperation());
+
+ // serialize and de-serialize manager
+ manager = Serializer.roundTrip(manager);
ControlLoopOperationManager clom = manager.processControlLoop();
assertNotNull(clom);
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java
index d1763f52c..dae03aa6e 100644
--- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java
+++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManagerTest.java
@@ -35,15 +35,12 @@ import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.HashMap;
import java.util.UUID;
-
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
-
-
import org.apache.commons.io.IOUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -59,6 +56,7 @@ import org.onap.policy.appclcm.LcmRequestWrapper;
import org.onap.policy.appclcm.LcmResponse;
import org.onap.policy.appclcm.LcmResponseWrapper;
import org.onap.policy.common.endpoints.http.server.HttpServletServer;
+import org.onap.policy.common.utils.io.Serializer;
import org.onap.policy.controlloop.ControlLoopEventStatus;
import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.ControlLoopNotificationType;
@@ -850,4 +848,63 @@ public class ControlLoopOperationManagerTest {
assertEquals(1, numEventsAfter - numEventsBefore);
}
+
+ @Test
+ public void testSerialization() throws Exception {
+ InputStream is = new FileInputStream(new File("src/test/resources/test.yaml"));
+ final String yamlString = IOUtils.toString(is, StandardCharsets.UTF_8);
+
+ UUID requestId = UUID.randomUUID();
+ VirtualControlLoopEvent onsetEvent = new VirtualControlLoopEvent();
+ onsetEvent.setClosedLoopControlName("TwoOnsetTest");
+ onsetEvent.setRequestId(requestId);
+ onsetEvent.setTarget("generic-vnf.vnf-id");
+ onsetEvent.setClosedLoopAlarmStart(Instant.now());
+ onsetEvent.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET);
+ onsetEvent.setAai(new HashMap<>());
+ onsetEvent.getAai().put("generic-vnf.vnf-name", "onsetOne");
+
+ ControlLoopEventManager manager =
+ new ControlLoopEventManager(onsetEvent.getClosedLoopControlName(), onsetEvent.getRequestId());
+ VirtualControlLoopNotification notification = manager.activate(yamlString, onsetEvent);
+ assertNotNull(notification);
+ assertEquals(ControlLoopNotificationType.ACTIVE, notification.getNotification());
+
+ Policy policy = manager.getProcessor().getCurrentPolicy();
+ ControlLoopOperationManager clom = new ControlLoopOperationManager(onsetEvent, policy, manager);
+ assertNotNull(clom);
+
+ clom.startOperation(onsetEvent);
+ assertTrue(clom.isOperationRunning());
+
+ clom = Serializer.roundTrip(clom);
+ assertNotNull(clom);
+ assertTrue(clom.isOperationRunning());
+
+ SOResponse soResponse = new SOResponse();
+ final SOResponseWrapper soRw = new SOResponseWrapper(soResponse, null);
+
+ PolicyEngine.manager.setEnvironmentProperty("guard.disabled", "false");
+ PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_URL,
+ "http://somewhere.over.the.rainbow");
+ PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_USER, "Dorothy");
+ PolicyEngine.manager.setEnvironmentProperty(org.onap.policy.guard.Util.ONAP_KEY_PASS, "Toto");
+
+ assertEquals(PolicyResult.FAILURE, clom.onResponse(soRw));
+ assertFalse(clom.isOperationRunning());
+ assertEquals(1, clom.getHistory().size());
+
+ clom = Serializer.roundTrip(clom);
+ assertNotNull(clom);
+ assertFalse(clom.isOperationRunning());
+ assertEquals(1, clom.getHistory().size());
+
+ System.setProperty("OperationsHistoryPU", "TestOperationsHistoryPU");
+ assertEquals(PolicyResult.FAILURE, clom.onResponse(soRw));
+
+ clom = Serializer.roundTrip(clom);
+ assertNotNull(clom);
+ assertFalse(clom.isOperationRunning());
+ assertEquals(1, clom.getHistory().size());
+ }
}