Merge "add junit for VfModuleCustomizationToVduMapper"
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
index 1ec1df1..fd819fd 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVFCNSResource.groovy
@@ -241,7 +241,7 @@
         String serviceId = execution.getVariable("serviceInstanceId")

         String addRelationPayload = """<relationship xmlns="http://org.openecomp.aai.inventory/v11">

                                             <related-to>service-instance</related-to>

-                                            <related-link>/aai/v11/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${nsInstanceId}</related-link>

+                                            <related-link>/aai/v11/business/customers/customer/${globalSubscriberId}/service-subscriptions/service-subscription/${serviceType}/service-instances/service-instance/${serviceId}</related-link>

                                             <relationship-data>

                                                 <relationship-key>customer.global-customer-id</relationship-key>

                                                 <relationship-value>${globalSubscriberId}</relationship-value>

@@ -252,12 +252,12 @@
                                             </relationship-data>

                                            <relationship-data>

                                                 <relationship-key>service-instance.service-instance-id</relationship-key>

-                                                <relationship-value>${nsInstanceId}</relationship-value>

+                                                <relationship-value>${serviceId}</relationship-value>

                                             </relationship-data>           

                                         </relationship>"""

         String endpoint = execution.getVariable("URN_aai_endpoint")  

         utils.log("INFO","Add Relationship req:\n" + addRelationPayload,  isDebugEnabled)

-        String url = endpoint + "/aai/v11/business/customers/customer/" + globalSubscriberId + "/service-subscriptions/service-subscription/" + serviceType + "/service-instances/service-instance/" + serviceId + "/relationship-list/relationship"

