// Syntax check the event
//
checkEventSyntax(event);
+ checkEventAAISyntax(event);
//
// At this point we are good to go with this event
//
// Syntax check the event
//
checkEventSyntax(event);
+ checkEventAAISyntax(event);
//
// Check the YAML
if (event.closedLoopEventStatus == ControlLoopEventStatus.ABATED) {
return;
}
+ if (event.target == null || event.target.length() < 1) {
+ throw new ControlLoopException("No target field");
+ } else if (! "VM_NAME".equalsIgnoreCase(event.target) &&
+ ! "VNF_NAME".equalsIgnoreCase(event.target) &&
+ ! "vserver.vserver-name".equalsIgnoreCase(event.target) &&
+ ! "generic-vnf.vnf-id".equalsIgnoreCase(event.target) &&
+ ! "generic-vnf.vnf-name".equalsIgnoreCase(event.target) ) {
+ throw new ControlLoopException("target field invalid - expecting VM_NAME or VNF_NAME");
+ }
+ }
+
+ public void checkEventAAISyntax(VirtualControlLoopEvent event) throws ControlLoopException {
if (event.AAI == null) {
throw new ControlLoopException("AAI is null");
}
} else if (isClosedLoopDisabled(event)) {
throw new ControlLoopException("is-closed-loop-disabled is set to true");
}
- if (event.target == null || event.target.length() < 1) {
- throw new ControlLoopException("No target field");
- } else if (! event.target.equalsIgnoreCase("VM_NAME") &&
- ! event.target.equalsIgnoreCase("VNF_NAME") &&
- ! event.target.equalsIgnoreCase("vserver.vserver-name") &&
- ! event.target.equalsIgnoreCase("generic-vnf.vnf-id") &&
- ! event.target.equalsIgnoreCase("generic-vnf.vnf-name") ) {
- throw new ControlLoopException("target field invalid - expecting VM_NAME or VNF_NAME");
- }
}
public static boolean isClosedLoopDisabled(AAIGETVnfResponse aaiResponse) {
package org.onap.policy.controlloop.eventmanager;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
import org.onap.policy.aai.RelationshipList;
import org.onap.policy.controlloop.ControlLoopEventStatus;
import org.onap.policy.controlloop.ControlLoopException;
+import org.onap.policy.controlloop.ControlLoopNotificationType;
import org.onap.policy.controlloop.Util;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
+import org.onap.policy.controlloop.VirtualControlLoopNotification;
import org.onap.policy.controlloop.policy.ControlLoopPolicy;
import org.onap.policy.drools.http.server.HttpServletServer;
import org.onap.policy.drools.system.PolicyEngine;
assertNull(manager.getVserverResponse());
}
+ @Test
+ public void subsequentOnsetTest() {
+ UUID requestId = UUID.randomUUID();
+ VirtualControlLoopEvent event = new VirtualControlLoopEvent();
+ event.closedLoopControlName = "TwoOnsetTest";
+ event.requestID = requestId;
+ event.target = "generic-vnf.vnf-id";
+ event.closedLoopAlarmStart = Instant.now();
+ event.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
+ event.AAI = new HashMap<>();
+ event.AAI.put("generic-vnf.vnf-name", "onsetOne");
+
+ ControlLoopEventManager manager = new ControlLoopEventManager(event.closedLoopControlName, event.requestID);
+ VirtualControlLoopNotification notification = manager.activate(event);
+
+ assertNotNull(notification);
+ assertEquals(ControlLoopNotificationType.ACTIVE, notification.notification);
+ AAIGETVnfResponse response = manager.getVnfResponse();
+ assertNotNull(response);
+ assertNull(manager.getVserverResponse());
+
+ VirtualControlLoopEvent event2 = new VirtualControlLoopEvent();
+ event2.closedLoopControlName = "TwoOnsetTest";
+ event2.requestID = requestId;
+ event2.target = "generic-vnf.vnf-id";
+ event2.closedLoopAlarmStart = Instant.now();
+ event2.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
+ event2.AAI = new HashMap<>();
+ event2.AAI.put("generic-vnf.vnf-name", "onsetTwo");
+
+ ControlLoopEventManager.NEW_EVENT_STATUS status = manager.onNewEvent(event2);
+ assertEquals(ControlLoopEventManager.NEW_EVENT_STATUS.SUBSEQUENT_ONSET, status);
+ AAIGETVnfResponse response2 = manager.getVnfResponse();
+ assertNotNull(response2);
+ // We should not have queried AAI, so the stored response should be the same
+ assertEquals(response, response2);
+ assertNull(manager.getVserverResponse());
+ }
+
// Simulate a response
public static AAIGETVnfResponse getQueryByVnfID2(String urlGet, String username, String password, UUID requestID, String key) {
AAIGETVnfResponse response = new AAIGETVnfResponse();
package org.onap.policy.controlloop.eventmanager;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.onap.policy.appclcm.LCMResponse;
import org.onap.policy.appclcm.LCMResponseWrapper;
import org.onap.policy.controlloop.ControlLoopEventStatus;
+import org.onap.policy.controlloop.ControlLoopNotificationType;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.controlloop.ControlLoopException;
import org.onap.policy.controlloop.ControlLoopTargetType;
import org.onap.policy.controlloop.Util;
+import org.onap.policy.controlloop.VirtualControlLoopNotification;
import org.onap.policy.controlloop.policy.ControlLoopPolicy;
import org.onap.policy.controlloop.policy.PolicyResult;
import org.onap.policy.controlloop.processor.ControlLoopProcessor;
// create the manager
//
ControlLoopEventManager eventManager = new ControlLoopEventManager(onset.closedLoopControlName, onset.requestID);
- try {
- eventManager.checkEventSyntax(onset);
- }
- catch (ControlLoopException e) {
- logger.warn(e.toString());
- fail("The onset failed the syntax check");
- }
+ VirtualControlLoopNotification notification = eventManager.activate(onset);
+
+ assertNotNull(notification);
+ assertEquals(ControlLoopNotificationType.ACTIVE, notification.notification);
ControlLoopOperationManager manager = new ControlLoopOperationManager(onset, processor.getCurrentPolicy(), eventManager);
logger.debug("{}",manager);
// create the manager
//
ControlLoopEventManager eventManager = new ControlLoopEventManager(onset.closedLoopControlName, onset.requestID);
- try {
- eventManager.checkEventSyntax(onset);
- }
- catch (ControlLoopException e) {
- logger.warn(e.toString());
- fail("The onset failed the syntax check");
- }
+ VirtualControlLoopNotification notification = eventManager.activate(onset);
+
+ assertNotNull(notification);
+ assertEquals(ControlLoopNotificationType.ACTIVE, notification.notification);
ControlLoopOperationManager manager = new ControlLoopOperationManager(onset, processor.getCurrentPolicy(), eventManager);
//