Add VFC Actor
[policy/models.git] / models-interactions / model-actors / actor.vfc / src / main / java / org / onap / policy / controlloop / actor / vfc / VfcActorServiceProvider.java
index 23eb719..b7a41dd 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============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");
@@ -22,27 +22,22 @@ package org.onap.policy.controlloop.actor.vfc;
 
 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.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";
+
+    // TODO old code: remove lines down to **HERE**
 
     // Strings for VFC Actor
     private static final String VFC_ACTOR = "VFC";
@@ -57,6 +52,19 @@ public class VfcActorServiceProvider implements Actor {
     private static final ImmutableMap<String, List<String>> targets =
             new ImmutableMap.Builder<String, List<String>>().put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).build();
 
+    // **HERE**
+
+    /**
+     * Constructor.
+     */
+    public VfcActorServiceProvider() {
+        super(VFC_ACTOR);
+
+        addOperator(new VfcOperator(VFC_ACTOR, Restart.NAME, Restart::new));
+    }
+
+    // TODO old code: remove lines down to **HERE**
+
     @Override
     public String actor() {
         return VFC_ACTOR;
@@ -78,35 +86,36 @@ public class VfcActorServiceProvider implements 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, String aaiUrl, String aaiUsername, String aaiPassword) {
+    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, aaiUrl, aaiUsername, aaiPassword);
-                if (tempVnfResp == null) {
-                    return null;
-                }
+            // get service instance from AaiCqResponse
+            if (aaiCqResponse == null) {
+                return null;
             }
-            serviceInstance = tempVnfResp.getServiceId();
+            serviceInstance = aaiCqResponse.getServiceInstance().getServiceInstanceId();
+            // If the serviceInstanceId returned is null then return null
+            if (serviceInstance == null) {
+                return null;
+            }
+
         }
         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());
 
@@ -123,27 +132,6 @@ public class VfcActorServiceProvider implements Actor {
         return request;
     }
 
-    private static AaiGetVnfResponse getAaiServiceInstance(VirtualControlLoopEvent event, String aaiUrl,
-            String aaiUsername, String aaiPassword) {
-        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");
-        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;
-    }
+    // **HERE**
+
 }