+        String url = endpoint + "/aai/v11/business/customers/customer/" + globalSubscriberId + "/service-subscriptions/service-subscription/" + serviceType + "/service-instances/service-instance/" + nsInstanceId + "/relationship-list/relationship"

         APIResponse aaiRsp = executeAAIPutCall(execution, url, addRelationPayload)

         utils.log("INFO","aai response status code:" + aaiRsp.getStatusCode(),  isDebugEnabled)

         utils.log("INFO","aai response content:" + aaiRsp.getResponseBodyAsString(),  isDebugEnabled)

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
index f0ecbab..d3e89df 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
@@ -107,7 +107,7 @@
      */

     public void deleteNSRelationship(DelegateExecution execution) {

         def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

-        utils.log("INFO"," ***** addNSRelationship *****",  isDebugEnabled)

+        utils.log("INFO"," ***** deleteNSRelationship *****",  isDebugEnabled)

         String nsInstanceId = execution.getVariable("resourceInstanceId")

         if(nsInstanceId == null || nsInstanceId == ""){

             utils.log("INFO"," Delete NS failed",  isDebugEnabled)

@@ -133,13 +133,13 @@
                                             </relationship-data>           

                                         </relationship>"""

         String endpoint = execution.getVariable("URN_aai_endpoint")

-        utils.log("INFO","Add Relationship req:\n" + deleteRelationPayload,  isDebugEnabled)

+        utils.log("INFO","Delete Relationship req:\n" + deleteRelationPayload,  isDebugEnabled)

         String url = endpoint + "/aai/v11/business/customers/customer/" + globalSubscriberId + "/service-subscriptions/service-subscription/" + serviceType + "/service-instances/service-instance/" + serviceId + "/relationship-list/relationship"

 

         APIResponse aaiRsp = executeAAIDeleteCall(execution, url, deleteRelationPayload)

         utils.log("INFO","aai response status code:" + aaiRsp.getStatusCode(),  isDebugEnabled)

         utils.log("INFO","aai response content:" + aaiRsp.getResponseBodyAsString(),  isDebugEnabled)

-        utils.log("INFO"," *****Exit addNSRelationship *****",  isDebugEnabled)

+        utils.log("INFO"," *****Exit deleteNSRelationship *****",  isDebugEnabled)

     }

 

     public APIResponse executeAAIDeleteCall(DelegateExecution execution, String url, String payload){

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
index dff1ecf..74c991e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstance.groovy
@@ -126,11 +126,16 @@
 			

 			// user params

 			String uuiRequest = execution.getVariable("uuiRequest")

+            

+			// target model Invariant uuid

+			String modelInvariantUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceInvariantUuid")

+			execution.setVariable("modelInvariantUuid", modelInvariantUuid)            

+			utils.log("INFO", "modelInvariantUuid: " + modelInvariantUuid, isDebugEnabled)            

+            

 			// target model uuid

 			String modelUuid = jsonUtil.getJsonValue(uuiRequest, "service.serviceUuid")

-			execution.setVariable("modelUuid", modelUuid)

-			

-			utils.log("INFO","modelUuid: " + modelUuid, isDebugEnabled)

+			execution.setVariable("modelUuid", modelUuid)			

+			utils.log("INFO", "modelUuid: " + modelUuid, isDebugEnabled)

 				

 		} catch (BpmnError e) {

 			throw e;

@@ -327,9 +332,20 @@
 		String msg = ""

 		utils.log("INFO"," ***** preProcessAAIPUT *****",  isDebugEnabled)

 

-		String modelUuid = execution.getVariable("modelUuid")

+

 		String serviceInstanceVersion = execution.getVariable("serviceInstanceVersion")

-		execution.setVariable("GENPS_serviceResourceVersion", serviceInstanceVersion)

+		//execution.setVariable("GENPS_serviceResourceVersion", serviceInstanceVersion)

+        

+		//requestDetails.modelInfo.for AAI PUT servieInstanceData

+		//requestDetails.requestInfo. for AAI GET/PUT serviceInstanceData

+		String serviceInstanceName = execution.getVariable("serviceInstanceName")

+		String serviceInstanceId = execution.getVariable("serviceInstanceId")

+		//aai serviceType and Role can be setted as fixed value now.

+		String aaiServiceType = "E2E Service"

+		String aaiServiceRole = "E2E Service"

+		String modelInvariantUuid = execution.getVariable("modelInvariantUuid")

+		String modelUuid = execution.getVariable("modelUuid")

+

 

 		AaiUtil aaiUriUtil = new AaiUtil(this)

 		utils.log("INFO","start create aai uri: " + aaiUriUtil, isDebugEnabled)	

@@ -341,7 +357,13 @@
 		//update target model to aai

 		String serviceInstanceData =

 				"""<service-instance xmlns=\"${namespace}\">

-			       <model-version-id">${modelUuid}</model-version-id>

+                    <service-instance-id>${serviceInstanceId}</service-instance-id>

+                    <service-instance-name>${serviceInstanceName}</service-instance-name>

+                    <service-type>${aaiServiceType}</service-type>

+                    <service-role>${aaiServiceRole}</service-role>

+                    <resource-version>${serviceInstanceVersion}</resource-version>

+                    <model-invariant-id>${modelInvariantUuid}</model-invariant-id>

+                    <model-version-id>${modelUuid}</model-version-id>                    

 				 </service-instance>""".trim()

 

 		execution.setVariable("serviceInstanceData", serviceInstanceData)

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy
index 1e70f95..a55ca02 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateE2EServiceInstanceRollback.groovy
@@ -25,7 +25,9 @@
 import groovy.json.*
 
 import org.openecomp.mso.bpmn.core.json.JsonUtils
+import org.openecomp.mso.bpmn.common.scripts.AaiUtil
 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
 import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils
 import org.openecomp.mso.bpmn.core.RollbackData
 import org.openecomp.mso.bpmn.core.WorkflowException
@@ -64,6 +66,7 @@
 public class DoUpdateE2EServiceInstanceRollback extends AbstractServiceTaskProcessor{
 
 	String Prefix="DUPDSIRB_"
+	ExceptionUtil exceptionUtil = new ExceptionUtil()
 
 	public void preProcessRequest(DelegateExecution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
@@ -259,13 +262,36 @@
 		String msg = ""
 		utils.log("INFO"," ***** preProcessAAIPUT *****",  isDebugEnabled)
 
-		String modelUuid = execution.getVariable("model-version-id-original")
 		String serviceInstanceVersion = execution.getVariable("serviceInstanceVersion_n")
-		execution.setVariable("GENPS_serviceResourceVersion", serviceInstanceVersion)
+//		execution.setVariable("GENPS_serviceResourceVersion", serviceInstanceVersion)
+        
+		//requestDetails.modelInfo.for AAI PUT servieInstanceData
+		//requestDetails.requestInfo. for AAI GET/PUT serviceInstanceData
+		String serviceInstanceName = execution.getVariable("serviceInstanceName")
+		String serviceInstanceId = execution.getVariable("serviceInstanceId")
+		//aai serviceType and Role can be setted as fixed value now.
+		String aaiServiceType = "E2E Service"
+		String aaiServiceRole = "E2E Service"
+		String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
+		String modelUuid = execution.getVariable("model-version-id-original")
+
+		//AAI PUT      
+		AaiUtil aaiUriUtil = new AaiUtil(this)
+		utils.log("INFO","start create aai uri: " + aaiUriUtil, isDebugEnabled)
+		String aai_uri = aaiUriUtil.getBusinessCustomerUri(execution)
+		utils.log("INFO","aai_uri: " + aai_uri, isDebugEnabled)
+		String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
+		utils.log("INFO","namespace: " + namespace, isDebugEnabled)
 
 		String serviceInstanceData =
 				"""<service-instance xmlns=\"${namespace}\">
-			       <resource-version">${modelUuid}</resource-version>
+                    <service-instance-id>${serviceInstanceId}</service-instance-id>
+                    <service-instance-name>${serviceInstanceName}</service-instance-name>
+                    <service-type>${aaiServiceType}</service-type>
+                    <service-role>${aaiServiceRole}</service-role>
+                    <resource-version>${serviceInstanceVersion}</resource-version>
+                    <model-invariant-id>${modelInvariantUuid}</model-invariant-id>
+                    <model-version-id>${modelUuid}</model-version-id>   
 				 </service-instance>""".trim()
 
 		execution.setVariable("serviceInstanceData", serviceInstanceData)
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
index a964a7e..f3f1a96 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy
@@ -413,7 +413,6 @@
                             <ns:updateServiceOperationStatus xmlns:ns="http://org.openecomp.mso/requestsdb">
                             <serviceId>${serviceId}</serviceId>
                             <operationId>${operationId}</operationId>
-                            <serviceName>${serviceName}</serviceName>
                             <operationType>${operationType}</operationType>
                             <userId>${userId}</userId>
                             <result>${result}</result>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVcpeResCustServiceV2.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVcpeResCustServiceV2.bpmn
index 94b88f7..99b1ff5 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVcpeResCustServiceV2.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVcpeResCustServiceV2.bpmn
@@ -585,6 +585,7 @@
       <bpmn2:extensionElements>
         <camunda:in source="timeoutForPnfEntryNotification" target="timeoutForPnfEntryNotification" />
         <camunda:in source="correlationId" target="correlationId" />
+        <camunda:in businessKey="#{execution.processBusinessKey}" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_0gj4vud</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0clhseq</bpmn2:outgoing>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
index 35cd039..41c9a67 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateE2EServiceInstance.bpmn
@@ -156,17 +156,17 @@
       <bpmn2:scriptTask id="ScriptTask_1awrp72" name="Pre Process Exception" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_05j3sat</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_19ly8h7</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def dcsi = new DoCreateResources()

-dcsi.preProcessRollback(execution)

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.preProcessRollback(execution)
 ]]></bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:scriptTask id="ScriptTask_0vc9jgo" name="Post Process Exception" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_19ly8h7</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_02znk15</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def dcsi = new DoCreateResources()

-dcsi.postProcessRollback(execution)

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcsi = new DoUpdateE2EServiceInstance()
+dcsi.postProcessRollback(execution)
 ]]></bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_05j3sat" sourceRef="StartEvent_06768u3" targetRef="ScriptTask_1awrp72" />