summaryrefslogtreecommitdiffstats
path: root/controlloop/common/eventmanager/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common/eventmanager/src/main')
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java316
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java263
2 files changed, 123 insertions, 456 deletions
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 8b06a9681..868ab00a3 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
@@ -27,13 +27,9 @@ import static org.onap.policy.controlloop.ControlLoopTargetType.VNF;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
-import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
@@ -42,16 +38,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.aai.AaiGetVnfResponse;
-import org.onap.policy.aai.AaiGetVserverResponse;
import org.onap.policy.aai.AaiManager;
-import org.onap.policy.aai.AaiNqInstanceFilters;
-import org.onap.policy.aai.AaiNqNamedQuery;
-import org.onap.policy.aai.AaiNqQueryParameters;
-import org.onap.policy.aai.AaiNqRequest;
-import org.onap.policy.aai.AaiNqResponse;
-import org.onap.policy.aai.AaiNqResponseWrapper;
-import org.onap.policy.aai.AaiNqVServer;
import org.onap.policy.aai.util.AaiException;
import org.onap.policy.controlloop.ControlLoopEventStatus;
import org.onap.policy.controlloop.ControlLoopException;
@@ -69,7 +56,6 @@ import org.onap.policy.drools.core.lock.LockState;
import org.onap.policy.drools.system.PolicyEngineConstants;
import org.onap.policy.drools.utils.Pair;
import org.onap.policy.rest.RestManager;
-import org.onap.policy.so.util.Serialization;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -92,7 +78,6 @@ public class ControlLoopEventManager implements Serializable {
public static final String AAI_USERNAME_PROPERTY = "aai.username";
public static final String AAI_PASS_PROPERTY = "aai.password";
- private static final String QUERY_AAI_ERROR_MSG = "Exception from queryAai: ";
/**
* Additional time, in seconds, to add to a "lock" request. This ensures that the lock won't expire right before an
@@ -128,25 +113,9 @@ public class ControlLoopEventManager implements Serializable {
private ControlLoopOperationManager currentOperation = null;
private ControlLoopOperationManager lastOperationManager = null;
private transient Lock targetLock = null;
- private AaiGetVnfResponse vnfResponse = null;
- private AaiGetVserverResponse vserverResponse = null;
private boolean useTargetLock = true;
/**
- * Wrapper for AAI vserver named-query response. This is initialized in a lazy fashion.
- */
- private AaiNqResponseWrapper nqVserverResponse = null;
-
- private static Collection<String> requiredAAIKeys = new ArrayList<>();
-
- static {
- requiredAAIKeys.add("AICVServerSelfLink");
- requiredAAIKeys.add("AICIdentity");
- requiredAAIKeys.add("is_closed_loop_disabled");
- requiredAAIKeys.add(VM_NAME);
- }
-
- /**
* Constructs the object.
*
* @param closedLoopControlName name of the control loop
@@ -592,11 +561,6 @@ public class ControlLoopEventManager implements Serializable {
//
if (event.equals(this.onset)) {
//
- // Query A&AI if needed
- //
- queryAai(event);
-
- //
// DO NOT retract it
//
return NewEventStatus.FIRST_ONSET;
@@ -697,14 +661,6 @@ public class ControlLoopEventManager implements Serializable {
return 0;
}
- public AaiGetVnfResponse getVnfResponse() {
- return vnfResponse;
- }
-
- public AaiGetVserverResponse getVserverResponse() {
- return vserverResponse;
- }
-
/**
* Check an event syntax.
*
@@ -771,118 +727,6 @@ public class ControlLoopEventManager implements Serializable {
}
/**
- * Query A&AI for an event.
- *
- * @param event the event
- * @throws AaiException if an error occurs retrieving information from A&AI
- */
- public void queryAai(VirtualControlLoopEvent event) throws AaiException {
-
- Map<String, String> aai = event.getAai();
-
- if (alreadyHaveData(event, aai)) {
- return;
- }
-
- if (vnfResponse != null || vserverResponse != null) {
- // query has already been performed
- return;
- }
-
- try {
- if (aai.containsKey(GENERIC_VNF_VNF_ID) || aai.containsKey(GENERIC_VNF_VNF_NAME)) {
- vnfResponse = getAaiVnfInfo(event);
- processVnfResponse(vnfResponse, aai.containsKey(GENERIC_VNF_VNF_ID));
- } else if (aai.containsKey(VSERVER_VSERVER_NAME)) {
- vserverResponse = getAaiVserverInfo(event);
- processVServerResponse(vserverResponse);
- }
- } catch (AaiException e) {
- logger.error(QUERY_AAI_ERROR_MSG, e);
- throw e;
- } catch (Exception e) {
- logger.error(QUERY_AAI_ERROR_MSG, e);
- throw new AaiException(QUERY_AAI_ERROR_MSG + e.toString());
- }
- }
-
- private boolean alreadyHaveData(VirtualControlLoopEvent event, Map<String, String> aai) throws AaiException {
- if (aai.containsKey(VSERVER_IS_CLOSED_LOOP_DISABLED) || aai.containsKey(GENERIC_VNF_IS_CLOSED_LOOP_DISABLED)
- || aai.containsKey(PNF_IS_IN_MAINT)) {
-
- if (isClosedLoopDisabled(event)) {
- throw new AaiException(
- "is-closed-loop-disabled is set to true on VServer or VNF or in-maint is set to true for PNF");
- }
-
- if (isProvStatusInactive(event)) {
- throw new AaiException("prov-status is not ACTIVE on VServer or VNF or PNF");
- }
-
- // no need to query, as we already have the data
- return true;
- }
-
- return false;
- }
-
- /**
- * Process a response from A&AI for a VNF.
- *
- * @param aaiResponse the response from A&AI
- * @param queryByVnfId <code>true</code> if the query was based on vnf-id, <code>false</code> if the query was based
- * on vnf-name
- * @throws AaiException if an error occurs processing the response
- */
- private static void processVnfResponse(AaiGetVnfResponse aaiResponse, boolean queryByVnfId) throws AaiException {
- String queryTypeString = (queryByVnfId ? "vnf-id" : "vnf-name");
-
- if (aaiResponse == null) {
- throw new AaiException("AAI Response is null (query by " + queryTypeString + ")");
- }
- if (aaiResponse.getRequestError() != null) {
- throw new AaiException("AAI Responded with a request error (query by " + queryTypeString + ")");
- }
-
- if (aaiResponse.isClosedLoopDisabled()) {
- throw new AaiException("is-closed-loop-disabled is set to true (query by " + queryTypeString + ")");
- }
-
- if (!PROV_STATUS_ACTIVE.equals(aaiResponse.getProvStatus())) {
- throw new AaiException("prov-status is not ACTIVE (query by " + queryTypeString + ")");
- }
- }
-
- /**
- * Process a response from A&AI for a VServer.
- *
- * @param aaiResponse the response from A&AI
- * @throws AaiException if an error occurs processing the response
- */
- private static void processVServerResponse(AaiGetVserverResponse aaiResponse) throws AaiException {
- if (aaiResponse == null) {
- throw new AaiException("AAI Response is null (query by vserver-name)");
- }
- if (aaiResponse.getRequestError() != null) {
- throw new AaiException("AAI Responded with a request error (query by vserver-name)");
- }
-
- List<AaiNqVServer> lst = aaiResponse.getVserver();
- if (lst.isEmpty()) {
- return;
- }
-
- AaiNqVServer svr = lst.get(0);
- if (svr.getIsClosedLoopDisabled()) {
- throw new AaiException("is-closed-loop-disabled is set to true (query by vserver-name)");
- }
-
- if (!PROV_STATUS_ACTIVE.equals(svr.getProvStatus())) {
- throw new AaiException("prov-status is not ACTIVE (query by vserver-name)");
- }
- }
-
- /**
* Is closed loop disabled for an event.
*
* @param event the event
@@ -918,164 +762,6 @@ public class ControlLoopEventManager implements Serializable {
|| "Y".equalsIgnoreCase(aaiValue));
}
- /**
- * Get the A&AI VService information for an event.
- *
- * @param event the event
- * @return a AaiGetVserverResponse
- * @throws ControlLoopException if an error occurs
- */
- public static AaiGetVserverResponse getAaiVserverInfo(VirtualControlLoopEvent event) throws ControlLoopException {
- UUID requestId = event.getRequestId();
- AaiGetVserverResponse response = null;
- String vserverName = event.getAai().get(VSERVER_VSERVER_NAME);
-
- try {
- if (vserverName != null) {
- String aaiHostUrl = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_URL);
- String aaiUser = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_USERNAME_PROPERTY);
- String aaiPassword = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_PASS_PROPERTY);
- String aaiGetQueryByVserver = "/aai/v11/nodes/vservers?vserver-name=";
- String url = aaiHostUrl + aaiGetQueryByVserver;
- logger.info("AAI Host URL by VServer: {}", url);
- response = new AaiManager(new RestManager()).getQueryByVserverName(url, aaiUser, aaiPassword, requestId,
- vserverName);
- }
- } catch (Exception e) {
- logger.error("getAaiVserverInfo exception: ", e);
- throw new ControlLoopException("Exception in getAaiVserverInfo: ", e);
- }
-
- return response;
- }
-
- /**
- * Get A&AI VNF information for an event.
- *
- * @param event the event
- * @return a AaiGetVnfResponse
- * @throws ControlLoopException if an error occurs
- */
- public static AaiGetVnfResponse getAaiVnfInfo(VirtualControlLoopEvent event) throws ControlLoopException {
- UUID requestId = event.getRequestId();
- AaiGetVnfResponse response = null;
- String vnfName = event.getAai().get(GENERIC_VNF_VNF_NAME);
- String vnfId = event.getAai().get(GENERIC_VNF_VNF_ID);
-
- String aaiHostUrl = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_URL);
- String aaiUser = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_USERNAME_PROPERTY);
- String aaiPassword = PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_PASS_PROPERTY);
-
- try {
- if (vnfName != null) {
- String aaiGetQueryByVnfName = "/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=";
- String url = aaiHostUrl + aaiGetQueryByVnfName;
- logger.info("AAI Host URL by VNF name: {}", url);
- response = new AaiManager(new RestManager()).getQueryByVnfName(url, aaiUser, aaiPassword, requestId,
- vnfName);
- } else if (vnfId != null) {
- String aaiGetQueryByVnfId = "/aai/v11/network/generic-vnfs/generic-vnf/";
- String url = aaiHostUrl + aaiGetQueryByVnfId;
- logger.info("AAI Host URL by VNF ID: {}", url);
- response =
- new AaiManager(new RestManager()).getQueryByVnfId(url, aaiUser, aaiPassword, requestId, vnfId);
- }
- } catch (Exception e) {
- logger.error("getAaiVnfInfo exception: ", e);
- throw new ControlLoopException("Exception in getAaiVnfInfo: ", e);
- }
-
- return response;
- }
-
- /**
- * Gets the output from the AAI vserver named-query, using the cache, if appropriate.
- *
- * @return output from the AAI vserver named-query
- */
- public AaiNqResponseWrapper getNqVserverFromAai() {
- if (nqVserverResponse != null) {
- // already queried
- return nqVserverResponse;
- }
-
- String vserverName = onset.getAai().get(VSERVER_VSERVER_NAME);
- if (vserverName == null) {
- logger.warn("Missing vserver-name for AAI request {}", onset.getRequestId());
- return null;
- }
- AaiNqRequest aaiNqRequest = getAaiNqRequest(vserverName);
-
- if (logger.isDebugEnabled()) {
- logger.debug("AAI Request sent: {}", Serialization.gsonPretty.toJson(aaiNqRequest));
- }
-
- AaiNqResponse aaiNqResponse = new AaiManager(new RestManager()).postQuery(getPeManagerEnvProperty(AAI_URL),
- getPeManagerEnvProperty(AAI_USERNAME_PROPERTY), getPeManagerEnvProperty(AAI_PASS_PROPERTY),
- aaiNqRequest, onset.getRequestId());
-
- // Check AAI response
- if (aaiNqResponse == null) {
- logger.warn("No response received from AAI for request {}", aaiNqRequest);
- return null;
- }
-
- // Create AAINQResponseWrapper
- nqVserverResponse = new AaiNqResponseWrapper(onset.getRequestId(), aaiNqResponse);
-
- if (logger.isDebugEnabled()) {
- logger.debug("AAI Named Query Response: ");
- logger.debug(Serialization.gsonPretty.toJson(nqVserverResponse.getAaiNqResponse()));
- }
-
- return nqVserverResponse;
- }
-
- /**
- * Gets an AAI Named Query Request object.
- *
- * @param vserverName vserver name.
- * @return the AAI Named Query Request object.
- */
- public static AaiNqRequest getAaiNqRequest(String vserverName) {
- // create AAI named-query request with UUID started with ""
- AaiNqRequest aaiNqRequest = new AaiNqRequest();
- AaiNqQueryParameters aaiNqQueryParam = new AaiNqQueryParameters();
- AaiNqNamedQuery aaiNqNamedQuery = new AaiNqNamedQuery();
- final AaiNqInstanceFilters aaiNqInstanceFilter = new AaiNqInstanceFilters();
-
- // queryParameters
- aaiNqNamedQuery.setNamedQueryUuid(UUID.fromString("4ff56a54-9e3f-46b7-a337-07a1d3c6b469"));
- aaiNqQueryParam.setNamedQuery(aaiNqNamedQuery);
- aaiNqRequest.setQueryParameters(aaiNqQueryParam);
- //
- // instanceFilters
- //
- Map<String, Map<String, String>> aaiNqInstanceFilterMap = new HashMap<>();
- Map<String, String> aaiNqInstanceFilterMapItem = new HashMap<>();
- aaiNqInstanceFilterMapItem.put("vserver-name", vserverName);
- aaiNqInstanceFilterMap.put("vserver", aaiNqInstanceFilterMapItem);
- aaiNqInstanceFilter.getInstanceFilter().add(aaiNqInstanceFilterMap);
- aaiNqRequest.setInstanceFilters(aaiNqInstanceFilter);
- return aaiNqRequest;
- }
-
- /**
- * This method reads and validates environmental properties coming from the policy engine. Null properties cause an
- * {@link IllegalArgumentException} runtime exception to be thrown
- *
- * @param enginePropertyName the name of the parameter to retrieve
- * @return the property value
- */
- private static String getPeManagerEnvProperty(String enginePropertyName) {
- String enginePropertyValue = PolicyEngineConstants.getManager().getEnvironmentProperty(enginePropertyName);
- if (enginePropertyValue == null) {
- throw new IllegalArgumentException("The value of policy engine manager environment property \""
- + enginePropertyName + "\" may not be null");
- }
- return enginePropertyValue;
- }
-
@Override
public String toString() {
return "ControlLoopEventManager [closedLoopControlName=" + closedLoopControlName + ", requestId=" + requestId
@@ -1122,7 +808,7 @@ public class ControlLoopEventManager implements Serializable {
vserverId);
if (response == null) {
- throw new AaiException("Aai response is undefined");
+ throw new AaiException("Target vnf-id could not be found");
}
return response;
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 9353ac2d6..20425f259 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,7 +77,6 @@ import org.slf4j.LoggerFactory;
public class ControlLoopOperationManager implements Serializable {
private static final String SUCCESS_MSG = " Success";
private static final String FAILED_MSG = " Failed";
- private static final String AAI_CUSTOM_QUERY = "aai.customQuery";
private static final long serialVersionUID = -3773199283624595410L;
private static final Logger logger = LoggerFactory.getLogger(ControlLoopOperationManager.class);
@@ -116,8 +115,8 @@ public class ControlLoopOperationManager implements Serializable {
* @param em the event manager
* @throws ControlLoopException if an error occurs
*/
- public ControlLoopOperationManager(ControlLoopEvent onset, Policy policy, ControlLoopEventManager em)
- throws ControlLoopException {
+ public ControlLoopOperationManager(ControlLoopEvent onset, Policy policy,
+ ControlLoopEventManager em) throws ControlLoopException {
this.onset = onset;
this.policy = policy;
@@ -126,12 +125,9 @@ public class ControlLoopOperationManager implements Serializable {
try {
if (TargetType.VNF.equals(policy.getTarget().getType())
- || TargetType.VFMODULE.equals(policy.getTarget().getType())) {
- String aaiCqEnvProp =
- PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY);
- if (StringUtils.isBlank(aaiCqEnvProp) || Boolean.valueOf(aaiCqEnvProp)) {
- this.aaiCqResponse = this.eventManager.getCqResponse((VirtualControlLoopEvent) onset);
- }
+ || TargetType.VFMODULE.equals(policy.getTarget().getType())) {
+ this.aaiCqResponse =
+ this.eventManager.getCqResponse((VirtualControlLoopEvent) onset);
}
this.targetEntity = getTarget(policy);
@@ -143,7 +139,6 @@ public class ControlLoopOperationManager implements Serializable {
}
}
-
private void initActor(Policy policy) throws AaiException, ControlLoopException {
//
// Let's make a sanity check
@@ -163,37 +158,29 @@ public class ControlLoopOperationManager implements Serializable {
case "CDS":
break;
default:
- throw new ControlLoopException("ControlLoopEventManager: policy has an unknown actor.");
+ throw new ControlLoopException(
+ "ControlLoopEventManager: policy has an unknown actor.");
}
}
-
private void initAppc(Policy policy) throws AaiException {
if ("ModifyConfig".equalsIgnoreCase(policy.getRecipe())) {
/*
- * The target vnf-id may not be the same as the source vnf-id specified in the yaml, the target
+ * The target vnf-id may not be the same as the source vnf-id specified in the yaml, the
+ * target
* vnf-id is retrieved by a named query to A&AI.
*/
- if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) {
- GenericVnf genvnf =
- this.aaiCqResponse.getGenericVnfByModelInvariantId(policy.getTarget().getResourceID());
- if (genvnf == null) {
- logger.info("Target entity could not be found");
- throw new AaiException("Target vnf-id could not be found");
- }
- this.targetEntity = genvnf.getVnfId();
-
- } else {
- this.targetEntity =
- AppcLcmActorServiceProvider.vnfNamedQuery(policy.getTarget().getResourceID(),
- this.targetEntity, PolicyEngineConstants.getManager().getEnvironmentProperty("aai.url"),
- PolicyEngineConstants.getManager().getEnvironmentProperty("aai.username"),
- PolicyEngineConstants.getManager().getEnvironmentProperty("aai.password"));
+ GenericVnf genvnf = this.aaiCqResponse
+ .getGenericVnfByModelInvariantId(policy.getTarget().getResourceID());
+ if (genvnf == null) {
+ logger.info("Target entity could not be found");
+ throw new AaiException("Target vnf-id could not be found");
}
+ this.targetEntity = genvnf.getVnfId();
+
}
}
-
public ControlLoopEventManager getEventManager() {
return eventManager;
}
@@ -208,10 +195,11 @@ public class ControlLoopOperationManager implements Serializable {
@Override
public String toString() {
- return "ControlLoopOperationManager [onset=" + (onset != null ? onset.getRequestId() : "null") + ", policy="
- + (policy != null ? policy.getId() : "null") + ", attempts=" + attempts + ", policyResult="
- + policyResult + ", currentOperation=" + currentOperation + ", operationHistory=" + operationHistory
- + "]";
+ return "ControlLoopOperationManager [onset="
+ + (onset != null ? onset.getRequestId() : "null") + ", policy="
+ + (policy != null ? policy.getId() : "null") + ", attempts=" + attempts
+ + ", policyResult=" + policyResult + ", currentOperation=" + currentOperation
+ + ", operationHistory=" + operationHistory + "]";
}
//
@@ -226,8 +214,8 @@ public class ControlLoopOperationManager implements Serializable {
@Override
public String toString() {
- return "Operation [attempt=" + attempt + ", policyResult=" + policyResult + ", operation=" + clOperation
- + "]";
+ return "Operation [attempt=" + attempt + ", policyResult=" + policyResult
+ + ", operation=" + clOperation + "]";
}
}
@@ -272,7 +260,6 @@ public class ControlLoopOperationManager implements Serializable {
}
}
-
private String getVfModuleTarget() throws ControlLoopException {
VirtualControlLoopEvent virtualOnsetEvent = (VirtualControlLoopEvent) this.onset;
if (this.onset.getTarget().equalsIgnoreCase(VSERVER_VSERVER_NAME)) {
@@ -288,16 +275,12 @@ public class ControlLoopOperationManager implements Serializable {
}
/*
- * If the vnf-name was retrieved from the onset then the vnf-id must be obtained from the event
+ * If the vnf-name was retrieved from the onset then the vnf-id must be obtained from
+ * the event
* manager's A&AI GET query
*/
try {
- String vnfId;
- if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) {
- vnfId = this.aaiCqResponse.getDefaultGenericVnf().getVnfId();
- } else {
- vnfId = this.eventManager.getVnfResponse().getVnfId();
- }
+ String vnfId = this.aaiCqResponse.getDefaultGenericVnf().getVnfId();
if (vnfId == null) {
throw new AaiException("No vnf-id found");
}
@@ -314,7 +297,7 @@ public class ControlLoopOperationManager implements Serializable {
VirtualControlLoopEvent virtualOnsetEvent = (VirtualControlLoopEvent) this.onset;
if (!PNF_NAME.equalsIgnoreCase(onset.getTarget())) {
throw new ControlLoopException(
- "Target in the onset event is either null or does not match target key expected in AAI section.");
+ "Target in the onset event is either null or does not match target key expected in AAI section.");
}
return virtualOnsetEvent.getAai().get(PNF_NAME);
}
@@ -327,7 +310,7 @@ public class ControlLoopOperationManager implements Serializable {
* @throws ControlLoopException if an error occurs
*/
public Object startOperation(/* VirtualControlLoopEvent */ControlLoopEvent onset)
- throws ControlLoopException {
+ throws ControlLoopException {
verifyOperatonCanRun();
//
@@ -358,7 +341,8 @@ public class ControlLoopOperationManager implements Serializable {
case "CDS":
return startCdsOperation(onset, operation);
default:
- throw new ControlLoopException("invalid actor " + policy.getActor() + " on policy");
+ throw new ControlLoopException(
+ "invalid actor " + policy.getActor() + " on policy");
}
} catch (AaiException e) {
@@ -366,19 +350,21 @@ public class ControlLoopOperationManager implements Serializable {
}
}
-
private Object startAppcOperation(ControlLoopEvent onset, Operation operation) {
/*
- * If the recipe is ModifyConfig, a legacy APPC request is constructed. Otherwise an LCMRequest is
+ * If the recipe is ModifyConfig, a legacy APPC request is constructed. Otherwise an
+ * LCMRequest is
* constructed.
*/
this.currentOperation = operation;
if ("ModifyConfig".equalsIgnoreCase(policy.getRecipe())) {
- this.operationRequest = AppcActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset,
+ this.operationRequest =
+ AppcActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset,
operation.clOperation, this.policy, this.targetEntity);
} else {
- this.operationRequest = AppcLcmActorServiceProvider.constructRequest(
- (VirtualControlLoopEvent) onset, operation.clOperation, this.policy, this.targetEntity);
+ this.operationRequest =
+ AppcLcmActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset,
+ operation.clOperation, this.policy, this.targetEntity);
}
//
// Save the operation
@@ -387,17 +373,10 @@ public class ControlLoopOperationManager implements Serializable {
return operationRequest;
}
-
private Object startSoOperation(ControlLoopEvent onset, Operation operation) {
SoActorServiceProvider soActorSp = new SoActorServiceProvider();
- if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) {
- this.operationRequest =
- soActorSp.constructRequestCq((VirtualControlLoopEvent) onset, operation.clOperation,
- this.policy, this.aaiCqResponse);
- } else {
- this.operationRequest = soActorSp.constructRequest((VirtualControlLoopEvent) onset,
- operation.clOperation, this.policy, eventManager.getNqVserverFromAai());
- }
+ this.operationRequest = soActorSp.constructRequestCq((VirtualControlLoopEvent) onset,
+ operation.clOperation, this.policy, this.aaiCqResponse);
// Save the operation
this.currentOperation = operation;
@@ -409,18 +388,10 @@ public class ControlLoopOperationManager implements Serializable {
return operationRequest;
}
-
private Object startVfcOperation(ControlLoopEvent onset, Operation operation) {
- if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) {
- this.operationRequest = VfcActorServiceProvider.constructRequestCq((VirtualControlLoopEvent) onset,
- operation.clOperation, this.policy, this.aaiCqResponse);
- } else {
- this.operationRequest = VfcActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset,
- operation.clOperation, this.policy, this.eventManager.getVnfResponse(),
- PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.url"),
- PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.username"),
- PolicyEngineConstants.getManager().getEnvironmentProperty("vfc.password"));
- }
+ this.operationRequest =
+ VfcActorServiceProvider.constructRequestCq((VirtualControlLoopEvent) onset,
+ operation.clOperation, this.policy, this.aaiCqResponse);
this.currentOperation = operation;
if (this.operationRequest == null) {
this.policyResult = PolicyResult.FAILURE;
@@ -428,14 +399,13 @@ public class ControlLoopOperationManager implements Serializable {
return operationRequest;
}
-
private Object startSdnrOperation(ControlLoopEvent onset, Operation operation) {
/*
* If the recipe is ModifyConfig or ModifyConfigANR, a SDNR request is constructed.
*/
this.currentOperation = operation;
- this.operationRequest = SdnrActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset,
- operation.clOperation, this.policy);
+ this.operationRequest = SdnrActorServiceProvider
+ .constructRequest((VirtualControlLoopEvent) onset, operation.clOperation, this.policy);
//
// Save the operation
//
@@ -446,11 +416,10 @@ public class ControlLoopOperationManager implements Serializable {
return operationRequest;
}
-
private Object startSdncOperation(ControlLoopEvent onset, Operation operation) {
SdncActorServiceProvider provider = new SdncActorServiceProvider();
- this.operationRequest =
- provider.constructRequest((VirtualControlLoopEvent) onset, operation.clOperation, this.policy);
+ this.operationRequest = provider.constructRequest((VirtualControlLoopEvent) onset,
+ operation.clOperation, this.policy);
this.currentOperation = operation;
if (this.operationRequest == null) {
this.policyResult = PolicyResult.FAILURE;
@@ -458,11 +427,13 @@ public class ControlLoopOperationManager implements Serializable {
return operationRequest;
}
- private Object startCdsOperation(ControlLoopEvent onset, Operation operation) throws AaiException {
+ private Object startCdsOperation(ControlLoopEvent onset, Operation operation)
+ throws AaiException {
CdsActorServiceProvider provider = new CdsActorServiceProvider();
- Optional<ExecutionServiceInput> optionalRequest = provider.constructRequest(
- (VirtualControlLoopEvent) onset, operation.clOperation, this.policy, this.buildAaiParams());
+ Optional<ExecutionServiceInput> optionalRequest =
+ provider.constructRequest((VirtualControlLoopEvent) onset, operation.clOperation,
+ this.policy, this.buildAaiParams());
this.currentOperation = operation;
if (optionalRequest.isPresent()) {
@@ -477,6 +448,7 @@ public class ControlLoopOperationManager implements Serializable {
/**
* Build AAI parameters for CDS operation.
+ *
* @return a map containing vnf id key and value for the vnf to apply the action to.
* @throws AaiException if the vnf can not be found.
*/
@@ -485,26 +457,24 @@ public class ControlLoopOperationManager implements Serializable {
Map<String, String> result = new HashMap<>();
if (TargetType.VNF.equals(policy.getTarget().getType())
- || TargetType.VFMODULE.equals(policy.getTarget().getType())) {
+ || TargetType.VFMODULE.equals(policy.getTarget().getType())) {
- if (Boolean.valueOf(PolicyEngineConstants.getManager().getEnvironmentProperty(AAI_CUSTOM_QUERY))) {
+ ServiceInstance serviceInstance = this.aaiCqResponse.getServiceInstance();
+ if (serviceInstance == null) {
+ logger.info("Target entity service instance could not be found");
+ throw new AaiException("Target service instance could not be found");
+ }
- ServiceInstance serviceInstance = this.aaiCqResponse.getServiceInstance();
- if (serviceInstance == null) {
- logger.info("Target entity service instance could not be found");
- throw new AaiException("Target service instance could not be found");
- }
+ GenericVnf genericVnf = this.aaiCqResponse
+ .getGenericVnfByModelInvariantId(policy.getTarget().getResourceID());
+ if (genericVnf == null) {
+ logger.info("Target entity generic vnf could not be found");
+ throw new AaiException("Target generic vnf could not be found");
+ }
- GenericVnf genericVnf =
- this.aaiCqResponse.getGenericVnfByModelInvariantId(policy.getTarget().getResourceID());
- if (genericVnf == null) {
- logger.info("Target entity generic vnf could not be found");
- throw new AaiException("Target generic vnf could not be found");
- }
+ result.put(AAI_SERVICE_INSTANCE_ID_KEY, serviceInstance.getServiceInstanceId());
+ result.put(GENERIC_VNF_VNF_ID, genericVnf.getVnfId());
- result.put(AAI_SERVICE_INSTANCE_ID_KEY, serviceInstance.getServiceInstanceId());
- result.put(GENERIC_VNF_VNF_ID, genericVnf.getVnfId());
- }
} else if (TargetType.PNF.equals(policy.getTarget().getType())) {
result = this.eventManager.getPnf((VirtualControlLoopEvent) onset);
}
@@ -532,7 +502,7 @@ public class ControlLoopOperationManager implements Serializable {
//
// Cast LCM response and handle it
//
- return onResponse(( AppcLcmDmaapWrapper) response);
+ return onResponse((AppcLcmDmaapWrapper) response);
} else if (response instanceof PciResponseWrapper) {
//
// Cast SDNR response and handle it
@@ -575,8 +545,9 @@ public class ControlLoopOperationManager implements Serializable {
//
Integer operationAttempt = getSubRequestId(appcResponse);
if (operationAttempt == null) {
- this.completeOperation(operationAttempt, "Policy was unable to parse APP-C SubRequestID (it was null).",
- PolicyResult.FAILURE_EXCEPTION);
+ this.completeOperation(operationAttempt,
+ "Policy was unable to parse APP-C SubRequestID (it was null).",
+ PolicyResult.FAILURE_EXCEPTION);
return PolicyResult.FAILURE_EXCEPTION;
}
//
@@ -587,8 +558,8 @@ public class ControlLoopOperationManager implements Serializable {
// We cannot tell what happened if this doesn't exist
//
this.completeOperation(operationAttempt,
- "Policy was unable to parse APP-C response status field (it was null).",
- PolicyResult.FAILURE_EXCEPTION);
+ "Policy was unable to parse APP-C response status field (it was null).",
+ PolicyResult.FAILURE_EXCEPTION);
return PolicyResult.FAILURE_EXCEPTION;
}
//
@@ -599,16 +570,17 @@ public class ControlLoopOperationManager implements Serializable {
//
// We are unaware of this code
//
- this.completeOperation(operationAttempt, "Policy was unable to parse APP-C response status code field.",
- PolicyResult.FAILURE_EXCEPTION);
+ this.completeOperation(operationAttempt,
+ "Policy was unable to parse APP-C response status code field.",
+ PolicyResult.FAILURE_EXCEPTION);
return PolicyResult.FAILURE_EXCEPTION;
}
return onResponse(appcResponse, operationAttempt, code);
}
-
- private PolicyResult onResponse(Response appcResponse, Integer operationAttempt, ResponseCode code) {
+ private PolicyResult onResponse(Response appcResponse, Integer operationAttempt,
+ ResponseCode code) {
//
// Ok, let's figure out what APP-C's response is
//
@@ -627,21 +599,21 @@ public class ControlLoopOperationManager implements Serializable {
// We'll consider these two codes as exceptions
//
this.completeOperation(operationAttempt, appcResponse.getStatus().getDescription(),
- PolicyResult.FAILURE_EXCEPTION);
+ PolicyResult.FAILURE_EXCEPTION);
return getTimeoutResult(PolicyResult.FAILURE_EXCEPTION);
case SUCCESS:
//
//
//
this.completeOperation(operationAttempt, appcResponse.getStatus().getDescription(),
- PolicyResult.SUCCESS);
+ PolicyResult.SUCCESS);
return getTimeoutResult(PolicyResult.SUCCESS);
case FAILURE:
//
//
//
this.completeOperation(operationAttempt, appcResponse.getStatus().getDescription(),
- PolicyResult.FAILURE);
+ PolicyResult.FAILURE);
return getTimeoutResult(PolicyResult.FAILURE);
default:
return null;
@@ -658,11 +630,12 @@ public class ControlLoopOperationManager implements Serializable {
/*
* Parse out the operation attempt using the subrequestid
*/
- Integer operationAttempt = AppcLcmActorServiceProvider
- .parseOperationAttempt(dmaapResponse.getBody().getOutput().getCommonHeader().getSubRequestId());
+ Integer operationAttempt = AppcLcmActorServiceProvider.parseOperationAttempt(
+ dmaapResponse.getBody().getOutput().getCommonHeader().getSubRequestId());
if (operationAttempt == null) {
- this.completeOperation(operationAttempt, "Policy was unable to parse APP-C SubRequestID (it was null).",
- PolicyResult.FAILURE_EXCEPTION);
+ this.completeOperation(operationAttempt,
+ "Policy was unable to parse APP-C SubRequestID (it was null).",
+ PolicyResult.FAILURE_EXCEPTION);
return PolicyResult.FAILURE_EXCEPTION;
}
@@ -670,7 +643,7 @@ public class ControlLoopOperationManager implements Serializable {
* Process the APPCLCM response to see what PolicyResult should be returned
*/
AbstractMap.SimpleEntry<PolicyResult, String> result =
- AppcLcmActorServiceProvider.processResponse(dmaapResponse);
+ AppcLcmActorServiceProvider.processResponse(dmaapResponse);
if (result.getKey() != null) {
this.completeOperation(operationAttempt, result.getValue(), result.getKey());
@@ -693,10 +666,10 @@ public class ControlLoopOperationManager implements Serializable {
* Parse out the operation attempt using the subrequestid
*/
Integer operationAttempt = SdnrActorServiceProvider
- .parseOperationAttempt(dmaapResponse.getBody().getCommonHeader().getSubRequestId());
+ .parseOperationAttempt(dmaapResponse.getBody().getCommonHeader().getSubRequestId());
if (operationAttempt == null) {
- this.completeOperation(operationAttempt, "Policy was unable to parse SDNR SubRequestID.",
- PolicyResult.FAILURE_EXCEPTION);
+ this.completeOperation(operationAttempt,
+ "Policy was unable to parse SDNR SubRequestID.", PolicyResult.FAILURE_EXCEPTION);
return PolicyResult.FAILURE_EXCEPTION;
}
@@ -704,7 +677,7 @@ public class ControlLoopOperationManager implements Serializable {
* Process the SDNR response to see what PolicyResult should be returned
*/
SdnrActorServiceProvider.Pair<PolicyResult, String> result =
- SdnrActorServiceProvider.processResponse(dmaapResponse);
+ SdnrActorServiceProvider.processResponse(dmaapResponse);
if (result.getResult() != null) {
this.completeOperation(operationAttempt, result.getMessage(), result.getResult());
@@ -729,15 +702,17 @@ public class ControlLoopOperationManager implements Serializable {
//
// Consider it as success
//
- this.completeOperation(this.attempts, msoResponse.getSoResponse().getHttpResponseCode() + SUCCESS_MSG,
- PolicyResult.SUCCESS);
+ this.completeOperation(this.attempts,
+ msoResponse.getSoResponse().getHttpResponseCode() + SUCCESS_MSG,
+ PolicyResult.SUCCESS);
return getTimeoutResult(PolicyResult.SUCCESS);
default:
//
// Consider it as failure
//
- this.completeOperation(this.attempts, msoResponse.getSoResponse().getHttpResponseCode() + FAILED_MSG,
- PolicyResult.FAILURE);
+ this.completeOperation(this.attempts,
+ msoResponse.getSoResponse().getHttpResponseCode() + FAILED_MSG,
+ PolicyResult.FAILURE);
return getTimeoutResult(PolicyResult.FAILURE);
}
}
@@ -827,7 +802,6 @@ public class ControlLoopOperationManager implements Serializable {
return (PolicyResult.FAILURE_TIMEOUT.equals(this.policyResult) ? null : result);
}
-
private Integer getSubRequestId(Response appcResponse) {
try {
return Integer.valueOf(appcResponse.getCommonHeader().getSubRequestId());
@@ -902,7 +876,8 @@ public class ControlLoopOperationManager implements Serializable {
}
if (!this.operationHistory.isEmpty()) {
- return this.operationHistory.getLast().clOperation.toMessage() + ", Guard result: " + guardResult;
+ return this.operationHistory.getLast().clOperation.toMessage() + ", Guard result: "
+ + guardResult;
}
return null;
}
@@ -954,7 +929,8 @@ public class ControlLoopOperationManager implements Serializable {
//
//
//
- this.completeOperation(this.attempts, "Operation denied by Guard", PolicyResult.FAILURE_GUARD);
+ this.completeOperation(this.attempts, "Operation denied by Guard",
+ PolicyResult.FAILURE_GUARD);
}
public void setOperationHasException(String message) {
@@ -1032,7 +1008,8 @@ public class ControlLoopOperationManager implements Serializable {
//
// what do we do if we are already running an operation?
//
- throw new ControlLoopException("current operation is not null (an operation is already running)");
+ throw new ControlLoopException(
+ "current operation is not null (an operation is already running)");
}
//
// Check if we have maxed out on retries
@@ -1052,7 +1029,8 @@ public class ControlLoopOperationManager implements Serializable {
//
//
//
- throw new ControlLoopException("current operation failed and retries are not allowed");
+ throw new ControlLoopException(
+ "current operation failed and retries are not allowed");
}
} else {
//
@@ -1062,7 +1040,8 @@ public class ControlLoopOperationManager implements Serializable {
if (this.policyResult == null) {
this.policyResult = PolicyResult.FAILURE_RETRIES;
}
- throw new ControlLoopException("current oepration has failed after " + this.attempts + " retries");
+ throw new ControlLoopException(
+ "current oepration has failed after " + this.attempts + " retries");
}
}
}
@@ -1078,28 +1057,28 @@ public class ControlLoopOperationManager implements Serializable {
private void storeOperationInDataBase() {
// Only store in DB if enabled
- boolean guardEnabled = "false"
- .equalsIgnoreCase(PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled"));
+ boolean guardEnabled = "false".equalsIgnoreCase(
+ PolicyEngineConstants.getManager().getEnvironmentProperty("guard.disabled"));
if (!guardEnabled) {
return;
}
-
// DB Properties
Properties props = new Properties();
if (PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_URL) != null
- && PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER) != null
- && PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_PASS) != null) {
+ && PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER) != null
+ && PolicyEngineConstants.getManager()
+ .getEnvironmentProperty(Util.ONAP_KEY_PASS) != null) {
props.put(Util.ECLIPSE_LINK_KEY_URL,
- PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_URL));
+ PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_URL));
props.put(Util.ECLIPSE_LINK_KEY_USER,
- PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER));
+ PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_USER));
props.put(Util.ECLIPSE_LINK_KEY_PASS,
- PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_PASS));
- props.put(PersistenceUnitProperties.CLASSLOADER, ControlLoopOperationManager.class.getClassLoader());
+ PolicyEngineConstants.getManager().getEnvironmentProperty(Util.ONAP_KEY_PASS));
+ props.put(PersistenceUnitProperties.CLASSLOADER,
+ ControlLoopOperationManager.class.getClassLoader());
}
-
String opsHistPu = System.getProperty("OperationsHistoryPU");
if (!"OperationsHistoryPUTest".equals(opsHistPu)) {
opsHistPu = "OperationsHistoryPU";
@@ -1123,7 +1102,8 @@ public class ControlLoopOperationManager implements Serializable {
newEntry.setTarget(this.targetEntity);
newEntry.setStarttime(Timestamp.from(this.currentOperation.clOperation.getStart()));
newEntry.setSubrequestId(this.currentOperation.clOperation.getSubRequestId());
- newEntry.setEndtime(new Timestamp(this.currentOperation.clOperation.getEnd().toEpochMilli()));
+ newEntry
+ .setEndtime(new Timestamp(this.currentOperation.clOperation.getEnd().toEpochMilli()));
newEntry.setMessage(this.currentOperation.clOperation.getMessage());
newEntry.setOutcome(this.currentOperation.clOperation.getOutcome());
@@ -1174,7 +1154,6 @@ public class ControlLoopOperationManager implements Serializable {
logger.debug("Could not find associated operation");
}
-
/**
* Commit the abatement to the history database.
*
@@ -1213,12 +1192,14 @@ public class ControlLoopOperationManager implements Serializable {
*
* @return a ControlLoopResponse
*/
- public ControlLoopResponse getControlLoopResponse(Object response, VirtualControlLoopEvent event) {
+ public ControlLoopResponse getControlLoopResponse(Object response,
+ VirtualControlLoopEvent event) {
if (response instanceof PciResponseWrapper) {
//
// Cast SDNR response and handle it
//
- return SdnrActorServiceProvider.getControlLoopResponse((PciResponseWrapper) response, event);
+ return SdnrActorServiceProvider.getControlLoopResponse((PciResponseWrapper) response,
+ event);
} else {
return null;
}