Fix for MDONS create and delete flow 50/103850/7
authorSrinivasan Ramanathan <srinivasan.ramanathan2@us.fujitsu.com>
Wed, 18 Mar 2020 09:23:51 +0000 (09:23 +0000)
committerSrinivasan Ramanathan <srinivasan.ramanathan2@us.fujitsu.com>
Tue, 24 Mar 2020 06:44:19 +0000 (06:44 +0000)
Added service-name update OTN service for Create flow
Added new request format for OTN service Delete flow

Change-Id: Iea3362c2a57a376f181de813158462390aaf27e3
Issue-ID: SO-2460
Signed-off-by: Srinivasan Ramanathan <srinivasan.ramanathan2@us.fujitsu.com>
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResource.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteSDNCNetworkResource.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteE2EServiceInstance.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeleteE2EServiceInstance.bpmn

index 8b9726c..7d1bc4c 100644 (file)
@@ -127,11 +127,7 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
             String key = iterator.next()
             HashMap<String, String> hashMap = new HashMap()
             hashMap.put("name", key)
-            if(jsonObject.get(key)==null){
-                 hashMap.put("value", "")
-             }else{
-                 hashMap.put("value", jsonObject.get(key))
-             }
+            hashMap.put("value", jsonObject.get(key))
             paramList.add(hashMap)
         }
         Map<String, List<Map<String, Object>>> paramMap = new HashMap()
@@ -260,6 +256,17 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
 
                 break
 
+            case ~/[\w\s\W]*UNI[\w\s\W]*/ :
+                def resourceInput = resourceInputObj.getResourceParameters()
+                String incomingRequest = resourceInputObj.getRequestsInputs()
+                String serviceParameters = JsonUtils.getJsonValue(incomingRequest, "service.parameters")
+                String requestInputs = JsonUtils.getJsonValue(serviceParameters, "requestInputs")
+                JSONObject inputParameters = new JSONObject(requestInputs)
+                String uResourceInput = jsonUtil.addJsonValue(resourceInput, "requestInputs.service-name", inputParameters.get("name"))
+                resourceInputObj.setResourceParameters(uResourceInput)
+                execution.setVariable(Prefix + "resourceInput", resourceInputObj.toString())
+                break
+
             case ~/[\w\s\W]*sdwanvpnattachment[\w\s\W]*/ :
             case ~/[\w\s\W]*sotnvpnattachment[\w\s\W]*/ :
             case ~/[\w\s\W]*SOTN-Attachment[\w\s\W]*/ :
@@ -363,7 +370,7 @@ public class CreateSDNCNetworkResource extends AbstractServiceTaskProcessor {
                                     <sdncadapter:MsoAction>opticalservice</sdncadapter:MsoAction>
                                  </sdncadapter:RequestHeader>
                                  <sdncadapterworkflow:SDNCRequestData>
-                                    <request-id>${msoUtils.xmlEscape(hdrRequestId)}</request-id>
+                                    <request-id>${msoUtils.xmlEscape(serviceInstanceId)}</request-id>
                                     <global-customer-id>${msoUtils.xmlEscape(globalCustomerId)}</global-customer-id>
                                     <service-type>${msoUtils.xmlEscape(serviceType)}</service-type>
                                     <notification-url>sdncCallback</notification-url>
index 61b1250..cdc242d 100644 (file)
@@ -221,6 +221,30 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
 
             switch (modelType) {
                 case "VNF":
+                                   if(modelName.contains("UNI") && "MDONS_OTN".equals(serviceType)){
+                                               String serviceInstanceName = resourceInputObj.getResourceInstanceName()
+                                               sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
+                                                              xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1" 
+                                                              xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
+                                 <sdncadapter:RequestHeader>
+                                    <sdncadapter:RequestId>${MsoUtils.xmlEscape(hdrRequestId)}</sdncadapter:RequestId>
+                                    <sdncadapter:SvcInstanceId>${MsoUtils.xmlEscape(serviceInstanceId)}</sdncadapter:SvcInstanceId>
+                                    <sdncadapter:SvcAction>${MsoUtils.xmlEscape(sdnc_svcAction)}</sdncadapter:SvcAction>
+                                    <sdncadapter:SvcOperation>optical-service-delete</sdncadapter:SvcOperation>
+                                    <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
+                                    <sdncadapter:MsoAction>opticalservice</sdncadapter:MsoAction>
+                                 </sdncadapter:RequestHeader>
+                                 <sdncadapterworkflow:SDNCRequestData>
+                                 <request-id>${msoUtils.xmlEscape(serviceInstanceId)}</request-id>
+                                     <payload>
+                                       <param>
+                                         <name>service-name</name>
+                                                                                <value>${msoUtils.xmlEscape(serviceInstanceName)}</value>
+                                       </param>
+                                     </payload>
+                                </sdncadapterworkflow:SDNCRequestData>
+                             </aetgt:SDNCAdapterWorkflowRequest>""".trim()
+                                       } else{
                     sdncTopologyDeleteRequest = """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
                                                               xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1" 
                                                               xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
@@ -275,6 +299,7 @@ public class DeleteSDNCNetworkResource extends AbstractServiceTaskProcessor {
                                       </vnf-request-input>
                                 </sdncadapterworkflow:SDNCRequestData>
                              </aetgt:SDNCAdapterWorkflowRequest>""".trim()
+                                       } 
                     break
                 case "GROUP" :
                     //When a new resource creation request reaches SO, the parent resources information needs to be provided
index a24bc44..35af3d3 100644 (file)
@@ -450,6 +450,16 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
             execution.setVariable("serviceModelInfo", serviceDecomposition.getModelInfo())
 
             List<Resource> deleteResourceList = serviceDecomposition.getServiceResources()
+                       if (serviceDecomposition.getServiceType().equals("MDONS_OTN")){
+                          for (Resource resource : deleteResourceList) {
+                               String serviceName = execution.getVariable("serviceInstanceName")
+                               String serviceInstanceId = execution.getVariable("serviceInstanceId")
+                               resource.setResourceId(serviceInstanceId)
+                               resource.setResourceInstanceName(serviceName)
+                               def delMap = new ImmutablePair(resource, null)
+                               deleteRealResourceList.add(delMap)
+                          }
+                       } else{
             String serviceRelationShip = execution.getVariable("serviceRelationShip")
             def jsonSlurper = new JsonSlurper()
             def jsonOutput = new JsonOutput()
@@ -492,6 +502,7 @@ public class DoDeleteE2EServiceInstance extends AbstractServiceTaskProcessor {
                     }
                 }
             }
+                       }
 
             // only delete real existing resources
             execution.setVariable("deleteResourceList", deleteRealResourceList)
index 1149cc9..85fe3b4 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="3.1.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="3.4.1">
   <bpmn:process id="DoDeleteE2EServiceInstance" name="All Resources Deleted" isExecutable="true">
     <bpmn:startEvent id="StartEvent_0212h2r" name="Start Flow">
       <bpmn:outgoing>SequenceFlow_0vz7cd9</bpmn:outgoing>
@@ -131,6 +131,7 @@ dcsi.postDecomposeService(execution)</bpmn:script>
         <camunda:in source="operationType" target="operationType" />
         <camunda:in source="operationId" target="operationId" />
         <camunda:in source="serviceDecomposition" target="serviceDecomposition" />
+        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
       </bpmn:extensionElements>
       <bpmn:incoming>SequenceFlow_1j08ko3</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1cevtpy</bpmn:outgoing>