// Syntax check the event
//
checkEventSyntax(event);
+
//
// At this point we are good to go with this event
//
;
}
- public NEW_EVENT_STATUS onNewEvent(VirtualControlLoopEvent event) {
+ public NEW_EVENT_STATUS onNewEvent(VirtualControlLoopEvent event) throws AAIException {
try {
this.checkEventSyntax(event);
if (event.closedLoopEventStatus == ControlLoopEventStatus.ONSET) {
// Check if this is our original ONSET
//
if (event.equals(this.onset)) {
+ //
+ // Query A&AI if needed
+ //
+ queryAai(event);
+
//
// DO NOT retract it
//
if (event.closedLoopEventStatus == ControlLoopEventStatus.ABATED) {
return;
}
- if (event.AAI == null) {
- throw new ControlLoopException("AAI is null");
- }
- if (event.AAI.get("generic-vnf.vnf-id") == null && event.AAI.get("vserver.vserver-name") == null &&
- event.AAI.get("generic-vnf.vnf-name") == null) {
- throw new ControlLoopException("generic-vnf.vnf-id or generic-vnf.vnf-name or vserver.vserver-name information missing");
+ 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");
}
- if (event.AAI.get("vserver.is-closed-loop-disabled") == null) {
+ if (event.AAI == null) {
+ throw new ControlLoopException("AAI is null");
+ }
+ if (event.AAI.get("generic-vnf.vnf-id") == null && event.AAI.get("vserver.vserver-name") == null &&
+ event.AAI.get("generic-vnf.vnf-name") == null) {
+ throw new ControlLoopException("generic-vnf.vnf-id or generic-vnf.vnf-name or vserver.vserver-name information missing");
+ }
+ }
+
+ public void queryAai(VirtualControlLoopEvent event) throws AAIException {
+ if (event.AAI.get("vserver.is-closed-loop-disabled") == null &&
+ event.AAI.get("generic-vnf.is-closed-loop-disabled") == null) {
try {
if (event.AAI.get("generic-vnf.vnf-id") != null) {
vnfResponse = getAAIVnfInfo(event);
if (vnfResponse == null) {
- throw new ControlLoopException("AAI Response is null (query by vnf-id)");
+ throw new AAIException("AAI Response is null (query by vnf-id)");
}
if (vnfResponse.requestError != null) {
- throw new ControlLoopException("AAI Responded with a request error (query by vnf-id)");
+ throw new AAIException("AAI Responded with a request error (query by vnf-id)");
}
if (isClosedLoopDisabled(vnfResponse) == true) {
- throw new ControlLoopException("is-closed-loop-disabled is set to true");
+ throw new AAIException("is-closed-loop-disabled is set to true");
}
} else if (event.AAI.get("generic-vnf.vnf-name") != null) {
vnfResponse = getAAIVnfInfo(event);
if (vnfResponse == null) {
- throw new ControlLoopException("AAI Response is null (query by vnf-name)");
+ throw new AAIException("AAI Response is null (query by vnf-name)");
}
if (vnfResponse.requestError != null) {
- throw new ControlLoopException("AAI Responded with a request error (query by vnf-name)");
+ throw new AAIException("AAI Responded with a request error (query by vnf-name)");
}
if (isClosedLoopDisabled(vnfResponse) == true) {
- throw new ControlLoopException("is-closed-loop-disabled is set to true");
+ throw new AAIException("is-closed-loop-disabled is set to true");
}
} else if (event.AAI.get("vserver.vserver-name") != null) {
vserverResponse = getAAIVserverInfo(event);
if (vserverResponse == null) {
- throw new ControlLoopException("AAI Response is null (query by vserver-name)");
+ throw new AAIException("AAI Response is null (query by vserver-name)");
}
if (vserverResponse.requestError != null) {
- throw new ControlLoopException("AAI responded with a request error (query by vserver-name)");
+ throw new AAIException("AAI responded with a request error (query by vserver-name)");
}
if (isClosedLoopDisabled(vserverResponse) == true) {
- throw new ControlLoopException("is-closed-loop-disabled is set to true");
+ throw new AAIException("is-closed-loop-disabled is set to true");
}
}
} catch (Exception e) {
logger.error("Exception from getAAIInfo: ", e);
- throw new ControlLoopException("Exception from getAAIInfo: " + e.toString());
+ throw new AAIException("Exception from getAAIInfo: " + e.toString());
}
} 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");
+ throw new AAIException("is-closed-loop-disabled is set to true");
}
}
"yes".equalsIgnoreCase(event.AAI.get("vserver.is-closed-loop-disabled")) ||
"Y".equalsIgnoreCase(event.AAI.get("vserver.is-closed-loop-disabled"))) {
return true;
- }
+ }
+ else if ("true".equalsIgnoreCase(event.AAI.get("generic-vnf.is-closed-loop-disabled")) ||
+ "T".equalsIgnoreCase(event.AAI.get("generic-vnf.is-closed-loop-disabled")) ||
+ "yes".equalsIgnoreCase(event.AAI.get("generic-vnf.is-closed-loop-disabled")) ||
+ "Y".equalsIgnoreCase(event.AAI.get("generic-vnf.is-closed-loop-disabled"))) {
+ return true;
+ }
return false;
}