Fix SDNC resource deletion for E2E service 39/44339/1
authorsubhash kumar singh <subhash.kumar.singh@huawei.com>
Tue, 24 Apr 2018 12:47:08 +0000 (12:47 +0000)
committersubhash kumar singh <subhash.kumar.singh@huawei.com>
Tue, 24 Apr 2018 12:47:08 +0000 (12:47 +0000)
Fix SDNC resource deletion for E2E service.

Change-Id: I954c39044b4e4384a7941b6b6c5a0cccc57cf9b3
Issue-ID: SO-422
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteResourcesV1.groovy
bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteE2EServiceInstance.bpmn

index 9358537..72db6f3 100644 (file)
@@ -23,6 +23,7 @@ package org.openecomp.mso.bpmn.infrastructure.scripts
 
 import org.json.JSONArray
 import org.openecomp.mso.bpmn.common.resource.ResourceRequestBuilder
+import org.openecomp.mso.bpmn.core.domain.ModelInfo
 import org.openecomp.mso.bpmn.core.domain.Resource
 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
 import org.openecomp.mso.bpmn.infrastructure.properties.BPMNProperties;
@@ -75,26 +76,39 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
         String msg = ""
 
         try {
+            ResourceInput resourceInput = new ObjectMapper().readValue(execution.getVariable("resourceInput"), ResourceInput.class)
+
+            ModelInfo resourceModelInfo = resourceInput.getResourceModelInfo()
+            execution.setVariable("resourceInvariantUUID", resourceModelInfo.getModelInvariantUuid())
+            execution.setVariable("modelVersion", resourceModelInfo.getModelVersion())
+            execution.setVariable("resourceUUID", resourceModelInfo.getModelUuid())
+            execution.setVariable("resourceType", resourceModelInfo.getModelType())
+
             String serviceInstanceId = execution.getVariable("serviceInstanceId")
             String serviceInstanceName = execution.getVariable("serviceInstanceName")
             String callbackURL = execution.getVariable("sdncCallbackUrl")
             String requestId = execution.getVariable("msoRequestId")
-            String serviceId = execution.getVariable("productFamilyId")
-            String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
-            String globalSubscriberId = execution.getVariable("globalSubscriberId") //globalCustomerId
+            String subscriptionServiceType = execution.getVariable("serviceType")
+            String globalSubscriberId = resourceInput.getGlobalSubscriberId()
             String recipeParamsFromRequest = execution.getVariable("recipeParams")
-            String serviceModelInfo = execution.getVariable("serviceModelInfo")
+            String serviceId = resourceInput.getServiceInstanceId()
+            ModelInfo serviceModelInfo = resourceInput.getServiceModelInfo()
             String modelInvariantUuid = ""
             String modelVersion = ""
             String modelUuid = ""
             String modelName = ""
 
-            if (!isBlank(serviceModelInfo))
+            if (serviceModelInfo != null)
             {
-                modelInvariantUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantUuid")
-                modelVersion = jsonUtil.getJsonValue(serviceModelInfo, "modelVersion")
-                modelUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelUuid")
-                modelName = jsonUtil.getJsonValue(serviceModelInfo, "modelName")
+                modelInvariantUuid = serviceModelInfo.getModelInvariantUuid()
+                modelVersion = serviceModelInfo.getModelVersion()
+                modelUuid = serviceModelInfo.getModelUuid()
+                modelName = serviceModelInfo.getModelName()
+
+                execution.setVariable("modelInvariantUuid", serviceModelInfo.getModelInvariantUuid())
+                execution.setVariable("modelVersion", serviceModelInfo.getModelVersion())
+                execution.setVariable("modelUuid", serviceModelInfo.getModelUuid())
+                execution.setVariable("serviceModelName", serviceModelInfo.getModelName())
 
                 if (modelInvariantUuid == null) {
                     modelInvariantUuid = ""
@@ -141,7 +155,6 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
 
             operationType = "delete" + operationType + "Instance"
 
-            ResourceInput resourceInput = new ObjectMapper().readValue(execution.getVariable("resourceInput"), ResourceInput.class)
             if(StringUtils.containsIgnoreCase(resourceInput.getResourceModelInfo().getModelName(), "overlay")){
                 //This will be resolved in R3.
                 sdnc_svcAction ="deactivate"
@@ -194,6 +207,11 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
                                </sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
 
             sdncDelete = utils.formatXml(sdncDelete)
+
+            // set operation type and resource type is required to form request body
+            execution.setVariable("operationType", "DELETE")
+            execution.setVariable("resourceType", resourceModelInfo.getModelName())
+
             //def sdncRequestId2 = UUID.randomUUID().toString()
             //String sdncDeactivate = sdncDelete.replace(">delete<", ">deactivate<").replace(">${sdncRequestId}<", ">${sdncRequestId2}<")
             execution.setVariable("sdncDelete", sdncDelete)
index ec7370f..946c248 100644 (file)
@@ -354,6 +354,10 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
         utils.log("DEBUG", " ***** Inside processDecomposition() of  delete generic e2e service flow ***** ", isDebugEnabled)
         try {
             ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
+
+            // service model info
+            execution.setVariable("serviceModelInfo", serviceDecomposition.getModelInfo())
+
             List<Resource> deleteResourceList = serviceDecomposition.getServiceResources()
             String serviceRelationShip = execution.getVariable("serviceRelationShip")
             def jsonSlurper = new JsonSlurper()
index 0fcc41c..46dd7d6 100644 (file)
@@ -202,7 +202,7 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
     /**
      * prepare delete parameters
      */
-    public void preResourceDelete(DelegateExecution execution, String resourceName){
+    public void preResourceDelete(DelegateExecution execution){
 
         def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
 
@@ -220,7 +220,7 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
         execution.setVariable("resourceType", curResource.getModelInfo().getModelName())
         execution.setVariable("currentResource", curResource)
         utils.log("INFO", "Delete Resource Info resourceTemplate Id :" + resourceTemplateUUID + "  resourceInstanceId: "
-                + resourceInstanceUUID + " resourceType: " + resourceName, isDebugEnabled)
+                + resourceInstanceUUID, isDebugEnabled)
 
         utils.log("INFO", " ======== END preResourceDelete Process ======== ", isDebugEnabled)
     }
@@ -245,12 +245,16 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
         int recipeTimeout = resourceRecipe.getInt("recipeTimeout")
         String recipeParamXsd = resourceRecipe.isNull("paramXSD") ? "" : resourceRecipe.get("paramXSD")
 
-        Resource currentResource = execution.getVariable("currentResource")
-
         ResourceInput resourceInput = new ResourceInput();
+
+        ModelInfo serviceModelInfo = execution.getVariable("serviceModelInfo")
+        resourceInput.setServiceModelInfo(serviceModelInfo)
+
+        Resource currentResource = execution.getVariable("currentResource")
         resourceInput.setServiceInstanceId(serviceInstanceId)
         resourceInput.setResourceInstanceName(currentResource.getResourceInstanceName())
-        resourceInput.setGlobalSubscriberId("globalSubscriberId")
+        resourceInput.setGlobalSubscriberId(execution.getVariable("globalSubscriberId"))
+
         ModelInfo modelInfo = new ModelInfo()
         modelInfo.setModelCustomizationUuid(currentResource.getModelInfo().getModelCustomizationUuid())
         modelInfo.setModelUuid(currentResource.getModelInfo().getModelCustomizationUuid())
@@ -264,7 +268,7 @@ public class DoDeleteResourcesV1 extends AbstractServiceTaskProcessor {
 
         String recipeURL = BPMNProperties.getProperty("bpelURL", "http://mso:8080") + recipeUri
 
-        HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeout, requestAction, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
+        HttpResponse resp = BpmnRestClient.post(recipeURL, requestId, recipeTimeout, action, serviceInstanceId, serviceType, resourceInput.toString(), recipeParamXsd)
         utils.log("INFO", " ======== END executeResourceDelete Process ======== ", isDebugEnabled)
     }
 
index 8a3d441..524846f 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3">
   <bpmn:process id="DoDeleteE2EServiceInstance" name="All Resources Deleted" isExecutable="true">
     <bpmn:startEvent id="StartEvent_0212h2r" name="Start Flow">
       <bpmn:outgoing>SequenceFlow_0vz7cd9</bpmn:outgoing>
@@ -166,6 +166,7 @@ dcsi.postDecomposeService(execution)]]></bpmn:script>
         <camunda:in source="resourceInstanceIDs" target="resourceInstanceIDs" />
         <camunda:in source="operationType" target="operationType" />
         <camunda:in source="operationId" target="operationId" />
+        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
       </bpmn:extensionElements>
       <bpmn:incoming>SequenceFlow_1j08ko3</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1cevtpy</bpmn:outgoing>
@@ -181,10 +182,11 @@ dcsi.postDecomposeService(execution)]]></bpmn:script>
       <bpmn:linkEventDefinition name="DecomposeService" />
     </bpmn:intermediateThrowEvent>
     <bpmn:sequenceFlow id="SequenceFlow_0vi0sv6" sourceRef="ScriptTask_1rtnsh8" targetRef="StartEvent_1qh5a34" />
-    <bpmn:scriptTask id="ScriptTask_08a4vhm" name="Send Sync Ack Response" scriptFormat="groovy">    <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+    <bpmn:scriptTask id="ScriptTask_08a4vhm" name="Send Sync Ack Response" scriptFormat="groovy">
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def csi = new  CompareModelofE2EServiceInstance()
 csi.sendSyncResponse(execution)]]></bpmn:script>
-</bpmn:scriptTask>
+    </bpmn:scriptTask>
   </bpmn:process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeleteE2EServiceInstance">