Merge "Added canceling subsription to pnf-pnp workflow"
[so.git] / bpmn / MSOInfrastructureBPMN / src / main / groovy / org / openecomp / mso / bpmn / infrastructure / scripts / DoCreateResources.groovy
index 5dd33c9..ae75d54 100644 (file)
@@ -20,6 +20,9 @@
  
 package org.openecomp.mso.bpmn.infrastructure.scripts
 
+import org.codehaus.jackson.map.ObjectMapper
+import org.openecomp.mso.bpmn.infrastructure.properties.BPMNProperties
+
 import java.util.ArrayList
 import java.util.Iterator
 import java.util.List
@@ -98,38 +101,74 @@ public class DoCreateResources extends AbstractServiceTaskProcessor
         
         String serviceModelUUID = execution.getVariable("modelUuid")      
                
-        List<Resource> addResourceList = execution.getVariable("addResourceList")        
+        List<Resource> addResourceList = execution.getVariable("addResourceList")
+        List<NetworkResource> networkResourceList = new ArrayList<NetworkResource>()
+
+        List<Resource> sequencedResourceList = new ArrayList<Resource>()
+        def resourceSequence = BPMNProperties.getResourceSequenceProp()
+
+        if(resourceSequence != null) {
+            // sequence is defined in config file
+            for (resourceType in resourceSequence) {
+                for (resource in addResourceList) {
+                    if (StringUtils.containsIgnoreCase(resource.getModelInfo().getModelName(), resourceType)) {
+                        sequencedResourceList.add(resource)
+
+                        if (resource instanceof NetworkResource) {
+                            networkResourceList.add(resource)
+                        }
+                    }
+                }
+            }
+        } else {
 
-        //we use VF to define a network service
+        //define sequenced resource list, we deploy vf first and then network and then ar
+        //this is defaule sequence
         List<VnfResource> vnfResourceList = new ArrayList<VnfResource>()
-        //here wan is defined as a network resource
-        List<NetworkResource> networkResourceList = new ArrayList<NetworkResource>()
-        //allotted resource      
         List<AllottedResource> arResourceList = new ArrayList<AllottedResource>()
 
-        //define sequenced resource list, we deploy vf first and then network and then ar 
-        //this is defaule sequence
-        List<Resource> sequencedResourceList = new ArrayList<Resource>()
         for (Resource rc : addResourceList){
-        if (rc instanceof VnfResource) {
+            if (rc instanceof VnfResource) {
                 vnfResourceList.add(rc)
             } else if (rc instanceof NetworkResource) {
                 networkResourceList.add(rc)
             } else if (rc instanceof AllottedResource) {
                 arResourceList.add(rc)
             }
-        }        
+        }
         sequencedResourceList.addAll(vnfResourceList)
         sequencedResourceList.addAll(networkResourceList)
         sequencedResourceList.addAll(arResourceList)
-        
+        }
+
         String isContainsWanResource = networkResourceList.isEmpty() ? "false" : "true"
         execution.setVariable("isContainsWanResource", isContainsWanResource)
         execution.setVariable("currentResourceIndex", 0)
         execution.setVariable("sequencedResourceList", sequencedResourceList)
         utils.log("INFO", "sequencedResourceList: " + sequencedResourceList, isDebugEnabled) 
         utils.log("INFO", "======== COMPLETED sequenceResoure Process ======== ", isDebugEnabled)
-    }   
+    }
+
+    public prepareServiceTopologyRequest(DelegateExecution execution) {
+
+        def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
+        utils.log("INFO", "======== Start prepareServiceTopologyRequest Process ======== ", isDebugEnabled)
+
+        String serviceDecompose = execution.getVariable("serviceDecomposition")
+
+        execution.setVariable("operationType", "create")
+        execution.setVariable("resourceType", "")
+
+        String serviceInvariantUuid = jsonUtil.getJsonValue(serviceDecompose, "serviceResources.modelInfo.modelInvariantUuid")
+        String serviceUuid = jsonUtil.getJsonValue(serviceDecompose, "serviceResources.modelInfo.modelUuid")
+        String serviceModelName = jsonUtil.getJsonValue(serviceDecompose, "serviceResources.modelInfo.modelName")
+
+        execution.setVariable("modelInvariantUuid", serviceInvariantUuid)
+        execution.setVariable("modelUuid", serviceUuid)
+        execution.setVariable("serviceModelName", serviceModelName)
+
+        utils.log("INFO", "======== End prepareServiceTopologyRequest Process ======== ", isDebugEnabled)
+    }
    
     public void getCurrentResoure(DelegateExecution execution){
            def isDebugEnabled=execution.getVariable("isDebugLogEnabled")   
@@ -158,7 +197,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor
     }    
 
         public void prepareResourceRecipeRequest(DelegateExecution execution){
-                def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+                def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
                 utils.log("INFO", "======== Start prepareResourceRecipeRequest Process ======== ", isDebugEnabled)
                 ResourceInput resourceInput = new ResourceInput()
                 String serviceInstanceName = execution.getVariable("serviceInstanceName")
@@ -170,7 +209,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor
                 String serviceType = execution.getVariable("serviceType")
                 String serviceInstanceId = execution.getVariable("serviceInstanceId")
                 String operationId = execution.getVariable("operationId")
-                String operationType = execution.getVariable("operationType")
+                String operationType = "createInstance"
                 resourceInput.setGlobalSubscriberId(globalSubscriberId)
                 resourceInput.setServiceType(serviceType)
                 resourceInput.setServiceInstanceId(serviceInstanceId)
@@ -201,12 +240,15 @@ public class DoCreateResources extends AbstractServiceTaskProcessor
                 String serviceInstanceId = execution.getVariable("serviceInstanceId")
                 String serviceType = execution.getVariable("serviceType")
                 ResourceInput resourceInput = execution.getVariable("resourceInput")
-                String requestAction = resourceInput.getOperationType()
+                
+                // requestAction is action, not opertiontype
+                //String requestAction = resourceInput.getOperationType()
+                String requestAction = "createInstance"
                 JSONObject resourceRecipe = cutils.getResourceRecipe(execution, resourceInput.getResourceModelInfo().getModelUuid(), requestAction)
-                String recipeUri = resourceRecipe.getString("orchestrationUri")
+         String recipeURL = BPMNProperties.getProperty("bpelURL", "http://mso:8080") + resourceRecipe.getString("orchestrationUri")
                 int recipeTimeOut = resourceRecipe.getInt("recipeTimeout")
                 String recipeParamXsd = resourceRecipe.get("paramXSD")
-                HttpResponse resp = BpmnRestClient.post(recipeUri, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
+                HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeOut, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
          utils.log("INFO", "======== end executeResourceRecipe Process ======== ", isDebugEnabled)
         }