aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common/eventmanager/src/test/java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2018-04-24 17:15:52 -0400
committerJim Hahn <jrh3@att.com>2018-04-25 10:34:18 -0400
commitf16ff9d2988c42926a140370b54f17d6c3362e79 (patch)
treed160f7a6a558ca620ac34f7a503108ffcffc6f92 /controlloop/common/eventmanager/src/test/java
parent49bccdce3e434e2e05d0f36ab5e4f2163184825b (diff)
Prevent AAI re-query
Modified event manager code to not query AAI if there's already a response from a previous query. Modified code to store AAI properties in local variables instead of static to prevent any chance of a race condition in a multi-threaded situation. Updated junit tests to use a new manager for each subsequent query. Update license. Change variable name, in junit test, from onsetEvent to event, because it can be any type of event. Included fix to prevent initial AAI query if AAI data was already available in the initial onset event. Change-Id: Idf3e15ea8c5e297f22f23570c22fd837b72ba200 Issue-ID: POLICY-754 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'controlloop/common/eventmanager/src/test/java')
-rw-r--r--controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java76
1 files changed, 39 insertions, 37 deletions
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 700d1abf8..5bd361af3 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
@@ -213,8 +213,7 @@ public class ControlLoopEventManagerTest {
event.setTarget("generic-vnf.vnf-id");
event.setClosedLoopAlarmStart(Instant.now());
event.setClosedLoopEventStatus(ControlLoopEventStatus.ABATED);
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
assertNull(manager.getVnfResponse());
assertNull(manager.getVserverResponse());
try {
@@ -253,8 +252,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
VirtualControlLoopNotification notification = manager.activate(event);
assertNotNull(notification);
@@ -501,8 +499,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
manager.setActivated(true);
VirtualControlLoopNotification notification = manager.activate(event);
assertEquals(ControlLoopNotificationType.REJECTED, notification.getNotification());
@@ -526,8 +523,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
// Null YAML should fail
VirtualControlLoopNotification notificationNull = manager.activate(null, event);
@@ -569,8 +565,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
try {
manager.isControlLoopFinal();
fail("test should throw an exception here");
@@ -640,8 +635,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
try {
manager.processControlLoop();
fail("test should throw an exception here");
@@ -725,8 +719,7 @@ public class ControlLoopEventManagerTest {
event.setAai(new HashMap<>());
event.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager manager = makeManager(event);
try {
manager.finishOperation(null);
fail("test should throw an exception here");
@@ -780,8 +773,7 @@ public class ControlLoopEventManagerTest {
// This call should be exception free
manager.finishOperation(clom);
- ControlLoopEventManager otherManager =
- new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ ControlLoopEventManager otherManager = makeManager(event);
VirtualControlLoopNotification otherNotification = otherManager.activate(yamlStringStd, event);
assertNotNull(otherNotification);
assertEquals(ControlLoopNotificationType.ACTIVE, otherNotification.getNotification());
@@ -817,8 +809,7 @@ public class ControlLoopEventManagerTest {
abatedEvent.setAai(new HashMap<>());
abatedEvent.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(onsetEvent.getClosedLoopControlName(), onsetEvent.getRequestId());
+ ControlLoopEventManager manager = makeManager(onsetEvent);
VirtualControlLoopNotification notification = manager.activate(yamlString, onsetEvent);
assertNotNull(notification);
assertEquals(ControlLoopNotificationType.ACTIVE, notification.getNotification());
@@ -927,8 +918,7 @@ public class ControlLoopEventManagerTest {
onsetEvent.setAai(new HashMap<>());
onsetEvent.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(onsetEvent.getClosedLoopControlName(), onsetEvent.getRequestId());
+ ControlLoopEventManager manager = makeManager(onsetEvent);
assertTrue(0 == manager.getControlLoopTimeout(null));
assertTrue(120 == manager.getControlLoopTimeout(120));
@@ -954,70 +944,78 @@ public class ControlLoopEventManagerTest {
onsetEvent.setAai(new HashMap<>());
onsetEvent.getAai().put("generic-vnf.vnf-name", "onsetOne");
- ControlLoopEventManager manager =
- new ControlLoopEventManager(onsetEvent.getClosedLoopControlName(), onsetEvent.getRequestId());
+ ControlLoopEventManager manager = makeManager(onsetEvent);
manager.queryAai(onsetEvent);
VirtualControlLoopNotification notification = manager.activate(yamlString, onsetEvent);
assertNotNull(notification);
assertEquals(ControlLoopNotificationType.ACTIVE, notification.getNotification());
+ // repeat query with same manager
manager.queryAai(onsetEvent);
+
+ // remaining queries each use their own manager so they will be re-executed
+
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().put("generic-vnf.is-closed-loop-disabled", "true");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("is-closed-loop-disabled is set to true on VServer or VNF", e.getMessage());
}
onsetEvent.getAai().put("vserver.is-closed-loop-disabled", "true");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("is-closed-loop-disabled is set to true on VServer or VNF", e.getMessage());
}
onsetEvent.getAai().remove("generic-vnf.is-closed-loop-disabled");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("is-closed-loop-disabled is set to true on VServer or VNF", e.getMessage());
}
onsetEvent.getAai().remove("vserver.is-closed-loop-disabled");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().put("generic-vnf.is-closed-loop-disabled", "false");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
+
+ onsetEvent.getAai().remove("generic-vnf.is-closed-loop-disabled");
onsetEvent.getAai().put("vserver.is-closed-loop-disabled", "false");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().remove("generic-vnf.vnf-id");
onsetEvent.getAai().remove("generic-vnf.vnf-name");
onsetEvent.getAai().remove("vserver.vserver-name");
- manager.queryAai(onsetEvent);
+ onsetEvent.getAai().remove("generic-vnf.is-closed-loop-disabled");
+ onsetEvent.getAai().remove("vserver.is-closed-loop-disabled");
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().put("vserver.vserver-name", "AVserver");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().put("generic-vnf.vnf-name", "AVNFName");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().put("generic-vnf.vnf-id", "AVNFID");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().remove("vserver.vserver-name");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
onsetEvent.getAai().remove("generic-vnf.vnf-name");
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
// Force AAI errors
PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:9999");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("Exception from queryAai: org.onap.policy.aai.util.AaiException: AAI Response is null "
@@ -1027,7 +1025,7 @@ public class ControlLoopEventManagerTest {
onsetEvent.getAai().remove("generic-vnf.vnf-id");
onsetEvent.getAai().put("generic-vnf.vnf-name", "AVNFName");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("Exception from queryAai: org.onap.policy.aai.util.AaiException: AAI Response is null "
@@ -1037,7 +1035,7 @@ public class ControlLoopEventManagerTest {
onsetEvent.getAai().remove("generic-vnf.vnf-name");
onsetEvent.getAai().put("vserver.vserver-name", "AVserver");
try {
- manager.queryAai(onsetEvent);
+ makeManager(onsetEvent).queryAai(onsetEvent);
fail("test should throw an exception here");
} catch (Exception e) {
assertEquals("Exception from queryAai: org.onap.policy.aai.util.AaiException: AAI Response is null "
@@ -1046,4 +1044,8 @@ public class ControlLoopEventManagerTest {
PolicyEngine.manager.setEnvironmentProperty("aai.url", "http://localhost:6666");
}
+
+ private ControlLoopEventManager makeManager(VirtualControlLoopEvent event) {
+ return new ControlLoopEventManager(event.getClosedLoopControlName(), event.getRequestId());
+ }
}