Custom Query Code
[policy/models.git] / models-interactions / model-actors / actor.vfc / src / main / java / org / onap / policy / controlloop / actor / vfc / VfcActorServiceProvider.java
index 23eb719..61cf81d 100644 (file)
@@ -22,11 +22,10 @@ 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.AaiCqResponse;
 import org.onap.policy.aai.AaiGetVnfResponse;
 import org.onap.policy.aai.AaiManager;
 import org.onap.policy.controlloop.ControlLoopOperation;
@@ -146,4 +145,51 @@ public class VfcActorServiceProvider implements Actor {
         }
         return response;
     }
+
+    /**
+     * This method constructs the VFC 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 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)) {
+            // 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;
+            }
+
+        }
+        request.setNsInstanceId(serviceInstance);
+        request.setRequestId(onset.getRequestId());
+        request.setHealRequest(new VfcHealRequest());
+        request.getHealRequest().setVnfInstanceId(onset.getAai().get("generic-vnf.vnf-id"));
+        request.getHealRequest().setCause(operation.getMessage());
+        request.getHealRequest().setAdditionalParams(new VfcHealAdditionalParams());
+
+        if (policy.getRecipe().toLowerCase().equalsIgnoreCase(RECIPE_RESTART)) {
+            request.getHealRequest().getAdditionalParams().setAction("restartvm");
+            request.getHealRequest().getAdditionalParams().setActionInfo(new VfcHealActionVmInfo());
+            request.getHealRequest().getAdditionalParams().getActionInfo()
+                    .setVmid(onset.getAai().get("vserver.vserver-id"));
+            request.getHealRequest().getAdditionalParams().getActionInfo()
+                    .setVmname(onset.getAai().get("vserver.vserver-name"));
+        } else {
+            return null;
+        }
+        return request;
+    }
 }