/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2017-2018 Intel Corp. All rights reserved.
- * Modifications Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-
import java.util.Collections;
import java.util.List;
-import java.util.UUID;
-
-import org.onap.policy.aai.AaiGetVnfResponse;
-import org.onap.policy.aai.AaiManager;
+import org.onap.policy.aai.AaiCqResponse;
import org.onap.policy.controlloop.ControlLoopOperation;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.impl.ActorImpl;
import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.drools.system.PolicyEngine;
-import org.onap.policy.rest.RestManager;
import org.onap.policy.vfc.VfcHealActionVmInfo;
import org.onap.policy.vfc.VfcHealAdditionalParams;
import org.onap.policy.vfc.VfcHealRequest;
import org.onap.policy.vfc.VfcRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class VfcActorServiceProvider implements Actor {
- private static final Logger logger = LoggerFactory.getLogger(VfcActorServiceProvider.class);
+public class VfcActorServiceProvider extends ActorImpl {
+ private static final String GENERIC_VNF_ID = "generic-vnf.vnf-id";
// Strings for VFC Actor
private static final String VFC_ACTOR = "VFC";
private static final ImmutableMap<String, List<String>> targets =
new ImmutableMap.Builder<String, List<String>>().put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).build();
+ public VfcActorServiceProvider() {
+ super(VFC_ACTOR);
+ }
+
@Override
public String actor() {
return VFC_ACTOR;
}
/**
- * Construct a request.
+ * This method constructs the VFC request.
*
- * @param onset the onset event
- * @param operation the control loop operation
- * @param policy the policy
- * @param vnfResponse the VNF response
- * @return the constructed request
+ * @param onset onset object
+ * @param operation operation object
+ * @param policy policy object
+ * @param aaiCqResponse response from aai custom query
+ * @return VfcRequest
*/
- public static VfcRequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation,
- Policy policy, AaiGetVnfResponse vnfResponse) {
+ public static VfcRequest constructRequestCq(VirtualControlLoopEvent onset, ControlLoopOperation operation,
+ Policy policy, AaiCqResponse aaiCqResponse) {
// Construct an VFC request
VfcRequest request = new VfcRequest();
String serviceInstance = onset.getAai().get("service-instance.service-instance-id");
if (serviceInstance == null || "".equals(serviceInstance)) {
- AaiGetVnfResponse tempVnfResp = vnfResponse;
- if (tempVnfResp == null) { // if the response is null, we haven't queried
- // This does the AAI query since we haven't already
- tempVnfResp = getAaiServiceInstance(onset);
- if (tempVnfResp == null) {
- return null;
- }
+ // get service isntance from AaiCqResponse
+ if (aaiCqResponse == null) {
+ return null;
+ }
+ serviceInstance = aaiCqResponse.getServiceInstance().getServiceInstanceId();
+ // If the serviceInstanceId returned is null then return null
+ if (serviceInstance == null) {
+ return null;
}
- serviceInstance = tempVnfResp.getServiceId();
+
}
request.setNsInstanceId(serviceInstance);
request.setRequestId(onset.getRequestId());
request.setHealRequest(new VfcHealRequest());
- request.getHealRequest().setVnfInstanceId(onset.getAai().get("generic-vnf.vnf-id"));
+ request.getHealRequest().setVnfInstanceId(onset.getAai().get(GENERIC_VNF_ID));
request.getHealRequest().setCause(operation.getMessage());
request.getHealRequest().setAdditionalParams(new VfcHealAdditionalParams());
}
return request;
}
-
- private static AaiGetVnfResponse getAaiServiceInstance(VirtualControlLoopEvent event) {
- AaiGetVnfResponse response = null;
- UUID requestId = event.getRequestId();
- String vnfName = event.getAai().get("generic-vnf.vnf-name");
- String vnfId = event.getAai().get("generic-vnf.vnf-id");
- String aaiUrl = PolicyEngine.manager.getEnvironmentProperty("aai.url");
- String aaiUsername = PolicyEngine.manager.getEnvironmentProperty("aai.username");
- String aaiPassword = PolicyEngine.manager.getEnvironmentProperty("aai.password");
- try {
- if (vnfName != null) {
- String url = aaiUrl + "/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=";
- response = new AaiManager(new RestManager()).getQueryByVnfName(url, aaiUsername, aaiPassword, requestId,
- vnfName);
- } else if (vnfId != null) {
- String url = aaiUrl + "/aai/v11/network/generic-vnfs/generic-vnf/";
- response = new AaiManager(new RestManager()).getQueryByVnfId(url, aaiUsername, aaiPassword, requestId,
- vnfId);
- } else {
- logger.error("getAAIServiceInstance failed");
- }
- } catch (Exception e) {
- logger.error("getAAIServiceInstance exception: ", e);
- }
- return response;
- }
}