Merge "Update resource recipe parameter prepare logic"
authorRob Daugherty <rd472p@att.com>
Fri, 9 Mar 2018 22:34:02 +0000 (22:34 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 9 Mar 2018 22:34:02 +0000 (22:34 +0000)
bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/recipe/ResourceInput.java
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateE2EServiceInstance.groovy

index b56a438..1cddc54 100644 (file)
@@ -57,9 +57,14 @@ public class ResourceInput {
     @JsonProperty("operationId")\r
     private String operationId;\r
     \r
-    @JsonProperty("resourceType")\r
-    private String resourceType;\r
+    //for create resource\r
+    @JsonProperty("resourceInvariantUuid")\r
+    private String resourceInvariantUuid;\r
     \r
+    //for create resource\r
+    @JsonProperty("resourceUuid")\r
+    private String resourceUuid;\r
+\r
     //for create resource\r
     @JsonProperty("resourceCustomizationUuid")\r
     private String resourceCustomizationUuid;\r
@@ -181,26 +186,48 @@ public class ResourceInput {
     public void setOperationId(String operationId) {\r
         this.operationId = operationId;\r
     }\r
+        \r
+   \r
+    \r
+    /**\r
+     * @return Returns the resourceInvariantUuid.\r
+     */\r
+    @JsonProperty("resourceInvariantUuid")\r
+    public String getResourceInvariantUuid() {\r
+        return resourceInvariantUuid;\r
+    }\r
+\r
 \r
     \r
     /**\r
-     * @return Returns the resourceType.\r
+     * @param resourceInvariantUuid The resourceInvariantUuid to set.\r
      */\r
-    @JsonProperty("resourceType")\r
-    public String getResourceType() {\r
-        return resourceType;\r
+    @JsonProperty("resourceInvariantUuid")\r
+    public void setResourceInvariantUuid(String resourceInvariantUuid) {\r
+        this.resourceInvariantUuid = resourceInvariantUuid;\r
     }\r
 \r
+\r
     \r
     /**\r
-     * @param resourceType The resourceType to set.\r
+     * @return Returns the resourceUuid.\r
      */\r
-    @JsonProperty("resourceType")\r
-    public void setResourceType(String resourceType) {\r
-        this.resourceType = resourceType;\r
+    @JsonProperty("resourceUuid")\r
+    public String getResourceUuid() {\r
+        return resourceUuid;\r
     }\r
 \r
+\r
     \r
+    /**\r
+     * @param resourceUuid The resourceUuid to set.\r
+     */\r
+    @JsonProperty("resourceUuid")\r
+    public void setResourceUuid(String resourceUuid) {\r
+        this.resourceUuid = resourceUuid;\r
+    }\r
+\r
+\r
     /**\r
      * @return Returns the resourceCustomizationUuid.\r
      */\r
index cfdc0e9..2b2d622 100644 (file)
@@ -27,6 +27,12 @@ import groovy.json.*
 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
 import org.openecomp.mso.bpmn.core.domain.ServiceInstance
 import org.openecomp.mso.bpmn.core.domain.ModelInfo
+import org.openecomp.mso.bpmn.core.domain.Resource
+import org.openecomp.mso.bpmn.core.domain.AllottedResource
+import org.openecomp.mso.bpmn.core.domain.NetworkResource
+import org.openecomp.mso.bpmn.core.domain.VnfResource
+import org.openecomp.mso.bpmn.common.recipe.ResourceInput
+import org.openecomp.mso.bpmn.common.recipe.BpmnRestClient
 import org.openecomp.mso.bpmn.core.json.JsonUtils
 import org.openecomp.mso.bpmn.common.scripts.AaiUtil
 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
@@ -42,6 +48,8 @@ import org.openecomp.mso.rest.RESTConfig
 import java.util.List;
 import java.util.UUID;
 
+import javax.mail.Quota.Resource;
+
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.runtime.Execution
 import org.json.JSONObject;
@@ -400,11 +408,11 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
             execution.setVariable("serviceInstanceId", serviceId)
             execution.setVariable("operationId", operationId)
             execution.setVariable("operationType", operationType)
-            String incomingRequest = execution.getVariable("uuiRequest")
-            String resourcesStr = jsonUtil.getJsonValue(incomingRequest, "service.parameters.resources")  
-            List<String> resourceList = jsonUtil.StringArrayToList(execution, resourcesStr)   
+            ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
+            List<Resource>  resourceList = serviceDecomposition.getServiceResources()
+            
             for(String resource : resourceList){
-                    resourceTemplateUUIDs  = resourceTemplateUUIDs + jsonUtil.getJsonValue(resource, "resourceId") + ":"
+                    resourceTemplateUUIDs  = resourceTemplateUUIDs + resource.getModelInfo().getModelCustomizationUuid() + ":"                            
             }           
 
             def dbAdapterEndpoint = "http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter"
@@ -491,41 +499,34 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
         if (networks == null) {
             utils.log("INFO", "No matching networks in Catalog DB for serviceModelUUID=" + serviceModelUUID, isDebugEnabled)
         }
-        String incomingRequest = execution.getVariable("uuiRequest")
-        String resourcesStr = jsonUtil.getJsonValue(incomingRequest, "service.parameters.resources")  
-        List<String> resourceList = jsonUtil.StringArrayToList(execution, resourcesStr) 
-        // Only one match herenetwork
-        List<String> nsResources = new ArrayList<String>()
-        List<String> wanResources = new ArrayList<String>()
-        List<String> resourceSequence = new  ArrayList<String>()
-        for(String resource : resourceList){
-            String resourceName = jsonUtil.getJsonValue(resource, "resourceName")  
-            String resourceUUID = jsonUtil.getJsonValue(resource, "resourceId")
-            //check is network.
-            boolean isNetwork = false;
-            if(networks != null){
-                for(int i = 0; i < networks.size(); i++){
-                    String networkUUID = jsonUtil.getJsonValueForKey(networks.get(i), "modelVersionId")
-                    if(StringUtils.equals(resourceUUID, networkUUID)){
-                        isNetwork = true
-                        break
-                    }
-                }
-            }
-            if(isNetwork){
-                wanResources.add(resourceName)
-            }else{
-                nsResources.add(resourceName)
-            }
+        ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
+                
+        //we use VF to define a network service
+        List<VnfResource>  vnfResourceList= serviceDecomposition.getServiceVnfs()
+        
+        //here wan is defined as a network resource        
+        List<NetworkResource> networkResourceList = serviceDecomposition.getServiceNetworks()
+
+        //allotted resource
+        List<AllottedResource> arResourceList= serviceDecomposition.getServiceAllottedResources()
+        //define sequenced resource list, we deploy vf first and then network and then ar
+        //this is defaule sequence
+        List<Resource>  sequencedResourceList = new ArrayList<Resource>();
+        if(null != vnfResourceList){
+            sequencedResourceList.addAll(vnfResourceList)
+        }
+        if(null != networkResourceList){
+            sequencedResourceList.addAll(networkResourceList)
+        }
+        if(null != arResourceList){
+            sequencedResourceList.addAll(arResourceList)
         }
-        resourceSequence.addAll(nsResources)
-        resourceSequence.addAll(wanResources)
-        String isContainsWanResource = wanResources.isEmpty() ? "false" : "true"
+
+        String isContainsWanResource = networkResourceList.isEmpty() ? "false" : "true"
         execution.setVariable("isContainsWanResource", isContainsWanResource)
         execution.setVariable("currentResourceIndex", 0)
-        execution.setVariable("resourceSequence", resourceSequence)
-        utils.log("INFO", "resourceSequence: " + resourceSequence, isDebugEnabled)  
-        execution.setVariable("wanResources", wanResources)
+        execution.setVariable("sequencedResourceList", sequencedResourceList)
+        utils.log("INFO", "sequencedResourceList: " + sequencedResourceList, isDebugEnabled)  
         utils.log("INFO", "======== COMPLETED sequenceResoure Process ======== ", isDebugEnabled)  
        }
        
@@ -533,15 +534,9 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
            def isDebugEnabled=execution.getVariable("isDebugLogEnabled")   
         utils.log("INFO", "======== Start getCurrentResoure Process ======== ", isDebugEnabled)    
            def currentIndex = execution.getVariable("currentResourceIndex")
-           List<String> resourceSequence = execution.getVariable("resourceSequence")  
-           List<String> wanResources = execution.getVariable("wanResources")  
-           String resourceName =  resourceSequence.get(currentIndex)
-           execution.setVariable("resourceType",resourceName)
-           if(wanResources.contains(resourceName)){
-               execution.setVariable("controllerInfo", "SDN-C")
-           }else{
-               execution.setVariable("controllerInfo", "VF-C")
-           }
+           List<Resource> sequencedResourceList = execution.getVariable("sequencedResourceList")  
+           Resource currentResource = sequencedResourceList.get(currentIndex)
+           utils.log("INFO", "Now we deal with resouce:" + currentResource.getModelInfo().getModelName(), isDebugEnabled)  
         utils.log("INFO", "======== COMPLETED getCurrentResoure Process ======== ", isDebugEnabled)  
     }
 
@@ -554,8 +549,8 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
         def currentIndex = execution.getVariable("currentResourceIndex")
         def nextIndex =  currentIndex + 1
         execution.setVariable("currentResourceIndex", nextIndex)
-        List<String> resourceSequence = execution.getVariable("resourceSequence")    
-        if(nextIndex >= resourceSequence.size()){
+        List<String> sequencedResourceList = execution.getVariable("sequencedResourceList")    
+        if(nextIndex >= sequencedResourceList.size()){
             execution.setVariable("allResourceFinished", "true")
         }else{
             execution.setVariable("allResourceFinished", "false")
@@ -569,4 +564,59 @@ public class DoCreateE2EServiceInstance extends AbstractServiceTaskProcessor {
      public void postConfigRequest(execution){
          //now do noting
      } 
+     
+     public void prepareResourceRecipeRequest(execution){
+         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")                 
+         utils.log("INFO", "======== Start prepareResourceRecipeRequest Process ======== ", isDebugEnabled) 
+         ResourceInput resourceInput = new ResourceInput()         
+         String serviceInstanceName = execution.getVariable("serviceInstanceName")
+         String resourceInstanceName = resourceType + "_" + serviceInstanceName
+         resourceInput.setResourceInstanceName(resourceInstanceName)
+         utils.log("INFO", "Prepare Resource Request resourceInstanceName:" + resourceInstanceName, isDebugEnabled)
+         String globalSubscriberId = execution.getVariable("globalSubscriberId")
+         String serviceType = execution.getVariable("serviceType")
+         String serviceInstanceId = execution.getVariable("serviceInstanceId")
+         String operationId = execution.getVariable("operationId")
+         String operationType = execution.getVariable("operationType")
+         resourceInput.setGlobalSubscriberId(globalSubscriberId)
+         resourceInput.setServiceType(serviceType)
+         resourceInput.setServiceInstanceId(serviceInstanceId)
+         resourceInput.setOperationId(operationId)
+         resourceInput.setOperationType(operationType);
+         def currentIndex = execution.getVariable("currentResourceIndex")
+         List<Resource> sequencedResourceList = execution.getVariable("sequencedResourceList")  
+         Resource currentResource = sequencedResourceList.get(currentIndex)
+         String resourceCustomizationUuid = currentResource.getModelInfo().getModelCustomizationUuid()
+         resourceInput.setResourceCustomizationUuid(resourceCustomizationUuid);
+         String resourceInvariantUuid = currentResource.getModelInfo().getModelInvariantUuid()
+         resourceInput.setResourceInvariantUuid(resourceInvariantUuid)
+         String resourceUuid = currentResource.getModelInfo().getModelUuid()
+         resourceInput.setResourceUuid(resourceUuid)
+         
+         String incomingRequest = execution.getVariable("uuiRequest")
+         String resourcesStr = jsonUtil.getJsonValue(incomingRequest, "service.parameters.resources")
+         String serviceRequestInputs = jsonUtil.getJsonValue(incomingRequest, "service.parameters.requestInputs")
+         String serviceDescription = jsonUtil.getJsonValue(incomingRequest, "service.description")  
+         resourceInput.setResourceInstanceDes(serviceDescription)
+         utils.log("INFO", "Prepare Resource Request:" + resourceInput.toString(), isDebugEnabled)
+         List<String> resourceList = jsonUtil.StringArrayToList(execution, resourcesStr)
+         String locationConstraints = ""
+         String resourceRequestInputs = ""
+         for(String resource : resourceList){
+             String resourceUuidTmp = jsonUtil.getJsonValue(resource, "resourceUuid")  
+             String resourceCustomizationUuidTmp = jsonUtil.getJsonValue(resource, "resourceCustomizationUuid")  
+             if(StringUtils.equals(resourceUuidTmp, resourceUuid) && StringUtils.equals(resourceCustomizationUuidTmp, resourceCustomizationUuid)){
+
+                 String resourceParameters = jsonUtil.getJsonValue(resource, "parameters")                
+                 locationConstraints =  jsonUtil.getJsonValue(resourceParameters, "locationConstraints")
+                 resourceRequestInputs =  jsonUtil.getJsonValue(resourceParameters, "requestInputs")
+             } 
+         }
+         //set the requestInputs from tempalte  To Be Done
+         //String resourceParameters = ResourceRequestBuilder.buildRequestParameters()
+         String resourceParameters = ""
+         resourceInput.setResourceParameters(resourceParameters)
+         execution.setVariable("resourceInput", resourceInput)
+         utils.log("INFO", "======== COMPLETED prepareResourceRecipeRequest Process ======== ", isDebugEnabled)      
+     }
 }