1710 Rebase - Second Attempt

This commit rebases changes from openecomp-mso/internal-staging-1710 up to and including this codecloud commit:
54483fc6606ddb1591a2e9da61bff8712325f924
Wed Sep 6 18:12:56 2017 -0400

Rebasing was done on a branch on top of this commit in so/master in ONAP:
93fbdfbe46104f8859d4754040f979cb7997c157
Thu Sep 7 16:42:59 2017 +0000

Change-Id: I4ad9abf40da32bf5bdca43e868b8fa2dbcd9dc59
Issue-id: SO-107
Signed-off-by: Arthur Martella <amartell@research.att.com>
diff --git a/bpmn/MSOInfrastructureBPMN/pom.xml b/bpmn/MSOInfrastructureBPMN/pom.xml
index 5c0eff9..24c8546 100644
--- a/bpmn/MSOInfrastructureBPMN/pom.xml
+++ b/bpmn/MSOInfrastructureBPMN/pom.xml
@@ -214,13 +214,7 @@
 			<version>1.10.19</version>

 			<scope>test</scope>

 		</dependency>

-		<dependency>

-			<!-- Optional Plugin for Camunda BPM Workbench -->

-			<groupId>org.camunda.bpm.workbench</groupId>

-			<artifactId>camunda-workbench-dist-embeddable</artifactId>

-			<version>1.0.0-alpha8</version>

-			<scope>test</scope>

-		</dependency>

+		

 

 		<!-- Spin dataformat support, in compile scope to include it in the war

 			file -->

@@ -230,6 +224,11 @@
 			<scope>compile</scope>

 		</dependency>

 		<dependency>

+			<artifactId>camunda-spin-dataformat-all</artifactId>

+			<groupId>org.camunda.spin</groupId>

+			<scope>compile</scope>

+		</dependency>

+		<dependency>

 			<groupId>org.camunda.bpm</groupId>

 			<artifactId>camunda-engine-plugin-spin</artifactId>

 			<scope>compile</scope>

@@ -330,6 +329,13 @@
   	  <version>${project.version}</version>

 	</dependency>

 

+    <dependency>

+        <groupId>javax.servlet</groupId>

+        <artifactId>javax.servlet-api</artifactId>

+        <version>3.0.1</version>

+        <scope>provided</scope>

+    </dependency>

+

 	<dependency>

 			<groupId>com.github.tomakehurst</groupId>

 			<artifactId>wiremock</artifactId>

@@ -380,10 +386,25 @@
 			</exclusions>

 		</dependency>

 		<dependency>

-	        <groupId>javax.servlet</groupId>

-	        <artifactId>javax.servlet-api</artifactId>

-	        <version>3.0.1</version>

-	        <scope>provided</scope>

-	    </dependency>

+      		<groupId>org.camunda.bpm</groupId>

+      		<artifactId>camunda-engine-spring</artifactId>

+   		</dependency>

+   		<dependency>

+    <groupId>org.springframework</groupId>

+    <artifactId>spring-beans</artifactId>

+    <version>4.3.2.RELEASE</version>

+</dependency>

+<dependency>

+			<!-- Optional Plugin for Camunda BPM Workbench -->

+			<groupId>org.camunda.bpm.workbench</groupId>

+			<artifactId>camunda-workbench-dist-embeddable</artifactId>

+			<version>1.0.0-alpha8</version>

+			<scope>test</scope>

+		</dependency>

+		<dependency>

+       <groupId>org.jboss.resteasy</groupId>

+       <artifactId>resteasy-jackson2-provider</artifactId>

+       <version>3.0.11.Final</version>

+    </dependency>

 	</dependencies>

-</project>
\ No newline at end of file
+</project>

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericALaCarteServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericALaCarteServiceInstance.groovy
index ec414a4..e719029 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericALaCarteServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericALaCarteServiceInstance.groovy
@@ -39,7 +39,7 @@
 import org.springframework.web.util.UriUtils
 
 /**
- * This groovy class supports the <class>CreateServiceInstance.bpmn</class> process.
+ * This groovy class supports the <class>CreateGenericALaCarteServiceInstance.bpmn</class> process.
  * AlaCarte flow for 1702 ServiceInstance Create
  *
  */
@@ -118,8 +118,29 @@
 				execution.setVariable("subscriptionServiceType", subscriptionServiceType)
 			}
 
+			
+			/*
+			 * Extracting User Parameters from incoming Request and converting into a Map
+			 */
+			def jsonSlurper = new JsonSlurper()
+			def jsonOutput = new JsonOutput()
+
+			Map reqMap = jsonSlurper.parseText(siRequest)
+
+			//InputParams
+			def userParams = reqMap.requestDetails?.requestParameters?.userParams
+
+			Map<String, String> inputMap = [:]
+			if (userParams) {
+				userParams.each {
+					userParam -> inputMap.put(userParam.name, userParam.value)
+				}
+			}
+			
+			utils.log("DEBUG", "User Input Parameters map: " + userParams.toString(), isDebugEnabled)
+			execution.setVariable("serviceInputParams", inputMap)
+			
 			//TODO
-			//execution.setVariable("serviceInputParams", jsonUtil.getJsonValue(siRequest, "requestDetails.requestParameters.userParams"))
 			//execution.setVariable("failExists", true)
 
 		} catch (BpmnError e) {
@@ -168,7 +189,7 @@
 			}
 
 			String buildworkflowException =
-					"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
 					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
 				   </aetgt:WorkflowException>"""
@@ -192,9 +213,9 @@
 			String source = execution.getVariable("source")
 			
 			String msoCompletionRequest =
-					"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-								xmlns:ns="http://org.openecomp/mso/request/types/v1">

-						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+								xmlns:ns="http://org.openecomp/mso/request/types/v1">
+						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 							<request-id>${requestId}</request-id>
 							<action>CREATE</action>
 							<source>${source}</source>
@@ -228,7 +249,7 @@
 			String requestId = execution.getVariable("msoRequestId")
 			String source = execution.getVariable("source")
 			String requestInfo =
-					"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					<request-id>${requestId}</request-id>
 					<action>CREATE</action>
 					<source>${source}</source>
@@ -241,15 +262,15 @@
 			String errorException = "  Bpmn error encountered in CreateGenericALaCarteServiceInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
 			String requestId = execution.getVariable("msoRequestId")
 			String falloutRequest =
-					"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

-					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

-					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					      <request-id>${requestId}</request-id>
 					      <action>CREATE</action>
 					      <source>VID</source>
 					   </request-info>
-						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 							<aetgt:ErrorMessage>${errorException}</aetgt:ErrorMessage>
 							<aetgt:ErrorCode>7000</aetgt:ErrorCode>
 						</aetgt:WorkflowException>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericMacroServiceNetworkVnf.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericMacroServiceNetworkVnf.groovy
deleted file mode 100644
index 79508cb..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateGenericMacroServiceNetworkVnf.groovy
+++ /dev/null
@@ -1,804 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.bpmn.infrastructure.scripts;
-
-import groovy.xml.XmlUtil
-import groovy.json.*
-
-import org.openecomp.mso.bpmn.core.json.JsonUtils
-import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
-import org.openecomp.mso.bpmn.common.scripts.VidUtils
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.bpmn.core.decomposition.ModelInfo
-import org.openecomp.mso.bpmn.core.decomposition.NetworkResource
-import org.openecomp.mso.bpmn.core.decomposition.ServiceDecomposition
-import org.openecomp.mso.bpmn.core.decomposition.VnfResource
-import org.openecomp.mso.rest.APIResponse;
-import org.openecomp.mso.rest.RESTClient
-import org.openecomp.mso.rest.RESTConfig
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution
-import org.json.JSONObject;
-import org.json.JSONArray;
-import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.web.util.UriUtils;
-
-/**
- * This groovy class supports the <class>CreateGenericMacroServiceNetworkVnf.bpmn</class> process.
- *
- */
-public class CreateGenericMacroServiceNetworkVnf extends AbstractServiceTaskProcessor {
-
-	String Prefix="CGMSNV_"
-	ExceptionUtil exceptionUtil = new ExceptionUtil()
-	JsonUtils jsonUtil = new JsonUtils()
-	VidUtils vidUtils = new VidUtils()
-	CatalogDbUtils catalogDbUtils = new CatalogDbUtils()
-
-	/**
-	 * This method is executed during the preProcessRequest task of the <class>CreateServiceInstance.bpmn</class> process.
-	 * @param execution
-	 */
-	public InitializeProcessVariables(Execution execution){
-		/* Initialize all the process variables in this block */
-
-		execution.setVariable("createViprServiceRequest", "")
-		execution.setVariable("globalSubscriberId", "")
-		execution.setVariable("serviceInstanceName", "")
-		execution.setVariable("msoRequestId", "")
-		execution.setVariable("CGMSNV_NetworksCreatedCount", 0)
-		execution.setVariable("CGMSNV_VnfsCreatedCount", 0)
-		execution.setVariable("productFamilyId", "")
-
-		//TODO
-		execution.setVariable("sdncVersion", "1707")
-	}
-
-	// **************************************************
-	//     Pre or Prepare Request Section
-	// **************************************************
-	/**
-	 * This method is executed during the preProcessRequest task of the <class>CreateServiceInstance.bpmn</class> process.
-	 * @param execution
-	 */
-	public void preProcessRequest (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		execution.setVariable("prefix",Prefix)
-
-		utils.log("DEBUG", " ***** Inside preProcessRequest CreateGenericMacroServiceNetworkVnf Request ***** ", isDebugEnabled)
-
-		try {
-			// initialize flow variables
-			InitializeProcessVariables(execution)
-
-			// check for incoming json message/input
-			String createViprServiceRequest = execution.getVariable("bpmnRequest")
-			utils.logAudit(createViprServiceRequest)
-			execution.setVariable("createViprServiceRequest", createViprServiceRequest);
-			println 'createViprServiceRequest - ' + createViprServiceRequest
-
-			// extract requestId
-			String requestId = execution.getVariable("mso-request-id")
-			execution.setVariable("msoRequestId", requestId)
-
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-
-			if ((serviceInstanceId == null) || (serviceInstanceId.isEmpty())) {
-				serviceInstanceId = UUID.randomUUID().toString()
-				utils.log("DEBUG", " Generated new Service Instance: " + serviceInstanceId , isDebugEnabled)
-			} else {
-				utils.log("DEBUG", "Using provided Service Instance ID: " + serviceInstanceId , isDebugEnabled)
-			}
-
-			serviceInstanceId = UriUtils.encode(serviceInstanceId,"UTF-8")
-			execution.setVariable("serviceInstanceId", serviceInstanceId)
-
-			String requestAction = execution.getVariable("requestAction")
-			execution.setVariable("requestAction", requestAction)
-
-			String source = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestInfo.source")
-			if ((source == null) || (source.isEmpty())) {
-				execution.setVariable("source", "VID")
-			} else {
-				execution.setVariable("source", source)
-			}
-
-			// extract globalSubscriberId
-			String globalSubscriberId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.subscriberInfo.globalSubscriberId")
-
-			// verify element global-customer-id is sent from JSON input, throw exception if missing
-			if ((globalSubscriberId == null) || (globalSubscriberId.isEmpty())) {
-				String dataErrorMessage = " Element 'globalSubscriberId' is missing. "
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-			} else {
-				execution.setVariable("globalSubscriberId", globalSubscriberId)
-				execution.setVariable("globalCustomerId", globalSubscriberId)
-			}
-
-			// extract subscriptionServiceType
-			String subscriptionServiceType = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestParameters.subscriptionServiceType")
-			execution.setVariable("subscriptionServiceType", subscriptionServiceType)
-			utils.log("DEBUG", "Incoming subscriptionServiceType is: " + subscriptionServiceType, isDebugEnabled)
-
-			String suppressRollback = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestInfo.suppressRollback")
-			execution.setVariable("disableRollback", suppressRollback)
-			utils.log("DEBUG", "Incoming Suppress/Disable Rollback is: " + suppressRollback, isDebugEnabled)
-
-			String productFamilyId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestInfo.productFamilyId")
-			execution.setVariable("productFamilyId", productFamilyId)
-			utils.log("DEBUG", "Incoming productFamilyId is: " + productFamilyId, isDebugEnabled)
-
-			//For Completion Handler & Fallout Handler
-			String requestInfo =
-			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

-					<request-id>${requestId}</request-id>
-					<action>CREATE</action>
-					<source>${source}</source>
-				   </request-info>"""
-
-			execution.setVariable("CGMSNV_requestInfo", requestInfo)
-
-			utils.log("DEBUG", " ***** Completed preProcessRequest CreateGenericMacroServiceNetworkVnf Request ***** ", isDebugEnabled)
-
-		} catch (BpmnError e) {
-			throw e;
-
-		} catch (Exception ex){
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected from method preProcessRequest() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	public void sendSyncResponse (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		utils.log("DEBUG", " ***** Inside sendSyncResponse of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-		try {
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-			String requestId = execution.getVariable("mso-request-id")
-
-			// RESTResponse (for API Handler (APIH) Reply Task)
-			String syncResponse ="""{"requestReferences":{"instanceId":"${serviceInstanceId}","requestId":"${requestId}"}}""".trim()
-
-			utils.log("DEBUG", " sendSynchResponse: xmlSyncResponse - " + "\n" + syncResponse, isDebugEnabled)
-			sendWorkflowResponse(execution, 202, syncResponse)
-
-		} catch (Exception ex) {
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected from method sendSyncResponse() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	// *******************************
-	//
-	// *******************************
-	public void prepareDecomposeService(Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside prepareDecomposeService of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			String createViprServiceRequest = execution.getVariable("createViprServiceRequest")
-			String serviceModelInfo = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.modelInfo")
-			execution.setVariable("serviceModelInfo", serviceModelInfo)
-
-			utils.log("DEBUG", " ***** Completed prepareDecomposeService of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareDecomposeService() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	// *******************************
-	//
-	// *******************************
-	public void prepareCreateServiceInstance(Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside prepareCreateServiceInstance of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			/*
-			 * Service modelInfo is created in earlier step. This flow can use it as-is ... or, extract from DecompositionObject
-			 *		ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
-			 *		ModelInfo modelInfo = serviceDecomposition.getModelInfo()
-			 *
-			 */
-			String createViprServiceRequest = execution.getVariable("createViprServiceRequest")
-			String serviceInputParams = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestParameters")
-			execution.setVariable("serviceInputParams", serviceInputParams)
-
-			String serviceInstanceName = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestInfo.instanceName")
-			execution.setVariable("serviceInstanceName", serviceInstanceName)
-
-			ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
-			execution.setVariable("serviceDecompositionString", serviceDecomposition.toJsonString())
-
-			utils.log("DEBUG", " ***** Completed prepareCreateServiceInstance of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareCreateServiceInstance() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	public void postProcessServiceInstanceCreate (Execution execution){
-		def method = getClass().getSimpleName() + '.postProcessServiceInstanceCreate(' +'execution=' + execution.getId() +')'
-		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
-		logDebug('Entered ' + method, isDebugLogEnabled)
-
-		String source = execution.getVariable("source")
-		String requestId = execution.getVariable("mso-request-id")
-		String serviceInstanceId = execution.getVariable("serviceInstanceId")
-		String serviceInstanceName = execution.getVariable("serviceInstanceName")
-
-		try {
-
-			String payload = """
-			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">

-			<soapenv:Header/>
-			<soapenv:Body>
-			<req:updateInfraRequest>
-				<requestId>${requestId}</requestId>
-				<lastModifiedBy>BPEL</lastModifiedBy>
-				<serviceInstanceId>${serviceInstanceId}</serviceInstanceId>
-				<serviceInstanceName>${serviceInstanceName}</serviceInstanceName>
-			</req:updateInfraRequest>
-			</soapenv:Body>
-			</soapenv:Envelope>
-			"""
-			execution.setVariable("CGMSNV_setUpdateDbInstancePayload", payload)
-			utils.logAudit("CGMSNV_setUpdateDbInstancePayload: " + payload)
-			logDebug('Exited ' + method, isDebugLogEnabled)
-			//println("CMSO_updateDBStatusToSuccessPayload --> " + execution.getVariable("CMSO_updateDBStatusToSuccessPayload"))
-
-		} catch (BpmnError e) {
-			throw e;
-		} catch (Exception e) {
-			logError('Caught exception in ' + method, e)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, "Internal Error - Occured in" + method)
-		}
-	}
-
-
-	public void getDataFromDecomposition (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		utils.log("DEBUG", " ***** Inside getDataFromDecomposition() of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-		try {
-
-			ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
-
-			List<NetworkResource> networkList = serviceDecomposition.getServiceNetworks()
-
-			//utils.log("DEBUG", "got network list: "+ networkList.toString(), isDebugEnabled)
-			execution.setVariable("networkList", networkList)
-			execution.setVariable("networkListString", networkList.toString())
-
-			networkList = execution.getVariable("networkList");
-			utils.log("DEBUG", "networkList: "+ networkList, isDebugEnabled)
-
-			if (networkList != null && networkList.size() > 0) {
-
-				execution.setVariable("CGMSNV_NetworksCount", networkList.size())
-				utils.log("DEBUG", "networks to create: "+ networkList.size(), isDebugEnabled)
-			} else {
-				execution.setVariable("CGMSNV_NetworksCount", 0)
-				utils.log("DEBUG", "no networks to create based upon serviceDecomposition content", isDebugEnabled)
-			}
-
-			// VNFs
-			List<VnfResource> vnfList = serviceDecomposition.getServiceVnfs()
-			execution.setVariable("vnfList", vnfList)
-
-			String vnfModelInfoString = ""
-			if (vnfList != null && vnfList.size() > 0) {
-				execution.setVariable("CGMSNV_VNFsCount", vnfList.size())
-				utils.log("DEBUG", "vnfs to create: "+ vnfList.size(), isDebugEnabled)
-				ModelInfo vnfModelInfo = vnfList[0].getModelInfo()
-				String vnfModelInfoWithRoot = vnfModelInfo.toString()
-				vnfModelInfoString = jsonUtil.getJsonValue(vnfModelInfoWithRoot, "modelInfo")
-			} else {
-					execution.setVariable("CGMSNV_VNFsCount", 0)
-					utils.log("DEBUG", "no vnfs to create based upon Catalog DB response", isDebugEnabled)
-			}
-
-			execution.setVariable("vnfModelInfo", vnfModelInfoString)
-			//utils.log("DEBUG", " vnfModelInfoString :" + vnfModelInfoString, isDebugEnabled)
-
-			utils.log("DEBUG", " ***** Completed getDataFromDecomposition() of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			sendSyncError(execution)
-		   String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. getDataFromDecomposition() - " + ex.getMessage()
-		   utils.log("DEBUG", exceptionMessage, isDebugEnabled)
-		   exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	// *******************************
-	//     Generate Network request Section
-	// *******************************
-	public void prepareNetworkCreate (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside preparenNetworkCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-//			String disableRollback = execution.getVariable("disableRollback")
-//			def backoutOnFailure = ""
-//			if(disableRollback != null){
-//				if ( disableRollback == true) {
-//					backoutOnFailure = "false"
-//				} else if ( disableRollback == false) {
-//					backoutOnFailure = "true"
-//				}
-//			}
-			//failIfExists - optional
-
-			String createViprServiceRequest = execution.getVariable("createViprServiceRequest")
-
-			JSONArray networkList = execution.getVariable("networkList")
-			utils.log("DEBUG", "array networkList: "+ networkList, isDebugEnabled)
-
-			if (networkList == null || networkList.size() < 1){
-				networkList = new JSONArray(execution.getVariable("networkListString"))
-				utils.log("DEBUG", "array from string networkList: "+ networkList, isDebugEnabled)
-			}
-
-			Integer networksCreatedCount = execution.getVariable("CGMSNV_NetworksCreatedCount")
-			String networkModelInfoString = ""
-
-			if (networkList != null) {
-				utils.log("DEBUG", " getting model info for network # :" + networksCreatedCount, isDebugEnabled)
-				ModelInfo networkModelInfo = networkList[networksCreatedCount.intValue()].getModelInfo()
-				networkModelInfoString = networkModelInfo.toString()
-			} else {
-				String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected number of networks to create - " + ex.getMessage()
-				exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-			}
-
-			execution.setVariable("networkModelInfo", networkModelInfoString)
-			utils.log("DEBUG", " networkModelInfoString :" + networkModelInfoString, isDebugEnabled)
-
-//			String networkModelInfo = execution.getVariable("networkModelInfo")
-			// extract cloud configuration
-			String lcpCloudRegionId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.cloudConfiguration.lcpCloudRegionId")
-			execution.setVariable("lcpCloudRegionId", lcpCloudRegionId)
-			utils.log("DEBUG","lcpCloudRegionId: "+ lcpCloudRegionId, isDebugEnabled)
-			String tenantId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.cloudConfiguration.tenantId")
-			execution.setVariable("tenantId", tenantId)
-			utils.log("DEBUG","tenantId: "+ tenantId, isDebugEnabled)
-
-			String sdncVersion = execution.getVariable("sdncVersion")
-			utils.log("DEBUG","sdncVersion: "+ sdncVersion, isDebugEnabled)
-
-			List<VnfResource> vnfList = execution.getVariable("vnfList")
-			utils.log("DEBUG", "vnfList: "+ vnfList.toString(), isDebugEnabled)
-
-			String vnfModelInfo = execution.getVariable("vnfModelInfo")
-			utils.log("DEBUG", "vnfModelInfo: "+ vnfModelInfo, isDebugEnabled)
-
-			networkList = execution.getVariable("networkList")
-			utils.log("DEBUG", "networkList: "+ networkList, isDebugEnabled)
-
-			utils.log("DEBUG", " ***** Completed preparenNetworkCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareNetworkCreate() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	// *******************************
-	//     Validate Network request Section -> increment count
-	// *******************************
-	public void validateNetworkCreate (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside validateNetworkCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			Integer networksCreatedCount = execution.getVariable("CGMSNV_NetworksCreatedCount")
-			networksCreatedCount++
-
-			execution.setVariable("CGMSNV_NetworksCreatedCount", networksCreatedCount)
-
-			execution.setVariable("DCRENI_rollbackData"+networksCreatedCount, execution.getVariable("DCRENI_rollbackData"))
-
-			utils.log("DEBUG", "networksCreatedCount: "+ networksCreatedCount, isDebugEnabled)
-			utils.log("DEBUG", "DCRENI_rollbackData N : "+ execution.getVariable("DCRENI_rollbackData"+networksCreatedCount), isDebugEnabled)
-
-			JSONArray vnfList = execution.getVariable("vnfList")
-			utils.log("DEBUG", "vnfList: "+ vnfList, isDebugEnabled)
-
-			String vnfModelInfo = execution.getVariable("vnfModelInfo")
-			utils.log("DEBUG", "vnfModelInfo: "+ vnfModelInfo, isDebugEnabled)
-
-			JSONArray networkList = execution.getVariable("networkList")
-			utils.log("DEBUG", "networkList: "+ networkList, isDebugEnabled)
-
-			utils.log("DEBUG", " ***** Completed validateNetworkCreate of CreateGenericMacroServiceNetworkVnf ***** "+" network # "+networksCreatedCount, isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method validateNetworkCreate() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	// *******************************
-	//     Generate Network request Section
-	// *******************************
-	public void prepareVnfAndModulesCreate (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside prepareVnfAndModulesCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			//			String disableRollback = execution.getVariable("disableRollback")
-			//			def backoutOnFailure = ""
-			//			if(disableRollback != null){
-			//				if ( disableRollback == true) {
-			//					backoutOnFailure = "false"
-			//				} else if ( disableRollback == false) {
-			//					backoutOnFailure = "true"
-			//				}
-			//			}
-						//failIfExists - optional
-
-			String createViprServiceRequest = execution.getVariable("createViprServiceRequest")
-			String productFamilyId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.requestInfo.productFamilyId")
-			execution.setVariable("productFamilyId", productFamilyId)
-			utils.log("DEBUG","productFamilyId: "+ productFamilyId, isDebugEnabled)
-
-			List<VnfResource> vnfList = execution.getVariable("vnfList")
-
-			Integer vnfsCreatedCount = execution.getVariable("CGMSNV_VnfsCreatedCount")
-			String vnfModelInfoString = null;
-
-			if (vnfList != null && vnfList.size() > 0 ) {
-				utils.log("DEBUG", "getting model info for vnf # " + vnfsCreatedCount, isDebugEnabled)
-				ModelInfo vnfModelInfo1 = vnfList[0].getModelInfo()
-				utils.log("DEBUG", "got 0 ", isDebugEnabled)
-				ModelInfo vnfModelInfo = vnfList[vnfsCreatedCount.intValue()].getModelInfo()
-				vnfModelInfoString = vnfModelInfo.toString()
-			} else {
-				//TODO: vnfList does not contain data. Need to investigate why ... . Fro VIPR use model stored
-				vnfModelInfoString = execution.getVariable("vnfModelInfo")
-			}
-
-			utils.log("DEBUG", " vnfModelInfoString :" + vnfModelInfoString, isDebugEnabled)
-
-			// extract cloud configuration
-			String lcpCloudRegionId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.cloudConfiguration.lcpCloudRegionId")
-			execution.setVariable("lcpCloudRegionId", lcpCloudRegionId)
-			utils.log("DEBUG","lcpCloudRegionId: "+ lcpCloudRegionId, isDebugEnabled)
-			String tenantId = jsonUtil.getJsonValue(createViprServiceRequest, "requestDetails.cloudConfiguration.tenantId")
-			execution.setVariable("tenantId", tenantId)
-			utils.log("DEBUG","tenantId: "+ tenantId, isDebugEnabled)
-
-			String sdncVersion = execution.getVariable("sdncVersion")
-			utils.log("DEBUG","sdncVersion: "+ sdncVersion, isDebugEnabled)
-
-			utils.log("DEBUG", " ***** Completed prepareVnfAndModulesCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareVnfAndModulesCreate() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	// *******************************
-	//     Validate Vnf request Section -> increment count
-	// *******************************
-	public void validateVnfCreate (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside validateVnfCreate of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			Integer vnfsCreatedCount = execution.getVariable("CGMSNV_VnfsCreatedCount")
-			vnfsCreatedCount++
-
-			execution.setVariable("CGMSNV_VnfsCreatedCount", vnfsCreatedCount)
-
-			utils.log("DEBUG", " ***** Completed validateVnfCreate of CreateGenericMacroServiceNetworkVnf ***** "+" vnf # "+vnfsCreatedCount, isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method validateVnfCreate() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	// *******************************
-	//     Validate Network request Section -> decrement count
-	// *******************************
-	public void validateNetworkRollback (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside validateNetworkRollback of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			Integer networksCreatedCount = execution.getVariable("CGMSNV_NetworksCreatedCount")
-			networksCreatedCount--
-
-			execution.setVariable("CGMSNV_NetworksCreatedCount", networksCreatedCount)
-
-			execution.setVariable("DCRENI_rollbackData", execution.getVariable("DCRENI_rollbackData"+networksCreatedCount))
-
-			utils.log("DEBUG", " ***** Completed validateNetworkRollback of CreateGenericMacroServiceNetworkVnf ***** "+" network # "+networksCreatedCount, isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method validateNetworkRollback() - " + ex.getMessage()
-			//exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-			utils.log("DEBUG", exceptionMessage, isDebugEnabled)
-			execution.setVariable("CGMSNV_NetworksCreatedCount", 0)
-			utils.log("ERROR", exceptionMessage, true)
-		}
-	 }
-
-//	public void extractServiceModelInfo (Execution execution) {
-//		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
-//		String msg = ""
-//		utils.log("DEBUG"," ***** extractServiceModelInfo of CreateGenericMacroServiceNetworkVnf *****",  isDebugEnabled)
-//
-//		try {
-//
-//			// check for input
-//			String requestId = execution.getVariable("msoRequestId")
-//
-//			ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
-//			ModelInfo modelInfo = serviceDecomposition.getModelInfo()
-//
-//			utils.log("DEBUG", "modelInfo: "+ modelInfo.toJsonString(), isDebugEnabled)
-//			utils.log("DEBUG", "modelInfo: "+ modelInfo, isDebugEnabled)
-//			execution.setVariable("serviceDecomposition", modelInfo)
-//
-//			utils.log("DEBUG"," ***** Exit extractServiceModelInfo of CreateGenericMacroServiceNetworkVnf *****",  isDebugEnabled)
-//
-//		} catch (BpmnError e) {
-//			throw e;
-//		} catch (Exception ex){
-//			msg = "Exception in extractServiceModelInfo " + ex.getMessage()
-//			utils.log("DEBUG", msg, isDebugEnabled)
-//			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
-//		}
-//		utils.log("DEBUG"," ***** Exit extractServiceModelInfo of DecomposeService *****",  isDebugEnabled)
-//	}
-
-	// *******************************
-	//     Build DB request Section
-	// *******************************
-//	public void prepareDBRequest (Execution execution) {
-//		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-//
-//		try {
-//			utils.log("DEBUG", " ***** Inside prepareDBRequest of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-//
-//			String requestId = execution.getVariable("CGMSNV_requestId")
-//			String statusMessage = "vIPR ATM Service Instance successfully created."
-//			String serviceInstanceId = execution.getVariable("CGMSNV_serviceInstanceId")
-//
-//			//TODO - verify the format for Service Instance Create,
-//			String dbRequest =
-//					"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-//						<soapenv:Header/>
-//						<soapenv:Body>
-//							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

-//								<requestId>${requestId}</requestId>
-//								<lastModifiedBy>BPMN</lastModifiedBy>
-//								<statusMessage>${statusMessage}</statusMessage>
-//								<responseBody></responseBody>
-//								<requestStatus>COMPLETED</requestStatus>
-//								<progress>100</progress>
-//								<vnfOutputs/>
-//								<serviceInstanceId>${serviceInstanceId}</serviceInstanceId>
-//							</ns:updateInfraRequest>
-//						   </soapenv:Body>
-//					   </soapenv:Envelope>"""
-//
-//		   String buildDeleteDBRequestAsString = utils.formatXml(dbRequest)
-//		   execution.setVariable("CGMSNV_createDBRequest", buildDeleteDBRequestAsString)
-//		   utils.logAudit(buildDeleteDBRequestAsString)
-//
-//		   utils.log("DEBUG", " ***** Completed prepareDBRequest of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-//		} catch (Exception ex) {
-//			// try error in method block
-//			String exceptionMessage = "Bpmn error encountered in CreateGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareDBRequest() - " + ex.getMessage()
-//			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-//
-//		}
-//
-//	 }
-
-
-	// *****************************************
-	//     Prepare Completion request Section
-	// *****************************************
-	public void postProcessResponse (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		utils.log("DEBUG", " ***** Inside postProcessResponse of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-		try {
-			String source = execution.getVariable("source")
-			String requestId = execution.getVariable("mso-request-id")
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-
-			String msoCompletionRequest =
-					"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-									xmlns:ns="http://org.openecomp/mso/request/types/v1">

-							<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

-								<request-id>${requestId}</request-id>
-								<action>CREATE</action>
-								<source>${source}</source>
-							</request-info>
-							<status-message>Service Instance has been created successfully via macro orchestration</status-message>
-							<serviceInstanceId>${serviceInstanceId}</serviceInstanceId>
-							<mso-bpel-name>BPMN macro create</mso-bpel-name>
-						</aetgt:MsoCompletionRequest>"""
-
-			// Format Response
-			String xmlMsoCompletionRequest = utils.formatXml(msoCompletionRequest)
-
-			utils.logAudit(xmlMsoCompletionRequest)
-			execution.setVariable("CGMSNV_Success", true)
-			execution.setVariable("CGMSNV_CompleteMsoProcessRequest", xmlMsoCompletionRequest)
-			utils.log("DEBUG", " SUCCESS flow, going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest, isDebugEnabled)
-		} catch (BpmnError e) {
-			throw e;
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in CreateServiceInstance flow. Unexpected Error from method postProcessResponse() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	public void preProcessRollback (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG"," ***** preProcessRollback of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		try {
-
-			Object workflowException = execution.getVariable("WorkflowException");
-
-			if (workflowException instanceof WorkflowException) {
-				utils.log("DEBUG", "Prev workflowException: " + workflowException.getErrorMessage(), isDebugEnabled)
-				execution.setVariable("prevWorkflowException", workflowException);
-				//execution.setVariable("WorkflowException", null);
-			}
-		} catch (BpmnError e) {
-			utils.log("DEBUG", "BPMN Error during preProcessRollback", isDebugEnabled)
-		} catch(Exception ex) {
-			String msg = "Exception in preProcessRollback. " + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
-		}
-		utils.log("DEBUG"," *** Exit preProcessRollback of CreateGenericMacroServiceNetworkVnf *** ", isDebugEnabled)
-	}
-
-	public void postProcessRollback (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG"," ***** postProcessRollback of CreateGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		String msg = ""
-		try {
-			Object workflowException = execution.getVariable("prevWorkflowException");
-			if (workflowException instanceof WorkflowException) {
-				utils.log("DEBUG", "Setting prevException to WorkflowException: ", isDebugEnabled)
-				execution.setVariable("WorkflowException", workflowException);
-			}
-		} catch (BpmnError b) {
-			utils.log("DEBUG", "BPMN Error during postProcessRollback", isDebugEnabled)
-			throw b;
-		} catch(Exception ex) {
-			msg = "Exception in postProcessRollback. " + ex.getMessage()
-			utils.log("DEBUG", msg, isDebugEnabled)
-		}
-		utils.log("DEBUG"," *** Exit postProcessRollback of CreateGenericMacroServiceNetworkVnf *** ", isDebugEnabled)
-	}
-
-	public void prepareFalloutRequest(Execution execution){
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		utils.log("DEBUG", " *** STARTED CreateGenericMacroServiceNetworkVnf prepareFalloutRequest Process *** ", isDebugEnabled)
-
-		try {
-			WorkflowException wfex = execution.getVariable("WorkflowException")
-			utils.log("DEBUG", " Incoming Workflow Exception: " + wfex.toString(), isDebugEnabled)
-			String requestInfo = execution.getVariable("CGMSNV_requestInfo")
-			utils.log("DEBUG", " Incoming Request Info: " + requestInfo, isDebugEnabled)
-
-			//TODO. hmmm. there is no way to UPDATE error message.
-//			String errorMessage = wfex.getErrorMessage()
-//			boolean successIndicator = execution.getVariable("DCRESI_rollbackSuccessful")
-//			if (successIndicator){
-//				errorMessage = errorMessage + ". Rollback successful."
-//			} else {
-//				errorMessage = errorMessage + ". Rollback not completed."
-//			}
-
-			String falloutRequest = exceptionUtil.processMainflowsBPMNException(execution, requestInfo)
-
-			execution.setVariable("CGMSNV_falloutRequest", falloutRequest)
-
-		} catch (Exception ex) {
-			utils.log("DEBUG", "Error Occured in CreateGenericMacroServiceNetworkVnf prepareFalloutRequest Process " + ex.getMessage(), isDebugEnabled)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in CreateGenericMacroServiceNetworkVnf prepareFalloutRequest Process")
-		}
-		utils.log("DEBUG", "*** COMPLETED CreateGenericMacroServiceNetworkVnf prepareFalloutRequest Process ***", isDebugEnabled)
-	}
-
-
-	public void sendSyncError (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		execution.setVariable("prefix", Prefix)
-
-		utils.log("DEBUG", " ***** Inside sendSyncError() of CreateServiceInstanceInfra ***** ", isDebugEnabled)
-
-		try {
-			String errorMessage = ""
-			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
-				WorkflowException wfe = execution.getVariable("WorkflowException")
-				errorMessage = wfe.getErrorMessage()
-			} else {
-				errorMessage = "Sending Sync Error."
-			}
-
-			String buildworkflowException =
-				"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

-					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
-					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
-				   </aetgt:WorkflowException>"""
-
-			utils.logAudit(buildworkflowException)
-			sendWorkflowResponse(execution, 500, buildworkflowException)
-		} catch (Exception ex) {
-			utils.log("DEBUG", " Sending Sync Error Activity Failed. " + "\n" + ex.getMessage(), isDebugEnabled)
-		}
-	}
-
-	public void processJavaException(Execution execution){
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		execution.setVariable("prefix",Prefix)
-		try{
-			utils.log("DEBUG", "Caught a Java Exception", isDebugEnabled)
-			utils.log("DEBUG", "Started processJavaException Method", isDebugEnabled)
-			utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)
-			execution.setVariable("CRESI_unexpectedError", "Caught a Java Lang Exception")  // Adding this line temporarily until this flows error handling gets updated
-			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Caught a Java Lang Exception")
-		}catch(BpmnError b){
-			utils.log("ERROR", "Rethrowing MSOWorkflowException", isDebugEnabled)
-			throw b
-		}catch(Exception e){
-			utils.log("DEBUG", "Caught Exception during processJavaException Method: " + e, isDebugEnabled)
-			execution.setVariable("CRESI_unexpectedError", "Exception in processJavaException method")  // Adding this line temporarily until this flows error handling gets updated
-			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Exception in processJavaException method")
-		}
-		utils.log("DEBUG", "Completed processJavaException Method", isDebugEnabled)
-	}
-}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstance.groovy
index 11de8d9..54f676f 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstance.groovy
@@ -1,32 +1,32 @@
-/*-

- * ============LICENSE_START=======================================================

- * OPENECOMP - MSO

- * ================================================================================

- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

- * ================================================================================

- * Licensed under the Apache License, Version 2.0 (the "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- * 

- *      http://www.apache.org/licenses/LICENSE-2.0

- * 

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- * ============LICENSE_END=========================================================

+/*-
+ * ============LICENSE_START=======================================================
+ * OPENECOMP - MSO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
  */
-

-package org.openecomp.mso.bpmn.infrastructure.scripts;

+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
 
 import groovy.xml.XmlUtil
 import groovy.json.*
-import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor

-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

-import org.openecomp.mso.bpmn.core.WorkflowException

-import org.openecomp.mso.bpmn.core.json.JsonUtils

-import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
+import org.openecomp.mso.bpmn.core.WorkflowException
+import org.openecomp.mso.bpmn.core.json.JsonUtils
+import org.openecomp.mso.rest.APIResponse
 
 import java.util.UUID;
 
@@ -105,12 +105,12 @@
 			    utils.log("DEBUG", " 'disableRollback' : " + execution.getVariable("disableRollback") , isDebugEnabled)
 			}	
 			
-			// get/set 'msoRequestId' and 'mso-request-id'

+			// get/set 'msoRequestId' and 'mso-request-id'
 			String requestId = execution.getVariable("msoRequestId")
 			if (requestId != null) {
-				execution.setVariable("mso-request-id", requestId)

+				execution.setVariable("mso-request-id", requestId)
 			} else {
-				requestId = execution.getVariable("mso-request-id")

+				requestId = execution.getVariable("mso-request-id")
 			}
 			execution.setVariable(Prefix + "requestId", requestId)
 			
@@ -161,7 +161,7 @@
 		utils.log("DEBUG", " ***** Inside sendSyncResponse() of CreateNetworkInstance ***** ", isDebugEnabled)
 
 		try {
-			String requestId = execution.getVariable("mso-request-id")

+			String requestId = execution.getVariable("mso-request-id")
 
 			// RESTResponse (for API Handler (APIH) Reply Task)
 			String createNetworkRestRequest = """{"requestReferences":{"instanceId":"","requestId":"${requestId}"}}""".trim()
@@ -186,14 +186,11 @@
 		
 		try {
 			
-			// "networkModelInfo" is expected to be sent 
-			String networkModelInfo = execution.getVariable("networkModelInfo")
-			utils.log("DEBUG", " networkModelInfo - " + networkModelInfo, isDebugEnabled)
-			
-			// "serviceModelInfo" is expected to be sent
-			String serviceModelInfo = execution.getVariable("serviceModelInfo")
-			utils.log("DEBUG", " serviceModelInfo - " + serviceModelInfo, isDebugEnabled)
-						 
+			// For Ala-Carte (sdnc = 1610): 
+			// 1. the Network ModelInfo is expected to be sent 
+			//     via requestDetails.modelInfo (modelType = network).
+			// 2. the Service ModelInfo is expected to be sent but will be IGNORE 
+			//     via requestDetails.relatedInstanceList.relatedInstance.modelInfo (modelType = service)
 										 
 		} catch (Exception ex) {
 			sendSyncError(execution)
@@ -214,7 +211,7 @@
 		
 		try {
 
-			String requestId = execution.getVariable("mso-request-id")

+			String requestId = execution.getVariable("mso-request-id")
 
 			// REST Error (for API Handler (APIH) Reply Task)
 			String syncError = """{"requestReferences":{"instanceId":"","requestId":"${requestId}"}}""".trim()
@@ -234,6 +231,9 @@
 		try {
 			utils.log("DEBUG", " ***** Inside prepareDBRequestError() of CreateNetworkInstance ***** ", isDebugEnabled)
 
+			// set DB Header Authorization
+			setBasicDBAuthHeader(execution, isDebugEnabled)
+			
 			String statusMessage = ""
 			WorkflowException wfe = null
 			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
@@ -248,7 +248,7 @@
 					"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 						<soapenv:Header/>
 						<soapenv:Body>
-							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
 								<requestId>${requestId}</requestId>
 								<lastModifiedBy>BPMN</lastModifiedBy>
 								<statusMessage>${statusMessage}</statusMessage>
@@ -280,13 +280,13 @@
 
 		try {
 
-			String requestId = execution.getVariable("mso-request-id")

+			String requestId = execution.getVariable("mso-request-id")
 			String source = execution.getVariable(Prefix + "source")
 
 			String msoCompletionRequest =
-				"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-								xmlns:ns="http://org.openecomp/mso/request/types/v1">

-						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+				"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+								xmlns:ns="http://org.openecomp/mso/request/types/v1">
+						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 							<request-id>${requestId}</request-id>
 							<action>CREATE</action>
 							<source>VID</source>
@@ -379,25 +379,29 @@
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 		execution.setVariable("prefix", Prefix)
 
+		utils.log("DEBUG", "DB updateInfraRequest ResponseCode: " + execution.getVariable(Prefix + "dbReturnCode"), isDebugEnabled)
+		utils.log("DEBUG", "DB updateInfraRequest Response: " + execution.getVariable(Prefix + "createDBResponse"), isDebugEnabled)
+		
 		utils.log("DEBUG", " ***** Prepare for FalloutHandler. FAILURE - prepare request for sub-process FalloutHandler. *****", isDebugEnabled)
 
 		String falloutHandlerRequest = ""
-		String requestId = execution.getVariable("mso-request-id")

+		String requestId = execution.getVariable("mso-request-id")
 
 		try {
+			
 			WorkflowException wfe = execution.getVariable("WorkflowException")
 			String errorCode = String.valueOf(wfe.getErrorCode())
 			String errorMessage = wfe.getErrorMessage()
 			falloutHandlerRequest =
-				"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

-					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

-					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+				"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					      <request-id>${requestId}</request-id>
 					      <action>CREATE</action>
 					      <source>VID</source>
 					   </request-info>
-						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 							<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
 							<aetgt:ErrorCode>${errorCode}</aetgt:ErrorCode>
 						</aetgt:WorkflowException>
@@ -408,18 +412,18 @@
 			utils.log("DEBUG", "  Overall Error Response going to FalloutHandler: " + "\n" + falloutHandlerRequest, isDebugEnabled)
 
 		} catch (Exception ex) {
-			String errorException = "  Bpmn error encountered in CreateNetworkInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
-			utils.log("DEBUG", errorException, isDebugEnabled)
+			String errorException = "  Bpmn error encountered in CreateNetworkInstance flow. FalloutHandlerRequest,  buildErrorResponse()"
+			utils.log("DEBUG", "Exception error in CreateNetworkInstance flow,  buildErrorResponse(): "  + ex.getMessage(), isDebugEnabled)
 			falloutHandlerRequest =
-			"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

-					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

-					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+			"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					      <request-id>${requestId}</request-id>
 					      <action>CREATE</action>
 					      <source>VID</source>
 					   </request-info>
-						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 							<aetgt:ErrorMessage>${errorException}</aetgt:ErrorMessage>
 							<aetgt:ErrorCode>7000</aetgt:ErrorCode>
 						</aetgt:WorkflowException>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
index b468a51..74234f8 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleInfra.groovy
@@ -51,6 +51,8 @@
 		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
 		logDebug('Entered ' + method, isDebugLogEnabled)
 
+		execution.setVariable("CVFMI_sentSyncResponse", false)
+		
 		def prefix = 'CVFMI_'
 		logDebug('Entered 1' + method, isDebugLogEnabled)
 		execution.setVariable('prefix', prefix)
@@ -71,6 +73,8 @@
 		utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)
 		utils.logAudit("CreateVfModule Infra incoming Request: " + incomingRequest)
 
+		setBasicDBAuthHeader(execution, isDebugLogEnabled)
+		
 		// check if request is xml or json
 		try {
 			def jsonSlurper = new JsonSlurper()
@@ -156,7 +160,7 @@
 				}
 			}
 			
-			execution.setVariable(prefix + 'disableRollback', suppressRollback)
+			execution.setVariable('disableRollback', suppressRollback)
 			
 			def vfModuleName = reqMap.requestDetails?.requestInfo?.instanceName ?: null
 			execution.setVariable(prefix + 'vfModuleName', vfModuleName)
@@ -198,9 +202,7 @@
 			execution.setVariable("CVFMI_requestInfo", requestInfo)
 			
 			//backoutOnFailure
-
-			//NetworkUtils networkUtils = new NetworkUtils()
-			//execution.setVariable("CVFMI_rollbackEnabled", networkUtils.isRollbackEnabled(execution,request))
+			
 			execution.setVariable("CVFMI_originalWorkflowException", null)
 			
 
@@ -266,6 +268,7 @@
 
 			sendWorkflowResponse(execution, 200, synchResponse)
 
+			execution.setVariable("CVFMI_sentSyncResponse", true)
 			utils.logAudit("CreateVfModule Infra Response: " + synchResponse)
 			logDebug('Exited ' + method, isDebugLogEnabled)
 		} catch (BpmnError e) {
@@ -291,18 +294,6 @@
 			utils.log("DEBUG", "requestInfo is: " + requestInfo, isDebugEnabled)
 			utils.log("DEBUG", "action is: " + action, isDebugEnabled)
 
-			try {

-				String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")

-				utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugEnabled)

-				

-				def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))

-				execution.setVariable("BasicAuthHeaderValueDB",encodedString)

-			} catch (IOException ex) {

-				String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()

-				utils.log("DEBUG", dataErrorMessage, isDebugEnabled)

-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)

-			}

-			

 			String payload =
 					"""  <aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
                                xmlns:ns="http://org.openecomp/mso/request/types/v1"
@@ -417,22 +408,10 @@
 			// vfModuleName may be generated by DoCreateVfModule subprocess if it is not specified on the input
 			def vfModuleName = execution.getVariable("CVFMI_vfModuleName")
 
-			def dbAdapterEndpoint = execution.getVariable("URN_mso_adapters_db_endpoint")
+			def dbAdapterEndpoint = execution.getVariable("URN_mso_openecomp_adapters_db_endpoint")
 			execution.setVariable("CVFMI_dbAdapterEndpoint", dbAdapterEndpoint)
 			utils.log("DEBUG", "DB Adapter Endpoint is: " + dbAdapterEndpoint, isDebugEnabled)
 
-			try {

-				String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")

-				utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugEnabled)

-				

-				def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))

-				execution.setVariable("BasicAuthHeaderValueDB",encodedString)

-			} catch (IOException ex) {

-				String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()

-				utils.log("DEBUG", dataErrorMessage, isDebugEnabled)

-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)

-			}

-			

 			String payload =
 				"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 						xmlns:ns="http://org.openecomp.mso/requestsdb">
@@ -542,7 +521,29 @@
 
 	}
 	
-	
+	public void sendErrorResponse(Execution execution){
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+
+		utils.log("DEBUG", " *** STARTED CreateVfModulenfra sendErrorResponse Process *** ", isDebugEnabled)
+		try {
+			def sentSyncResponse = execution.getVariable("CVFMI_sentSyncResponse")
+			if(sentSyncResponse == false){
+				WorkflowException wfex = execution.getVariable("WorkflowException")
+				String response = exceptionUtil.buildErrorResponseXml(wfex)
+
+				utils.logAudit(response)
+				sendWorkflowResponse(execution, 500, response)
+			}else{
+				utils.log("DEBUG", "Not Sending Error Response.  Sync Response Already Sent", isDebugEnabled)
+			}
+
+		} catch (Exception ex) {
+			utils.log("DEBUG", "Error Occured in CreateVfModuleInfra sendErrorResponse Process " + ex.getMessage(), isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in CreateVfModuleInfra sendErrorResponse Process")
+
+		}
+		utils.log("DEBUG", "*** COMPLETED CreateVfModuleInfra sendErrorResponse Process ***", isDebugEnabled)
+	}
 
 
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1.groovy
index 48ca290..4d40938 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1.groovy
@@ -26,7 +26,9 @@
 import org.openecomp.mso.bpmn.common.scripts.VidUtils;
 import org.openecomp.mso.bpmn.core.WorkflowException
 import org.openecomp.mso.rest.APIResponse
+import java.util.Map;
 
+import groovy.json.JsonOutput
 import groovy.json.JsonSlurper
 
 import org.camunda.bpm.engine.delegate.BpmnError
@@ -43,6 +45,7 @@
 	 */
 	public void preProcessRequest (Execution execution) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		setBasicDBAuthHeader(execution, isDebugEnabled)
 		preProcessRequest(execution, isDebugEnabled)
 	}
 
@@ -64,47 +67,96 @@
 		try {
 			def jsonSlurper = new JsonSlurper()
 			Map reqMap = jsonSlurper.parseText(createVolumeIncoming)
-
-			def serviceInstanceId = execution.getVariable('serviceInstanceId')
-			def vnfId = execution.getVariable('vnfId')
-
-			def vidUtils = new VidUtils(this)
-			createVolumeIncoming = vidUtils.createXmlVolumeRequest(reqMap, 'CREATE_VF_MODULE_VOL', serviceInstanceId)
-
-			execution.setVariable(prefix+'Request', createVolumeIncoming)
-			execution.setVariable(prefix+'vnfId', vnfId)
-			execution.setVariable(prefix+'isVidRequest', true)
-
+			setupVariables(execution, reqMap, isDebugEnabled)
 			utils.log("DEBUG", "XML request:\n" + createVolumeIncoming, isDebugEnabled)
-
 		}
 		catch(groovy.json.JsonException je) {
 			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, 'Request is not a valid JSON document')
 		}
 
-		execution.setVariable(prefix+'source', utils.getNodeText1(createVolumeIncoming, "source"))
-		execution.setVariable(prefix+'volumeGroupName', utils.getNodeText1(createVolumeIncoming, 'volume-group-name'))
-		execution.setVariable(prefix+'volumeOutputs', utils.getNodeXml(createVolumeIncoming, 'volume-outputs', false))
-
-		execution.setVariable(prefix+'serviceType', 'service-instance')
-		execution.setVariable(prefix+'serviceInstanceId', utils.getNodeText1(createVolumeIncoming, "service-instance-id"))
-
-		// Generate volume group id
-		String volumeGroupId = UUID.randomUUID()
-		utils.log("DEBUG", "Generated volume group id: " + volumeGroupId, isDebugEnabled)
-
-		def testGroupId = execution.getVariable('test-volume-group-id')
-		if (testGroupId != null && testGroupId.trim() != '') {
-			volumeGroupId = testGroupId
-		}
-
-		execution.setVariable(prefix+'volumeGroupId', volumeGroupId)
-
+		// For rollback in this flow
+		setBasicDBAuthHeader(execution, isDebugEnabled)
+		setRollbackEnabled(execution, isDebugEnabled)
 	}
 
+	
+	/**
+	 * Set up variables that will be passed to the BB DoCreatevfModuleVolume flow 
+	 * @param execution
+	 * @param requestMap
+	 * @param serviceInstanceId
+	 * @param isDebugLogEnabled
+	 */
+	public void setupVariables(Execution execution, Map requestMap, isDebugLogEnabled) {
+		
+		def jsonOutput = new JsonOutput()
+		
+		// volumeGroupId - is generated
+		String volumeGroupId = UUID.randomUUID()
+		execution.setVariable('volumeGroupId', volumeGroupId)
+		utils.log("DEBUG", "Generated volumeGroupId: " + volumeGroupId, isDebugLogEnabled)
+		
+		// volumeGroupName
+		def volGrpName = requestMap.requestDetails.requestInfo?.instanceName ?: ''
+		execution.setVariable('volumeGroupName', volGrpName)
 
+		// vfModuleModelInfo
+		def vfModuleModelInfo = jsonOutput.toJson(requestMap.requestDetails?.modelInfo)
+		execution.setVariable('vfModuleModelInfo', vfModuleModelInfo)
+		
+		// lcpCloudRegonId
+		def lcpCloudRegionId = requestMap.requestDetails.cloudConfiguration.lcpCloudRegionId
+		execution.setVariable('lcpCloudRegionId', lcpCloudRegionId)
+		
+		// tenant
+		def tenantId = requestMap.requestDetails.cloudConfiguration.tenantId
+		execution.setVariable('tenantId', tenantId)
+		
+		// source
+		def source = requestMap.requestDetails.requestInfo.source
+		execution.setVariable(prefix+'source', source)
+		
+		// vnfType and asdcServiceModelVersion
+		
+		def serviceName = ''
+		def asdcServiceModelVersion = ''
+		def modelCustomizationName = ''
+		
+		def relatedInstanceList = requestMap.requestDetails.relatedInstanceList
+		relatedInstanceList.each {
+			if (it.relatedInstance.modelInfo?.modelType == 'service') {
+				serviceName = it.relatedInstance.modelInfo?.modelName
+				asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion
+			}
+			if (it.relatedInstance.modelInfo?.modelType == 'vnf') {
+				modelCustomizationName = it.relatedInstance.modelInfo?.modelCustomizationName
+			}
+		}
+		
+		def vnfType = serviceName + '/' + modelCustomizationName
+		execution.setVariable('vnfType', vnfType)
+		execution.setVariable('asdcServiceModelVersion', asdcServiceModelVersion)
+		
+		// vfModuleInputParams
+		def userParams = requestMap.requestDetails?.requestParameters?.userParams
+		Map<String, String> vfModuleInputMap = [:]
+		
+		userParams.each { userParam ->
+			vfModuleInputMap.put(userParam.name, userParam.value)
+		}
+		execution.setVariable('vfModuleInputParams', vfModuleInputMap)
+
+		// disableRollback (true or false)
+		def disableRollback = requestMap.requestDetails.requestInfo.suppressRollback
+		execution.setVariable('disableRollback', disableRollback)
+		utils.log("DEBUG", 'disableRollback (suppressRollback) from request: ' + disableRollback, isDebugLogEnabled)
+		
+	}
+
+	
+	
 	public void sendSyncResponse (Execution execution, isDebugEnabled) {
-		def volumeGroupId = execution.getVariable(prefix+'volumeGroupId')
+		def volumeGroupId = execution.getVariable('volumeGroupId')
 		def requestId = execution.getVariable("mso-request-id")
 		def serviceInstanceId = execution.getVariable("serviceInstanceId")
 
@@ -137,24 +189,17 @@
 	}
 
 
+	/**
+	 * Build Infra DB Request
+	 * @param execution
+	 * @param isDebugEnabled
+	 */
 	public void prepareDbInfraSuccessRequest(Execution execution, isDebugEnabled) {
 		def dbVnfOutputs = execution.getVariable(prefix+'volumeOutputs')
 		def requestId = execution.getVariable('mso-request-id')
 		def statusMessage = "VolumeGroup successfully created."
 		def requestStatus = "COMPLETED"
 		def progress = "100"
-
-		try {
-			String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")
-			utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugEnabled)
-			
-			def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))
-			execution.setVariable("BasicAuthHeaderValueDB",encodedString)
-		} catch (IOException ex) {
-			String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()
-			utils.log("DEBUG", dataErrorMessage, isDebugEnabled)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-		}
 		
 		/*
 		from: $gVolumeGroup/aai:volume-group-id/text()
@@ -180,16 +225,18 @@
 			   	</soapenv:Body>
 			   </soapenv:Envelope>"""
 
-		String buildDeleteDBRequestAsString = utils.formatXml(dbRequest)
-		execution.setVariable(prefix+"createDBRequest", buildDeleteDBRequestAsString)
-
-		utils.logAudit(buildDeleteDBRequestAsString)
+		String buildDBRequestAsString = utils.formatXml(dbRequest)
+		execution.setVariable(prefix+"createDBRequest", buildDBRequestAsString)
+		utils.log("DEBUG", "DB Infra Request: " + buildDBRequestAsString, isDebugEnabled)
+		utils.logAudit(buildDBRequestAsString)
 	}
 
 
-
-
-
+	/**
+	 * Build CommpleteMsoProcess request
+	 * @param execution
+	 * @param isDebugEnabled
+	 */
 	public void postProcessResponse (Execution execution, isDebugEnabled) {
 
 		def dbReturnCode = execution.getVariable(prefix+'dbReturnCode')
@@ -300,4 +347,17 @@
 			}
 		}
 	}
+	
+	public void logAndSaveOriginalException(Execution execution, isDebugLogEnabled) {
+		logWorkflowException(execution, 'CreateVfModuleVolumeInfraV1 caught an event')
+		saveWorkflowException(execution, 'CVMVINFRAV1_originalWorkflowException')
+	}
+	
+	public void validateRollbackResponse(Execution execution, isDebugLogEnabled) {
+
+		def originalException = execution.getVariable("CVMVINFRAV1_originalWorkflowException")
+		execution.setVariable("WorkflowException", originalException)
+		execution.setVariable("RollbackCompleted", true)
+
+	}
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVnfInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVnfInfra.groovy
index 9b7fd68..311c1c7 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVnfInfra.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVnfInfra.groovy
@@ -26,6 +26,9 @@
 import org.camunda.bpm.engine.runtime.Execution;
 
 import static org.apache.commons.lang3.StringUtils.*;
+import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils;
+import org.json.JSONObject;
+import org.json.JSONArray;
 
 import org.openecomp.mso.bpmn.common.scripts.AaiUtil;
 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor;
@@ -33,6 +36,7 @@
 import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils;
 import org.openecomp.mso.bpmn.common.scripts.VidUtils;
 import org.openecomp.mso.bpmn.core.WorkflowException
+import org.openecomp.mso.bpmn.core.domain.VnfResource
 import org.openecomp.mso.bpmn.core.json.JsonUtils;
 
 
@@ -47,6 +51,7 @@
 	ExceptionUtil exceptionUtil = new ExceptionUtil()
 	JsonUtils jsonUtil = new JsonUtils()
 	VidUtils vidUtils = new VidUtils(this)
+	CatalogDbUtils cutils = new CatalogDbUtils()
 
 	/**
 	 * This method gets and validates the incoming
@@ -59,7 +64,8 @@
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
 		execution.setVariable("prefix",Prefix)
 		utils.log("DEBUG", " *** STARTED CreateVnfInfra PreProcessRequest Process*** ", isDebugEnabled)
-
+		
+		setBasicDBAuthHeader(execution, isDebugEnabled)
 		execution.setVariable("CREVI_sentSyncResponse", false)
 
 		try{
@@ -101,7 +107,7 @@
 				def vnfModelInfo = jsonUtil.getJsonValue(createVnfRequest, "requestDetails.modelInfo")
 				execution.setVariable("CREVI_vnfModelInfo", vnfModelInfo)
 
-				String modelInvariantId = jsonUtil.getJsonValue(createVnfRequest, "requestDetails.modelInfo.modelInvariantId")
+				String modelInvariantId = jsonUtil.getJsonValue(createVnfRequest, "requestDetails.modelInfo.modelInvariantUuid")
 				execution.setVariable("CREVI_modelInvariantId", modelInvariantId)
 				utils.log("DEBUG", "Incoming Invariant Id is: " + modelInvariantId, isDebugEnabled)
 
@@ -157,7 +163,13 @@
 				}
 				execution.setVariable("CREVI_sdncCallbackUrl", sdncCallbackUrl)
 				
-				def vnfInputParameters = jsonUtil.getJsonValue(createVnfRequest, "requestParameters.userParams")
+				def vnfInputParameters = null
+				try {
+					vnfInputParameters = jsonUtil.getJsonValue(createVnfRequest, "requestDetails.requestParameters.userParams")
+				}
+				catch (Exception e) {
+					utils.log("DEBUG", "userParams are not present in the request", isDebugEnabled)
+				}
 				execution.setVariable("CREVI_vnfInputParameters", vnfInputParameters)
 				
 				
@@ -429,4 +441,56 @@
 		utils.log("DEBUG", "*** COMPLETED CreateVnfInfra prepareFalloutRequest Process ***", isDebugEnabled)
 	}
 
+	
+	public void queryCatalogDB (Execution execution) {
+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+		execution.setVariable("prefix",Prefix)
+
+		utils.log("DEBUG", " *** STARTED CreateVnfInfra QueryCatalogDB Process *** ", isDebugEnabled)
+		try {
+			//Get Vnf Info
+			String vnfModelInfo = execution.getVariable("CREVI_vnfModelInfo")
+			String vnfModelCustomizationUuid = jsonUtil.getJsonValueForKey(vnfModelInfo, "modelCustomizationUuid")
+			utils.log("DEBUG", "querying Catalog DB by vnfModelCustomizationUuid: " + vnfModelCustomizationUuid, isDebugEnabled)
+						
+			JSONArray vnfs = cutils.getAllVnfsByVnfModelCustomizationUuid(execution,
+							vnfModelCustomizationUuid, "v2")
+			utils.log("DEBUG", "obtained VNF list: " + vnfs, isDebugEnabled)			
+			execution.setVariable("CREVI_vnfs", vnfs)
+			
+			if (vnfs == null) {
+				utils.log("ERROR", "No matching VNFs in Catalog DB for vnfModelCustomizationUuid=" + vnfModelCustomizationUuid, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "No matching VNFs in Catalog DB for vnfModelCustomizationUuid=" + vnfModelCustomizationUuid)
+			}
+			
+			// Only one match here
+			JSONObject vnf = vnfs.get(0)
+			
+			if (vnf == null) {
+				utils.log("ERROR", "No matching VNF in Catalog DB for vnfModelCustomizationUuid=" + vnfModelCustomizationUuid, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "No matching VNF in Catalog DB for vnfModelCustomizationUuid=" + vnfModelCustomizationUuid)
+			}			
+			
+			VnfResource vnfResource = new VnfResource()
+			String nfType = jsonUtil.getJsonValueForKey(vnf, "nfType")
+			vnfResource.setNfType(nfType)
+			String nfRole = jsonUtil.getJsonValueForKey(vnf, "nfRole")
+			vnfResource.setNfRole(nfRole)
+			String nfFunction = jsonUtil.getJsonValueForKey(vnf, "nfFunction")
+			vnfResource.setNfFunction(nfFunction)
+			String nfNamingCode = jsonUtil.getJsonValueForKey(vnf, "nfNamingCode")
+			vnfResource.setNfNamingCode(nfNamingCode)
+			
+			execution.setVariable("CREVI_vnfResourceDecomposition", vnfResource)
+			
+		}catch(BpmnError e) {
+			throw e;			
+		}catch(Exception ex) {
+			utils.log("DEBUG", "Error Occurred in CreateVnfInfra QueryCatalogDB Process " + ex.getMessage(), isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occurred in CreateVnfInfra QueryCatalogDB Process")
+		}
+		
+		
+		utils.log("DEBUG", "*** COMPLETED CreateVnfInfra QueryCatalogDb Process ***", isDebugEnabled)
+	}
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericALaCarteServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericALaCarteServiceInstance.groovy
index 7555885..c3aadaf 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericALaCarteServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericALaCarteServiceInstance.groovy
@@ -126,6 +126,27 @@
 			} else {
 				execution.setVariable("subscriptionServiceType", subscriptionServiceType)
 			}
+			
+			/*
+			 * Extracting User Parameters from incoming Request and converting into a Map
+			 */
+			def jsonSlurper = new JsonSlurper()
+			def jsonOutput = new JsonOutput()
+
+			Map reqMap = jsonSlurper.parseText(siRequest)
+
+			//InputParams
+			def userParams = reqMap.requestDetails?.requestParameters?.userParams
+
+			Map<String, String> inputMap = [:]
+			if (userParams) {
+				userParams.each {
+					userParam -> inputMap.put(userParam.name, userParam.value)
+				}
+			}
+			
+			utils.log("DEBUG", "User Input Parameters map: " + userParams.toString(), isDebugEnabled)
+			execution.setVariable("serviceInputParams", inputMap)
 
 		} catch (BpmnError e) {
 			throw e;
@@ -171,7 +192,7 @@
 			}
 
 			String buildworkflowException =
-				"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+				"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
 					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
 				   </aetgt:WorkflowException>"""
@@ -193,9 +214,9 @@
 			String requestId = execution.getVariable("msoRequestId")
 			String source = execution.getVariable("source")
 			String msoCompletionRequest =
-			"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-								xmlns:ns="http://org.openecomp/mso/request/types/v1">

-						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+			"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+								xmlns:ns="http://org.openecomp/mso/request/types/v1">
+						<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 							<request-id>${requestId}</request-id>
 							<action>DELETE</action>
 							<source>${source}</source>
@@ -228,7 +249,7 @@
 			String requestId = execution.getVariable("msoRequestId")
 			String source = execution.getVariable("source")
 			String requestInfo =
-			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					<request-id>${requestId}</request-id>
 					<action>DELETE</action>
 					<source>${source}</source>
@@ -241,15 +262,15 @@
 			String errorException = "  Bpmn error encountered in CreateServiceInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
 			String requestId = execution.getVariable("msoRequestId")
 			String falloutRequest =
-			"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

-					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

-					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

-					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+			"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
 					      <request-id>${requestId}</request-id>
 					      <action>DELETE</action>
 					      <source>VID</source>
 					   </request-info>
-						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
 							<aetgt:ErrorMessage>${errorException}</aetgt:ErrorMessage>
 							<aetgt:ErrorCode>7000</aetgt:ErrorCode>
 						</aetgt:WorkflowException>
@@ -279,7 +300,7 @@
 					"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 						<soapenv:Header/>
 						<soapenv:Body>
-							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
 								<requestId>${requestId}</requestId>
 								<lastModifiedBy>BPMN</lastModifiedBy>
 								<statusMessage>${statusMessage}</statusMessage>
@@ -328,7 +349,7 @@
 					"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
 						<soapenv:Header/>
 						<soapenv:Body>
-							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
 								<requestId>${requestId}</requestId>
 								<lastModifiedBy>BPMN</lastModifiedBy>
 								<statusMessage>${statusMessage}</statusMessage>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericMacroServiceNetworkVnf.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericMacroServiceNetworkVnf.groovy
deleted file mode 100644
index 108f8d3..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteGenericMacroServiceNetworkVnf.groovy
+++ /dev/null
@@ -1,468 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-package org.openecomp.mso.bpmn.infrastructure.scripts;
-
-import groovy.xml.XmlUtil
-import groovy.json.*
-
-import org.openecomp.mso.bpmn.core.json.JsonUtils
-import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
-import org.openecomp.mso.bpmn.common.scripts.NetworkUtils
-import org.openecomp.mso.bpmn.common.scripts.VidUtils
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.rest.APIResponse;
-
-
-import java.util.UUID;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution
-import org.json.JSONObject;
-import org.json.JSONArray;
-import org.apache.commons.lang3.*
-import org.apache.commons.codec.binary.Base64;
-import org.springframework.web.util.UriUtils;
-
-/**
- * This groovy class supports the <class>DeleteViprAtmService.bpmn</class> process.
- *
- */
-public class DeleteGenericMacroServiceNetworkVnf extends AbstractServiceTaskProcessor {
-
-	String Prefix="DELVAS_"
-	ExceptionUtil exceptionUtil = new ExceptionUtil()
-	JsonUtils jsonUtil = new JsonUtils()
-	VidUtils vidUtils = new VidUtils()
-	CatalogDbUtils catalogDbUtils = new CatalogDbUtils()
-	NetworkUtils networkUtils = new NetworkUtils()
-
-	/**
-	 * This method is executed during the preProcessRequest task of the <class>DeleteGenericMacroServiceNetworkVnf.bpmn</class> process.
-	 * @param execution
-	 */
-	public InitializeProcessVariables(Execution execution){
-		/* Initialize all the process variables in this block */
-
-		execution.setVariable("DeleteGenericMacroServiceNetworkVnfRequest", "")
-		execution.setVariable("msoRequestId", "")
-		execution.setVariable("DELVAS_vnfsDeletedCount", 0)
-		execution.setVariable("DELVAS_vnfsCount", 0)
-		execution.setVariable("DELVAS_networksCount", 0)
-		execution.setVariable("DELVAS_networksDeletedCount", 0)
-	}
-
-	// **************************************************
-	//     Pre or Prepare Request Section
-	// **************************************************
-	/**
-	 * This method is executed during the preProcessRequest task of the <class>CreateServiceInstance.bpmn</class> process.
-	 * @param execution
-	 */
-	public void preProcessRequest (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		execution.setVariable("prefix",Prefix)
-
-		utils.log("DEBUG", " ***** Inside preProcessRequest DeleteGenericMacroServiceNetworkVnf Request ***** ", isDebugEnabled)
-
-		try {
-			// initialize flow variables
-			InitializeProcessVariables(execution)
-
-			// check for incoming json message/input
-			String DeleteGenericMacroServiceNetworkVnfRequest = execution.getVariable("bpmnRequest")
-			utils.logAudit(DeleteGenericMacroServiceNetworkVnfRequest)
-			execution.setVariable("DeleteGenericMacroServiceNetworkVnfRequest", DeleteGenericMacroServiceNetworkVnfRequest);
-			println 'DeleteGenericMacroServiceNetworkVnfRequest - ' + DeleteGenericMacroServiceNetworkVnfRequest
-
-			// extract requestId
-			String requestId = execution.getVariable("mso-request-id")
-			execution.setVariable("msoRequestId", requestId)
-
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-			if ((serviceInstanceId == null) || (serviceInstanceId.isEmpty())) {
-				String dataErrorMessage = " Element 'serviceInstanceId' is missing. "
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-			}
-			
-			String requestAction = execution.getVariable("requestAction")
-			execution.setVariable("requestAction", requestAction)
-
-			String source = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.requestInfo.source")
-			if ((source == null) || (source.isEmpty())) {
-				execution.setVariable("source", "VID")
-			} else {
-				execution.setVariable("source", source)
-			}
-
-			// extract globalSubscriberId
-			String globalSubscriberId = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.subscriberInfo.globalSubscriberId")
-
-			// global-customer-id is optional on Delete
-
-			execution.setVariable("globalSubscriberId", globalSubscriberId)
-			execution.setVariable("globalCustomerId", globalSubscriberId)
-			
-			String suppressRollback = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.requestInfo.suppressRollback")
-			execution.setVariable("disableRollback", suppressRollback)
-			utils.log("DEBUG", "Incoming Suppress/Disable Rollback is: " + suppressRollback, isDebugEnabled)
-			
-			String productFamilyId = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.requestInfo.productFamilyId")
-			execution.setVariable("productFamilyId", productFamilyId)
-			utils.log("DEBUG", "Incoming productFamilyId is: " + productFamilyId, isDebugEnabled)
-			
-			// extract subscriptionServiceType
-			String subscriptionServiceType = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.requestParameters.subscriptionServiceType")
-			execution.setVariable("subscriptionServiceType", subscriptionServiceType)
-			utils.log("DEBUG", "Incoming subscriptionServiceType is: " + subscriptionServiceType, isDebugEnabled)
-			
-			// extract cloud configuration
-			String lcpCloudRegionId = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.cloudConfiguration.lcpCloudRegionId")
-			execution.setVariable("lcpCloudRegionId", lcpCloudRegionId)
-			utils.log("DEBUG","lcpCloudRegionId: "+ lcpCloudRegionId, isDebugEnabled)
-			String tenantId = jsonUtil.getJsonValue(DeleteGenericMacroServiceNetworkVnfRequest, "requestDetails.cloudConfiguration.tenantId")
-			execution.setVariable("tenantId", tenantId)
-			utils.log("DEBUG","tenantId: "+ tenantId, isDebugEnabled)
-
-			String sdncVersion = "1707"
-			execution.setVariable("sdncVersion", sdncVersion)
-			utils.log("DEBUG","sdncVersion: "+ sdncVersion, isDebugEnabled)
-			
-			//For Completion Handler & Fallout Handler
-			String requestInfo =
-			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
-					<request-id>${requestId}</request-id>
-					<action>DELETE</action>
-					<source>${source}</source>
-				   </request-info>"""
-
-			execution.setVariable("DELVAS_requestInfo", requestInfo)
-			
-			//Setting for Generic Sub Flows
-			execution.setVariable("GENGS_type", "service-instance")
-			
-			utils.log("DEBUG", " ***** Completed preProcessRequest DeleteGenericMacroServiceNetworkVnf Request ***** ", isDebugEnabled)
-
-		} catch (BpmnError e) {
-			throw e;
-		} catch (Exception ex){
-			String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Unexpected from method preProcessRequest() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	public void sendSyncResponse (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		utils.log("DEBUG", " ***** Inside sendSyncResponse of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-		try {
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-			String requestId = execution.getVariable("mso-request-id")
-
-			// RESTResponse (for API Handler (APIH) Reply Task)
-			String syncResponse ="""{"requestReferences":{"instanceId":"${serviceInstanceId}","requestId":"${requestId}"}}""".trim()
-
-			utils.log("DEBUG", " sendSynchResponse: xmlSyncResponse - " + "\n" + syncResponse, isDebugEnabled)
-			sendWorkflowResponse(execution, 202, syncResponse)
-		} catch (Exception ex) {
-			String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Unexpected from method sendSyncResponse() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	public void prepareServiceInstanceDelete (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG", " ***** Inside prepareServiceInstanceDelete() of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		
-		try {
-			
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-			
-			// confirm if ServiceInstance was found
-			if ( !execution.getVariable("GENGS_FoundIndicator") )
-			{
-				String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Service Instance was not found in AAI by id: " + serviceInstanceId
-				exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-			}
-			
-			// get variable within incoming json
-			String DeleteGenericMacroServiceNetworkVnfRequest = execution.getVariable("DeleteGenericMacroServiceNetworkVnfRequest");
-			
-			// get SI extracted by GenericGetService
-			String serviceInstanceAaiRecord = execution.getVariable("GENGS_service");
-			
-			utils.log("DEBUG", "serviceInstanceAaiRecord: "+serviceInstanceAaiRecord, isDebugEnabled)
-			
-			String relationship = ""
-			try {
-				relationship = networkUtils.getFirstNodeXml(serviceInstanceAaiRecord, "relationship-list")
-			} catch (Exception ex) {
-				//no relationships found
-			}
-			utils.log("DEBUG", " relationship string - " + relationship, isDebugEnabled)
-			
-			int vnfsCount = 0
-			int networksCount = 0
-			
-			if (relationship != null && relationship.length() > 0){
-				relationship = relationship.trim().replace("tag0:","").replace(":tag0","")
-				
-				// Check if Network TableREf is present, then build a List of network policy
-				List relatedVnfIdList = networkUtils.getRelatedVnfIdList(relationship)
-				vnfsCount = relatedVnfIdList.size()
-				execution.setVariable("DELVAS_vnfsCount", vnfsCount)
-				utils.log("DEBUG", " DELVAS_vnfsCount : " + vnfsCount, isDebugEnabled)
-				execution.setVariable("DELVAS_relatedVnfIdList", relatedVnfIdList)
-				
-				// Check if Network TableREf is present, then build a List of network policy
-				List relatedNetworkIdList = networkUtils.getRelatedNetworkIdList(relationship)
-				networksCount = relatedNetworkIdList.size()
-				execution.setVariable("DELVAS_networksCount", networksCount)
-				utils.log("DEBUG", " DELVAS_networksCount : " + networksCount, isDebugEnabled)
-				execution.setVariable("DELVAS_relatedNetworkIdList", relatedNetworkIdList)
-			} else {
-				execution.setVariable("DELVAS_vnfsCount", 0)
-				utils.log("DEBUG", " DELVAS_vnfsCount : " + vnfsCount, isDebugEnabled)
-				execution.setVariable("DELVAS_networksCount", 0)
-				utils.log("DEBUG", " DELVAS_networksCount : " + networksCount, isDebugEnabled)
-			}
-			
-			utils.log("DEBUG", " ***** Completed prepareServiceInstanceDelete() of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			sendSyncError(execution)
-		   String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. prepareServiceInstanceDelete() - " + ex.getMessage()
-		   utils.log("DEBUG", exceptionMessage, isDebugEnabled)
-		   exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-	
-	
-	// *******************************
-	//     
-	// *******************************
-	public void prepareVnfAndModulesDelete (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside prepareVnfAndModulesDelete of DeleteServiceInstanceMacro ***** ", isDebugEnabled)
-
-			List vnfList = execution.getVariable("DELVAS_relatedVnfIdList")
-			Integer vnfsDeletedCount = execution.getVariable("DELVAS_vnfsDeletedCount")
-			String vnfModelInfoString = ""
-			String vnfId = ""
-			if (vnfList.size() > 0 ) {
-				vnfId = vnfList.get(vnfsDeletedCount.intValue())
-			}
-							
-			execution.setVariable("vnfId", vnfId)
-			utils.log("DEBUG", "need to delete vnfId:" + vnfId, isDebugEnabled)
-
-			utils.log("DEBUG", " ***** Completed prepareVnfAndModulesDelete of DeleteServiceInstanceMacro ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in DeleteServiceInstanceMacro flow. Unexpected Error from method prepareVnfAndModulesDelete() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-	
-	// *******************************
-	//     Validate Vnf request Section -> increment count
-	// *******************************
-	public void validateVnfDelete (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside validateVnfDelete of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			String vnfsDeletedCount = execution.getVariable("DELVAS_vnfsDeletedCount")
-			vnfsDeletedCount++
-			
-			execution.setVariable("DELVAS_vnfsDeletedCount", vnfsDeletedCount)
-			
-			utils.log("DEBUG", " ***** Completed validateVnfDelete of DeleteGenericMacroServiceNetworkVnf ***** "+" vnf # "+vnfsDeletedCount, isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Unexpected Error from method validateVnfDelete() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-	
-	// *******************************
-	//     Generate Network request Section
-	// *******************************
-	public void prepareNetworkDelete (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside prepareNetworkDelete of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			List networkList = execution.getVariable("DELVAS_relatedNetworkIdList")
-			Integer networksDeletedCount = execution.getVariable("DELVAS_networksDeletedCount")
-
-			String networkId = ""
-			if (networkList.size() > 0) {
-				networkId = networkList.get(networksDeletedCount.intValue())
-			}
-							
-			execution.setVariable("networkId", networkId)
-			utils.log("DEBUG", "need to delete networkId:" + networkId, isDebugEnabled)
-			
-			utils.log("DEBUG", " ***** Completed prepareNetworkDelete of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = q"Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Unexpected Error from method prepareNetworkDelete() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-	
-	// *******************************
-	//     Validate Network request Section
-	// *******************************
-	public void validateNetworkDelete (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-
-		try {
-			utils.log("DEBUG", " ***** Inside validateNetworkDelete of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-			Integer networksDeletedCount = execution.getVariable("DELVAS_networksDeletedCount")
-			networksDeletedCount++
-			
-			execution.setVariable("DELVAS_networksDeletedCount", networksDeletedCount)
-			
-			utils.log("DEBUG", " ***** Completed validateNetworkDelete of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in DeleteGenericMacroServiceNetworkVnf flow. Unexpected Error from method validateNetworkDelete() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	 }
-
-	
-	// *****************************************
-	//     Prepare Completion request Section
-	// *****************************************
-	public void postProcessResponse (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG", " ***** Inside postProcessResponse of DeleteGenericMacroServiceNetworkVnf ***** ", isDebugEnabled)
-
-		try {
-			String source = execution.getVariable("source")
-			String requestId = execution.getVariable("msoRequestId")
-
-			String msoCompletionRequest =
-					"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
-									xmlns:ns="http://org.openecomp/mso/request/types/v1">
-							<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
-								<request-id>${requestId}</request-id>
-								<action>DELETE</action>
-								<source>${source}</source>
-							   </request-info>
-							<aetgt:status-message>vIPR ATM Service Instance has been deleted successfully.</aetgt:status-message>
-							   <aetgt:mso-bpel-name>BPMN Service Instance macro action: DELETE</aetgt:mso-bpel-name>
-						</aetgt:MsoCompletionRequest>"""
-
-			// Format Response
-			String xmlMsoCompletionRequest = utils.formatXml(msoCompletionRequest)
-
-			utils.logAudit(xmlMsoCompletionRequest)
-			execution.setVariable("DELVAS_Success", true)
-			execution.setVariable("DELVAS_CompleteMsoProcessRequest", xmlMsoCompletionRequest)
-			utils.log("DEBUG", " SUCCESS flow, going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest, isDebugEnabled)
-		} catch (BpmnError e) {
-		throw e;
-
-		} catch (Exception ex) {
-			// try error in method block
-			String exceptionMessage = "Bpmn error encountered in DeleteServiceInstance flow. Unexpected Error from method postProcessResponse() - " + ex.getMessage()
-			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-		}
-	}
-
-	public void prepareFalloutRequest(Execution execution){
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG", " *** STARTED DeleteGenericMacroServiceNetworkVnf prepareFalloutRequest Process *** ", isDebugEnabled)
-
-		try {
-			WorkflowException wfex = execution.getVariable("WorkflowException")
-			utils.log("DEBUG", " Incoming Workflow Exception: " + wfex.toString(), isDebugEnabled)
-			String requestInfo = execution.getVariable("DELVAS_requestInfo")
-			utils.log("DEBUG", " Incoming Request Info: " + requestInfo, isDebugEnabled)
-
-			String falloutRequest = exceptionUtil.processMainflowsBPMNException(execution, requestInfo)
-
-			execution.setVariable("DELVAS_falloutRequest", falloutRequest)
-		} catch (Exception ex) {
-			utils.log("DEBUG", "Error Occured in DeleteGenericMacroServiceNetworkVnf prepareFalloutRequest Process " + ex.getMessage(), isDebugEnabled)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DeleteGenericMacroServiceNetworkVnf prepareFalloutRequest Process")
-		}
-		utils.log("DEBUG", "*** COMPLETED DeleteGenericMacroServiceNetworkVnf prepareFalloutRequest Process ***", isDebugEnabled)
-	}
-
-
-	public void sendSyncError (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		utils.log("DEBUG", " ***** Inside sendSyncError() of DeleteServiceInstanceInfra ***** ", isDebugEnabled)
-
-		try {
-			String errorMessage = ""
-			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
-				WorkflowException wfe = execution.getVariable("WorkflowException")
-				errorMessage = wfe.getErrorMessage()
-			} else {
-				errorMessage = "Sending Sync Error."
-			}
-
-			String buildworkflowException =
-				"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
-					<aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage>
-					<aetgt:ErrorCode>7000</aetgt:ErrorCode>
-				   </aetgt:WorkflowException>"""
-
-			utils.logAudit(buildworkflowException)
-			sendWorkflowResponse(execution, 500, buildworkflowException)
-		} catch (Exception ex) {
-			utils.log("DEBUG", " Sending Sync Error Activity Failed. " + "\n" + ex.getMessage(), isDebugEnabled)
-		}
-	}
-
-	public void processJavaException(Execution execution){
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		execution.setVariable("prefix",Prefix)
-		try{
-			utils.log("DEBUG", "Caught a Java Exception", isDebugEnabled)
-			utils.log("DEBUG", "Started processJavaException Method", isDebugEnabled)
-			utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)
-			execution.setVariable("DELVAS_unexpectedError", "Caught a Java Lang Exception")  // Adding this line temporarily until this flows error handling gets updated
-			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Caught a Java Lang Exception")
-		}catch(BpmnError b){
-			utils.log("ERROR", "Rethrowing MSOWorkflowException", isDebugEnabled)
-			throw b
-		}catch(Exception e){
-			utils.log("DEBUG", "Caught Exception during processJavaException Method: " + e, isDebugEnabled)
-			execution.setVariable("DELVAS_unexpectedError", "Exception in processJavaException method")  // Adding this line temporarily until this flows error handling gets updated
-			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Exception in processJavaException method")
-		}
-		utils.log("DEBUG", "Completed processJavaException Method", isDebugEnabled)
-	}
-
-
-}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstance.groovy
index e18af17..b8629c3 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstance.groovy
@@ -153,10 +153,11 @@
 		
 		try {
 			
-			// "networkModelInfo" is expected to be sent
-			String networkModelInfo = execution.getVariable("networkModelInfo")
-			utils.log("DEBUG", " networkModelInfo - " + networkModelInfo, isDebugEnabled)
-						 
+			// For Ala-Carte (sdnc = 1610): 
+			// 1. the Network ModelInfo is expected to be sent 
+			//     via requestDetails.modelInfo (modelType = network), ex: modelCustomizationId.
+			// 2. the Service ModelInfo is expected to be sent but will be IGNORE 
+			//     via requestDetails.relatedInstanceList.relatedInstance.modelInfo (modelType = service)
 										 
 		} catch (Exception ex) {
 			sendSyncError(execution)
@@ -241,7 +242,10 @@
 
 		try {
 			utils.log("DEBUG", " ***** Inside prepareDBRequestError of DeleteNetworkInstance ***** ", isDebugEnabled)
-
+			
+			// set DB Header Authorization 
+			setBasicDBAuthHeader(execution, isDebugEnabled)
+			
 			WorkflowException wfe = execution.getVariable("WorkflowException")
 			String statusMessage = wfe.getErrorMessage()
 			String requestId = execution.getVariable(Prefix +"requestId")
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleInfra.groovy
index f8b3b47..021cdbb 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleInfra.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleInfra.groovy
@@ -110,18 +110,7 @@
 
 			utils.log("DEBUG", " Request in XML format: " + requestInXmlFormat, isDebugLogEnabled)
 
-			try {
-				// Catalog DB headers Authorization
-				String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")
-				utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugLogEnabled)
-				
-				def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))
-				execution.setVariable("BasicAuthHeaderValueDB",encodedString)
-			} catch (IOException ex) {
-				String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()
-				utils.log("DEBUG", dataErrorMessage, isDebugLogEnabled)
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-			}
+			setBasicDBAuthHeader(execution, isDebugLogEnabled)
 			
 			execution.setVariable(prefix + 'Request', requestInXmlFormat)
 			execution.setVariable(prefix+'vnfId', vnfId)
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1.groovy
index 7bda7b4..547b5f3 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1.groovy
@@ -132,18 +132,7 @@
 		execution.setVariable('DELVfModVol_volumeParams', utils.getNodeXml(request, 'volume-params'))

 		execution.setVariable('DELVfModVol_cloudRegion', utils.getNodeText1(request, 'aic-cloud-region'))

 

-		try {

-			// Catalog DB headers Authorization

-			String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")

-			utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugLogEnabled)

-			

-			def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))

-			execution.setVariable("BasicAuthHeaderValueDB",encodedString)

-		} catch (IOException ex) {

-			String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()

-			utils.log("DEBUG", dataErrorMessage, isDebugLogEnabled)

-			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)

-		}

+		setBasicDBAuthHeader(execution, isDebugLogEnabled)

 		

 		logDebug('Request: ' + createVolumeIncoming, isDebugLogEnabled)

 	}

@@ -436,7 +425,7 @@
 	public void prepareDBRequest (Execution execution, isDebugLogEnabled) {

 

 		WorkflowException workflowExceptionObj = execution.getVariable("WorkflowException")

-

+		ExceptionUtil exceptionUtil = new ExceptionUtil();

 		def requestId = execution.getVariable('DELVfModVol_requestId')

 		def volOutputs = execution.getVariable('DELVfModVol_volumeOutputs')

 		def statusMessage = "VolumeGroup successfully deleted"

@@ -450,7 +439,7 @@
 			requestStatus = "FAILURE"

 			progress = ""

 		}

-

+		

 		String updateInfraRequest = """

 			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

 					xmlns:req="http://org.openecomp.mso/requestsdb">

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
index d221d06..53c878d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstance.groovy
@@ -448,7 +448,7 @@
 			// get variables
 			String networkId = ""
 			String assignSDNCResponse = execution.getVariable(Prefix + "assignSDNCResponse")
-			if (execution.getVariable("sdncVersion") == "1702") {
+			if (execution.getVariable("sdncVersion") != "1610") {
 			   String networkResponseInformation = ""
 			   try {	
 			      networkResponseInformation = utils.getNodeXml(assignSDNCResponse, "network-response-information", false).replace("tag0:","").replace(":tag0","")
@@ -655,9 +655,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (vpnBindingUri[i].charAt(vpnBindingUri[i].length()-1) == '/') {
-						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i].substring(0, vpnBindingUri[i].length()-1)
+						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i].substring(0, vpnBindingUri[i].length()-1) + "?depth=all"
 						} else {
-						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i]
+						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i] + "?depth=all"
 						}
 
 					} else {
@@ -666,7 +666,7 @@
 						if (vpnBindingId.charAt(vpnBindingId.length()-1) == '/') {
 							vpnBindingId = vpnBindingId.substring(0, vpnBindingId.length()-1)
 						}
-					    queryVpnBindingAAIRequest = "${aai_endpoint}${aai_uri}/" + vpnBindingId
+					    queryVpnBindingAAIRequest = "${aai_endpoint}${aai_uri}/" + vpnBindingId + "?depth=all"
 					}
 
 					utils.logAudit(queryVpnBindingAAIRequest)
@@ -789,9 +789,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (networkPolicyUriList[i].charAt(networkPolicyUriList[i].length()-1) == '/') {
-							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i].substring(0, networkPolicyUriList[i].length()-1)
+							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i].substring(0, networkPolicyUriList[i].length()-1) + "?depth=all"
 						} else {
-							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i]
+							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i] + "?depth=all"
 						}
 					} else {
 						// using uri value in URN mapping
@@ -800,7 +800,7 @@
 						if (networkPolicyId.charAt(networkPolicyId.length()-1) == '/') {
 							networkPolicyId = networkPolicyId.substring(0, networkPolicyId.length()-1)
 						}
-						queryNetworkPolicyAAIRequest = "${aai_endpoint}${aai_uri}/" + networkPolicyId
+						queryNetworkPolicyAAIRequest = "${aai_endpoint}${aai_uri}/" + networkPolicyId + "?depth=all"
 
 					}
 
@@ -925,9 +925,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (networkTableRefUriList[i].charAt(networkTableRefUriList[i].length()-1) == '/') {
-							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i].substring(0, networkTableRefUriList[i].length()-1)
+							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i].substring(0, networkTableRefUriList[i].length()-1) + "?depth=all"
 						} else {
-							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i]
+							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i] + "?depth=all"
 						}
 					} else {
 						// using uri value in URN mapping
@@ -936,7 +936,7 @@
 						if (networkTableRefId.charAt(networkTableRefId.length()-1) == '/') {
 							networkTableRefId = networkTableRefId.substring(0, networkTableRefId.length()-1)
 						}
-						queryNetworkTableRefAAIRequest = "${aai_endpoint}${aai_uri}/" + networkTableRefId
+						queryNetworkTableRefAAIRequest = "${aai_endpoint}${aai_uri}/" + networkTableRefId + "?depth=all"
 
 					}
 
@@ -1236,7 +1236,7 @@
 			String serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")
 			
 			// 1. prepare assign topology via SDNC Adapter SUBFLOW call
-			String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "activate", "ActivateNetworkInstance", cloudRegionId, networkId, null)
+			String sndcTopologyCreateRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
 
 			String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
 			utils.logAudit(sndcTopologyCreateRequesAsString)
@@ -1598,7 +1598,7 @@
 		
 		try {
 			
-			if (execution.getVariable("sdncVersion") == '1702') {
+			if (execution.getVariable("sdncVersion") != '1610') {
 			    prepareRpcSDNCRollbackRequest(execution)
 				prepareRpcSDNCActivateRollback(execution)
 			} else {
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateServiceInstance.groovy
index 9f28db7..49aa948 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateServiceInstance.groovy
@@ -23,12 +23,14 @@
 import groovy.xml.XmlUtil
 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.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.common.scripts.VidUtils
 import org.openecomp.mso.bpmn.core.RollbackData
 import org.openecomp.mso.bpmn.core.WorkflowException
 import org.openecomp.mso.rest.APIResponse;
@@ -57,8 +59,10 @@
  * @param - productFamilyId
  * @param - disableRollback
  * @param - failExists - TODO
- * @param - serviceInputParams - Deferred/TODO
+ * @param - serviceInputParams (should contain aic_zone for serviceTypes TRANSPORT,ATM)
  * @param - sdncVersion ("1610")
+ * @param - serviceDecomposition - Decomposition for R1710 
+ * (if macro provides serviceDecompsition then serviceModelInfo, serviceInstanceId & serviceInstanceName will be ignored)
  *
  * Outputs:
  * @param - rollbackData (localRB->null)
@@ -72,7 +76,6 @@
 	String Prefix="DCRESI_"
 	ExceptionUtil exceptionUtil = new ExceptionUtil()
 	JsonUtils jsonUtil = new JsonUtils()
-	VidUtils vidUtils = new VidUtils()
 
 	public void preProcessRequest (Execution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
@@ -82,19 +85,11 @@
 		try {
 			String requestId = execution.getVariable("msoRequestId")
 			execution.setVariable("prefix", Prefix)
-
+			
 			//Inputs
 			//requestDetails.subscriberInfo. for AAI GET & PUT & SDNC assignToplology
 			String globalSubscriberId = execution.getVariable("globalSubscriberId") //globalCustomerId
 
-			//requestDetails.requestInfo. for AAI GET/PUT serviceInstanceData & SDNC assignToplology
-			String serviceInstanceName = execution.getVariable("serviceInstanceName")
-			//Generated in parent for AAI PUT
-			String serviceInstanceId = execution.getVariable("serviceInstanceId")
-
-			//requestDetails.modelInfo. for AAI PUT servieInstanceData & SDNC assignTopology
-			String serviceModelInfo = execution.getVariable("serviceModelInfo")
-
 			//requestDetails.requestParameters. for AAI PUT & SDNC assignTopology
 			String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
 
@@ -106,21 +101,13 @@
 				utils.log("DEBUG", msg, isDebugEnabled)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
-			if (isBlank(serviceInstanceId)){
-				msg = "Input serviceInstanceId is null"
-				utils.log("DEBUG", msg, isDebugEnabled)
-				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
-			}
-			if (isBlank(serviceModelInfo)) {
-				msg = "Input serviceModelInfo is null"
-				utils.log("DEBUG", msg, isDebugEnabled)
-				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
-			}
+			
 			if (isBlank(subscriptionServiceType)) {
 				msg = "Input subscriptionServiceType is null"
 				utils.log("DEBUG", msg, isDebugEnabled)
 				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 			}
+			
 			if (productFamilyId == null) {
 				execution.setVariable("productFamilyId", "")
 			}
@@ -134,30 +121,152 @@
 			execution.setVariable("sdncCallbackUrl", sdncCallbackUrl)
 			utils.log("DEBUG","SDNC Callback URL: " + sdncCallbackUrl, isDebugEnabled)
 
-			String modelInvariantId = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantId")
-			String modelVersionId = jsonUtil.getJsonValue(serviceModelInfo, "modelVersionId")
+			//requestDetails.modelInfo.for AAI PUT servieInstanceData & SDNC assignTopology
+			String modelInvariantUuid = ""
+			String modelVersion = ""
+			String modelUuid = ""
+			String modelName = ""
+			String serviceInstanceName = "" 
+			//Generated in parent.for AAI PUT
+			String serviceInstanceId = ""
+			String serviceType = ""
+			String serviceRole = ""
 			
-			if (modelInvariantId == null) {
-				modelInvariantId = ""
+			ServiceDecomposition serviceDecomp = (ServiceDecomposition) execution.getVariable("serviceDecomposition")
+			if (serviceDecomp != null)
+			{
+				serviceType = serviceDecomp.getServiceType()
+				if (serviceType == null)
+				{
+					utils.log("DEBUG", "null serviceType", isDebugEnabled)
+					serviceType = ""
+				}
+				else
+				{
+					utils.log("DEBUG", "serviceType:" + serviceType, isDebugEnabled)
+				}
+				serviceRole = serviceDecomp.getServiceRole()
+				if (serviceRole == null)
+				{
+					serviceRole = ""
+				}
+				
+				ServiceInstance serviceInstance = serviceDecomp.getServiceInstance()
+				if (serviceInstance != null)
+				{
+					serviceInstanceId = serviceInstance.getInstanceId()
+					serviceInstanceName = serviceInstance.getInstanceName()
+					execution.setVariable("serviceInstanceId", serviceInstanceId)
+					execution.setVariable("serviceInstanceName", serviceInstanceName)
+				}
+				
+				ModelInfo modelInfo = serviceDecomp.getModelInfo()
+				if (modelInfo != null)
+				{
+					modelInvariantUuid = modelInfo.getModelInvariantUuid()
+					modelVersion = modelInfo.getModelVersion()
+					modelUuid = modelInfo.getModelUuid()
+					modelName = modelInfo.getModelName()
+				}
+				else 
+				{
+					msg = "Input serviceModelInfo is null"
+					utils.log("DEBUG", msg, isDebugEnabled)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+				}
 			}
-			if (modelVersionId == null) {
-				modelVersionId = ""
+			else
+			{
+				//requestDetails.requestInfo. for AAI GET/PUT serviceInstanceData & SDNC assignToplology
+				serviceInstanceName = execution.getVariable("serviceInstanceName")
+				serviceInstanceId = execution.getVariable("serviceInstanceId")
+				
+				String serviceModelInfo = execution.getVariable("serviceModelInfo")
+				if (isBlank(serviceModelInfo)) {
+					msg = "Input serviceModelInfo is null"
+					utils.log("DEBUG", msg, isDebugEnabled)
+					exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+				}
+				modelInvariantUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantUuid")
+				modelVersion = jsonUtil.getJsonValue(serviceModelInfo, "modelVersion")
+				modelUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelUuid")
+				modelName = jsonUtil.getJsonValue(serviceModelInfo, "modelName")
+				//modelCustomizationUuid NA for SI
+	
 			}
+			execution.setVariable("serviceType", serviceType)
+			execution.setVariable("serviceRole", serviceRole)
+			
 			if (serviceInstanceName == null) {
 				execution.setVariable("serviceInstanceName", "")
 				serviceInstanceName = ""
 			}
+			if (isBlank(serviceInstanceId)){
+				msg = "Input serviceInstanceId is null"
+				utils.log("DEBUG", msg, isDebugEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+			}
 			
+			if (modelInvariantUuid == null) {
+				modelInvariantUuid = ""
+			}
+			if (modelUuid == null) {
+				modelUuid = ""
+			}
+			if (modelVersion == null) {
+				modelVersion = ""
+			}
+			if (modelName == null) {
+				modelName = ""
+			}
+			
+			execution.setVariable("modelInvariantUuid", modelInvariantUuid)
+			execution.setVariable("modelVersion", modelVersion)
+			execution.setVariable("modelUuid", modelUuid)
+			execution.setVariable("modelName", modelName)
+			
+			StringBuilder sbParams = new StringBuilder()
+			Map<String, String> paramsMap = execution.getVariable("serviceInputParams")
+			if (paramsMap != null)
+			{
+				sbParams.append("<service-input-parameters>")
+				for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
+					String paramsXml
+					String paramName = entry.getKey()
+					String paramValue = entry.getValue()
+					paramsXml =
+							"""	<param>
+							<name>${paramName}</name>
+							<value>${paramValue}</value>
+							</param>
+							"""
+					sbParams.append(paramsXml)
+				}
+				sbParams.append("</service-input-parameters>")
+			}
+			String siParamsXml = sbParams.toString()
+			if (siParamsXml == null)
+				siParamsXml = ""
+			execution.setVariable("siParamsXml", siParamsXml)
+	
 			//AAI PUT
+			String oStatus= "Active"
+			if ("TRANSPORT".equalsIgnoreCase(serviceType))
+			{
+				oStatus = "Created"
+			}
+				
 			AaiUtil aaiUriUtil = new AaiUtil(this)
 			String aai_uri = aaiUriUtil.getBusinessCustomerUri(execution)
 			String namespace = aaiUriUtil.getNamespaceFromUri(aai_uri)
 			String serviceInstanceData =
 					"""<service-instance xmlns=\"${namespace}\">
 					<service-instance-name>${serviceInstanceName}</service-instance-name>
-					<orchestration-status>Active</orchestration-status>
-				    <model-invariant-id>${modelInvariantId}</model-invariant-id>
-				    <model-version-id>${modelVersionId}</model-version-id>
+					<service-type>${serviceType}</service-type>
+					<service-role>${serviceRole}</service-role>
+					<orchestration-status>${oStatus}</orchestration-status>
+				    <model-invariant-id>${modelInvariantUuid}</model-invariant-id>
+				    <model-version-id>${modelUuid}</model-version-id>
 					</service-instance>""".trim()
 
 			execution.setVariable("serviceInstanceData", serviceInstanceData)
@@ -340,27 +449,17 @@
 			def serviceId = execution.getVariable("productFamilyId")
 			def subscriptionServiceType = execution.getVariable("subscriptionServiceType")
 			def globalSubscriberId = execution.getVariable("globalSubscriberId") //globalCustomerId
+			def serviceType = execution.getVariable("serviceType")
 
-			String serviceModelInfo = execution.getVariable("serviceModelInfo")
-			def modelInvariantId = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantId")
-			def modelVersion = jsonUtil.getJsonValue(serviceModelInfo, "modelVersion")
-			def modelUUId = jsonUtil.getJsonValue(serviceModelInfo, "modelVersionId")
-			def modelName = jsonUtil.getJsonValue(serviceModelInfo, "modelName")
+			def modelInvariantUuid = execution.getVariable("modelInvariantUuid")
+			def modelVersion = execution.getVariable("modelVersion")
+			def modelUuid = execution.getVariable("modelUuid")
+			def modelName = execution.getVariable("modelName")
+			
 			def sdncRequestId = UUID.randomUUID().toString()
 			
-			if (modelInvariantId == null) {
-				modelInvariantId = ""
-			}
-			if (modelVersion == null) {
-				modelVersion = ""
-			}
-			if (modelUUId == null) {
-				modelUUId = ""
-			}
-			if (modelName == null) {
-				modelName = ""
-			}
-
+			def siParamsXml = execution.getVariable("siParamsXml")
+			
 			String sdncAssignRequest =
 					"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
@@ -371,6 +470,7 @@
 							<sdncadapter:SvcAction>assign</sdncadapter:SvcAction>
 							<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>
 							<sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>
+							<sdncadapter:MsoAction>${serviceType}</sdncadapter:MsoAction>
 					</sdncadapter:RequestHeader>
 				<sdncadapterworkflow:SDNCRequestData>
 					<request-information>
@@ -385,8 +485,8 @@
 						<service-id>${serviceId}</service-id>
 						<subscription-service-type>${subscriptionServiceType}</subscription-service-type>
 						<ecomp-model-information>
-					         <model-invariant-uuid>${modelInvariantId}</model-invariant-uuid>
-					         <model-uuid>${modelUUId}</model-uuid>
+					         <model-invariant-uuid>${modelInvariantUuid}</model-invariant-uuid>
+					         <model-uuid>${modelUuid}</model-uuid>
 					         <model-version>${modelVersion}</model-version>
 					         <model-name>${modelName}</model-name>
 					    </ecomp-model-information>
@@ -396,6 +496,7 @@
 					</service-information>
 					<service-request-input>
 						<service-instance-name>${serviceInstanceName}</service-instance-name>
+						${siParamsXml}
 					</service-request-input>
 				</sdncadapterworkflow:SDNCRequestData>
 				</sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModule.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
index 1fd5ab0..8bd3c5a 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
@@ -67,7 +67,7 @@
 
 		execution.setVariable('prefix', Prefix)
 		try{
-			def rollbackData = execution.getVariable("RollbackData")
+			def rollbackData = execution.getVariable("rollbackData")
 			if (rollbackData == null) {
 				rollbackData = new RollbackData()
 			}
@@ -140,6 +140,7 @@
 				def requestId = execution.getVariable("msoRequestId")
 				execution.setVariable("DCVFM_requestId", requestId)
 				logDebug("requestId: " + requestId, isDebugLogEnabled)
+				rollbackData.put("VFMODULE", "msorequestid", requestId)
 				// Set mso-request-id to request-id for VNF Adapter interface
 				execution.setVariable("mso-request-id", requestId)
 				//serviceId
@@ -159,7 +160,7 @@
 				//backoutOnFailure
 				def disableRollback = execution.getVariable("disableRollback")
 				def backoutOnFailure = true
-				if (disableRollback != null && disableRollback.equals("true")) {
+				if (disableRollback != null && disableRollback == true) {
 					backoutOnFailure = false
 				}
 				execution.setVariable("DCVFM_backoutOnFailure", backoutOnFailure)
@@ -173,9 +174,9 @@
 				execution.setVariable("DCVFM_asdcServiceModelVersion", asdcServiceModelVersion)
 				logDebug("asdcServiceModelVersion: " + asdcServiceModelVersion, isDebugLogEnabled)
 				//personaModelId
-				execution.setVariable("DCVFM_personaModelId", jsonUtil.getJsonValue(vfModuleModelInfo, "modelInvariantId"))
+				execution.setVariable("DCVFM_personaModelId", jsonUtil.getJsonValue(vfModuleModelInfo, "modelInvariantUuid"))
 				//personaModelVersion
-				execution.setVariable("DCVFM_personaModelVersion", jsonUtil.getJsonValue(vfModuleModelInfo, "modelVersionId"))
+				execution.setVariable("DCVFM_personaModelVersion", jsonUtil.getJsonValue(vfModuleModelInfo, "modelUuid"))
 				//vfModuleLabel
 				def vfModuleLabel = execution.getVariable("vfModuleLabel")
 				if (vfModuleLabel != null) {
@@ -437,7 +438,7 @@
 			    logDebug("SDNC Callback URL is: " + sdncCallbackUrl, isDebugLogEnabled)
 
 
-			execution.setVariable("RollbackData", rollbackData)
+			execution.setVariable("rollbackData", rollbackData)
 		}catch(BpmnError b){
 			throw b
 		}catch(Exception e){
@@ -501,7 +502,7 @@
 			def createResponse = execution.getVariable('DCVFM_createVfModuleResponse')
 			utils.logAudit("createVfModule Response: " + createResponse)
 
-			def rollbackData = execution.getVariable("RollbackData")
+			def rollbackData = execution.getVariable("rollbackData")
 			String vnfName = utils.getNodeText1(createResponse, 'vnf-name')
 			if (vnfName != null) {
 				execution.setVariable('DCVFM_vnfName', vnfName)
@@ -521,7 +522,7 @@
 			rollbackData.put("VFMODULE", "vfmoduleid", vfModuleId)
 			rollbackData.put("VFMODULE", "rollbackCreateAAIVfModule", "true")
 			rollbackData.put("VFMODULE", "rollbackPrepareUpdateVfModule", "true")
-			execution.setVariable("RollbackData", rollbackData)
+			execution.setVariable("rollbackData", rollbackData)
 		} catch (Exception ex) {
 				ex.printStackTrace()
 				logDebug('Exception occurred while postProcessing CreateAAIVfModule request:' + ex.getMessage(),isDebugLogEnabled)
@@ -812,13 +813,25 @@
 		}
 
 		Map<String, String> vnfParamsMap = execution.getVariable("DCVFM_vnfParamsMap")
+		String vfModuleParams = ""
+		//Get SDNC Response Data for VF Module Topology
+		String vfModuleSdncGetResponse = execution.getVariable('DCVFM_getSDNCAdapterResponse')
+		utils.logAudit("sdncGetResponse: " + vfModuleSdncGetResponse)
+		def sdncVersion = execution.getVariable("sdncVersion")
 		
-		//Get SDNC Response Data for VnfSubCreate Request
-		String sdncGetResponse = execution.getVariable('DCVFM_getSDNCAdapterResponse')
-		utils.logAudit("sdncGetResponse: " + sdncGetResponse)
-
-		String vfModuleParams = buildVfModuleParams(vnfParamsMap, sdncGetResponse, vnfId, vnfName,
+		if (!sdncVersion.equals("1707")) {
+						
+			vfModuleParams = buildVfModuleParams(vnfParamsMap, vfModuleSdncGetResponse, vnfId, vnfName,
 				vfModuleId, vfModuleName, vfModuleIndex)
+		}
+		else {
+			//Get SDNC Response Data for Vnf Topology
+			String vnfSdncGetResponse = execution.getVariable('DCVFM_getVnfSDNCAdapterResponse')
+			utils.logAudit("vnfSdncGetResponse: " + vnfSdncGetResponse)
+			
+			vfModuleParams = buildVfModuleParamsFromCombinedTopologies(vnfParamsMap, vnfSdncGetResponse, vfModuleSdncGetResponse, vnfId, vnfName,
+				vfModuleId, vfModuleName, vfModuleIndex)			
+		}
 
 		def svcInstId = ""
 		if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {
@@ -1006,7 +1019,7 @@
 		def modelCustomizationUuid = execution.getVariable("DCVFM_modelCustomizationUuid")
 		def modelCustomizationUuidString = ""
 		if (!usePreload) {
-			modelCustomizationUuidString = "<modelCustomizationUuid>" + modelCustomizationUuid + "</modelCustomizationUuid>"
+			modelCustomizationUuidString = "<model-customization-uuid>" + modelCustomizationUuid + "</model-customization-uuid>"
 		}
 
 		String sdncVNFParamsXml = ""
@@ -1026,7 +1039,7 @@
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 	   <sdncadapter:RequestHeader>
-				<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
 				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 				<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -1069,7 +1082,7 @@
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 	   <sdncadapter:RequestHeader>
-				<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
 				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 				<sdncadapter:SvcOperation>vf-module-topology-operation</sdncadapter:SvcOperation>
@@ -1210,7 +1223,7 @@
 		logDebug("VNF Adapter Response is: " + vnfResponse, isDebugLogEnabled)
 		utils.logAudit("createVnfAResponse is: \n"  + vnfResponse)
 
-		RollbackData rollbackData = execution.getVariable("RollbackData")
+		RollbackData rollbackData = execution.getVariable("rollbackData")
 		if(vnfResponse != null){
 
 			if(vnfResponse.contains("createVfModuleResponse")){
@@ -1273,7 +1286,7 @@
 		}
 
 		rollbackData.put("VFMODULE", "rollbackVnfAdapterCreate", "true")
-		execution.setVariable("RollbackData", rollbackData)
+		execution.setVariable("rollbackData", rollbackData)
 
 		}catch(BpmnError b){
 			throw b
@@ -1364,7 +1377,7 @@
 		String sdncResponse = response
 		if(execution.getVariable(Prefix + 'sdncResponseSuccess') == true){
 			logDebug("Received a Good Response from SDNC Adapter for " + method + " SDNC Call.  Response is: \n" + sdncResponse, isDebugLogEnabled)
-			RollbackData rollbackData = execution.getVariable("RollbackData")
+			RollbackData rollbackData = execution.getVariable("rollbackData")
 
 			if(method.equals("assign")){
 				rollbackData.put("VFMODULE", "rollbackSDNCRequestAssign", "true")
@@ -1373,7 +1386,7 @@
 			else if (method.equals("activate")) {
 				rollbackData.put("VFMODULE", "rollbackSDNCRequestActivate", "true")
 			}
-			execution.setVariable("RollbackData", rollbackData)
+			execution.setVariable("rollbackData", rollbackData)
 		}else{
 			logDebug("Received a BAD Response from SDNC Adapter for " + method + " SDNC Call.", isDebugLogEnabled)
 			throw new BpmnError("MSOWorkflowException")
@@ -1613,7 +1626,7 @@
 		   // get variables
 		   List fqdnList = execution.getVariable("DCVFM_contrailNetworkPolicyFqdnList")
 		   int fqdnCount = fqdnList.size()
-		   def rollbackData = execution.getVariable("RollbackData")
+		   def rollbackData = execution.getVariable("rollbackData")
 
 		   execution.setVariable("DCVFM_networkPolicyFqdnCount", fqdnCount)
 		   logDebug("DCVFM_networkPolicyFqdnCount - " + fqdnCount, isDebugLogEnabled)
@@ -1701,7 +1714,7 @@
 							   logDebug(" AddAAINetworkPolicy Success REST Response, , NetworkPolicy #" + counting + " : " + "\n" + aaiResponseAsStringPut, isDebugLogEnabled)
 							   rollbackData.put("VFMODULE", "rollbackCreateNetworkPoliciesAAI", "true")
 							   rollbackData.put("VFMODULE", "contrailNetworkPolicyFqdn" + i, fqdn)
-							   execution.setVariable("RollbackData", rollbackData)
+							   execution.setVariable("rollbackData", rollbackData)
 
 						   } else {
 						   		// aai all errors
@@ -1758,7 +1771,7 @@
 	   logDebug('Entered ' + method, isDebugLogEnabled)
 
 	   try {
-		   def rollbackData = execution.getVariable("RollbackData")
+		   def rollbackData = execution.getVariable("rollbackData")
 		   def vnfId = execution.getVariable('DCVFM_vnfId')
 		   def oamManagementV4Address = execution.getVariable("DCVFM_oamManagementV4Address")
 		   def oamManagementV6Address = execution.getVariable("DCVFM_oamManagementV6Address")
@@ -1839,6 +1852,47 @@
 		   exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in postProcessUpdateAAIGenericVnf(): ' + e.getMessage())
 	   }
    }
+   
+   public void preProcessRollback (Execution execution) {
+	   def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+	   utils.log("DEBUG"," ***** preProcessRollback ***** ", isDebugEnabled)
+	   try {
+		   
+		   Object workflowException = execution.getVariable("WorkflowException");
 
+		   if (workflowException instanceof WorkflowException) {
+			   utils.log("DEBUG", "Prev workflowException: " + workflowException.getErrorMessage(), isDebugEnabled)
+			   execution.setVariable("prevWorkflowException", workflowException);
+			   //execution.setVariable("WorkflowException", null);
+		   }
+	   } catch (BpmnError e) {
+		   utils.log("DEBUG", "BPMN Error during preProcessRollback", isDebugEnabled)
+	   } catch(Exception ex) {
+		   String msg = "Exception in preProcessRollback. " + ex.getMessage()
+		   utils.log("DEBUG", msg, isDebugEnabled)
+	   }
+	   utils.log("DEBUG"," *** Exit preProcessRollback *** ", isDebugEnabled)
+   }
+
+   public void postProcessRollback (Execution execution) {
+	   def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+	   utils.log("DEBUG"," ***** postProcessRollback ***** ", isDebugEnabled)
+	   String msg = ""
+	   try {
+		   Object workflowException = execution.getVariable("prevWorkflowException");
+		   if (workflowException instanceof WorkflowException) {
+			   utils.log("DEBUG", "Setting prevException to WorkflowException: ", isDebugEnabled)
+			   execution.setVariable("WorkflowException", workflowException);
+		   }
+		   execution.setVariable("rollbackData", null)
+	   } catch (BpmnError b) {
+		   utils.log("DEBUG", "BPMN Error during postProcessRollback", isDebugEnabled)
+		   throw b;
+	   } catch(Exception ex) {
+		   msg = "Exception in postProcessRollback. " + ex.getMessage()
+		   utils.log("DEBUG", msg, isDebugEnabled)
+	   }
+	   utils.log("DEBUG"," *** Exit postProcessRollback *** ", isDebugEnabled)
+   }
 
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleRollback.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleRollback.groovy
index af1161b..08f1f50 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleRollback.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleRollback.groovy
@@ -47,71 +47,96 @@
 
 		initProcessVariables(execution)
 
-		def rollbackData = execution.getVariable("RollbackData")
-		String vnfId = rollbackData.get("VFMODULE", "vnfid")
-		execution.setVariable("DCVFMR_vnfId", vnfId)
-		String vfModuleId = rollbackData.get("VFMODULE", "vfmoduleid")
-		execution.setVariable("DCVFMR_vfModuleId", vfModuleId)
-		String source = rollbackData.get("VFMODULE", "source")
-		execution.setVariable("DCVFMR_source", source)
-		String serviceInstanceId = rollbackData.get("VFMODULE", "serviceInstanceId")
-		execution.setVariable("DCVFMR_serviceInstanceId", serviceInstanceId)
-		String serviceId = rollbackData.get("VFMODULE", "service-id")
-		execution.setVariable("DCVFMR_serviceId", serviceId)
-		String vnfType = rollbackData.get("VFMODULE", "vnftype")
-		execution.setVariable("DCVFMR_vnfType", vnfType)
-		String vnfName = rollbackData.get("VFMODULE", "vnfname")
-		execution.setVariable("DCVFMR_vnfName", vnfName)
-		String tenantId = rollbackData.get("VFMODULE", "tenantid")
-		execution.setVariable("DCVFMR_tenantId", tenantId)
-		String vfModuleName = rollbackData.get("VFMODULE", "vfmodulename")
-		execution.setVariable("DCVFMR_vfModuleName", vfModuleName)
-		String vfModuleModelName = rollbackData.get("VFMODULE", "vfmodulemodelname")
-		execution.setVariable("DCVFMR_vfModuleModelName", vfModuleModelName)
-		String cloudSiteId = rollbackData.get("VFMODULE", "aiccloudregion")
-		execution.setVariable("DCVFMR_cloudSiteId", cloudSiteId)
-		String heatStackId = rollbackData.get("VFMODULE", "heatstackid")
-		execution.setVariable("DCVFMR_heatStackId", heatStackId)
-		String requestId = rollbackData.get("VFMODULE", "attmsorequestid")
-		execution.setVariable("DCVFMR_requestId", requestId)
-		List createdNetworkPolicyFqdnList = []
-		int i = 0
-		while (i < 100) {
-			String fqdn = rollbackData.get("VFMODULE", "contrailNetworkPolicyFqdn" + i)
-			if (fqdn == null) {
-				break
+		try {
+
+			execution.setVariable("rolledBack", null)
+			execution.setVariable("rollbackError", null)
+			
+			def rollbackData = execution.getVariable("rollbackData")
+			utils.log("DEBUG", "RollbackData:" + rollbackData, isDebugEnabled)
+			
+			if (rollbackData != null) {
+			String vnfId = rollbackData.get("VFMODULE", "vnfid")
+			execution.setVariable("DCVFMR_vnfId", vnfId)
+			String vfModuleId = rollbackData.get("VFMODULE", "vfmoduleid")
+			execution.setVariable("DCVFMR_vfModuleId", vfModuleId)
+			String source = rollbackData.get("VFMODULE", "source")
+			execution.setVariable("DCVFMR_source", source)
+			String serviceInstanceId = rollbackData.get("VFMODULE", "serviceInstanceId")
+			execution.setVariable("DCVFMR_serviceInstanceId", serviceInstanceId)
+			String serviceId = rollbackData.get("VFMODULE", "service-id")
+			execution.setVariable("DCVFMR_serviceId", serviceId)
+			String vnfType = rollbackData.get("VFMODULE", "vnftype")
+			execution.setVariable("DCVFMR_vnfType", vnfType)
+			String vnfName = rollbackData.get("VFMODULE", "vnfname")
+			execution.setVariable("DCVFMR_vnfName", vnfName)
+			String tenantId = rollbackData.get("VFMODULE", "tenantid")
+			execution.setVariable("DCVFMR_tenantId", tenantId)
+			String vfModuleName = rollbackData.get("VFMODULE", "vfmodulename")
+			execution.setVariable("DCVFMR_vfModuleName", vfModuleName)
+			String vfModuleModelName = rollbackData.get("VFMODULE", "vfmodulemodelname")
+			execution.setVariable("DCVFMR_vfModuleModelName", vfModuleModelName)
+			String cloudSiteId = rollbackData.get("VFMODULE", "aiccloudregion")
+			execution.setVariable("DCVFMR_cloudSiteId", cloudSiteId)
+			String heatStackId = rollbackData.get("VFMODULE", "heatstackid")
+			execution.setVariable("DCVFMR_heatStackId", heatStackId)
+			String requestId = rollbackData.get("VFMODULE", "msorequestid")
+			execution.setVariable("DCVFMR_requestId", requestId)
+			// Set mso-request-id to request-id for VNF Adapter interface
+			execution.setVariable("mso-request-id", requestId)
+			List createdNetworkPolicyFqdnList = []
+			int i = 0
+			while (i < 100) {
+				String fqdn = rollbackData.get("VFMODULE", "contrailNetworkPolicyFqdn" + i)
+				if (fqdn == null) {
+					break
+				}
+				createdNetworkPolicyFqdnList.add(fqdn)
+				logDebug("got fqdn # " + i + ": " + fqdn, isDebugEnabled)
+				i = i + 1
+	
 			}
-			createdNetworkPolicyFqdnList.add(fqdn)
-			logDebug("got fqdn # " + i + ": " + fqdn, isDebugEnabled)
-			i = i + 1
-
+	
+			execution.setVariable("DCVFMR_createdNetworkPolicyFqdnList", createdNetworkPolicyFqdnList)
+			String oamManagementV4Address = rollbackData.get("VFMODULE", "oamManagementV4Address")
+			execution.setVariable("DCVFMR_oamManagementV4Address", oamManagementV4Address)
+			String oamManagementV6Address = rollbackData.get("VFMODULE", "oamManagementV6Address")
+			execution.setVariable("DCVFMR_oamManagementV6Address", oamManagementV6Address)
+			//String serviceInstanceId = rollbackData.get("VFMODULE", "msoserviceinstanceid")
+			//execution.setVariable("DCVFMR_serviceInstanceId", serviceInstanceId)
+			execution.setVariable("DCVFMR_rollbackPrepareUpdateVfModule", rollbackData.get("VFMODULE", "rollbackPrepareUpdateVfModule"))
+			execution.setVariable("DCVFMR_rollbackUpdateAAIVfModule", rollbackData.get("VFMODULE", "rollbackUpdateAAIVfModule"))
+			execution.setVariable("DCVFMR_rollbackVnfAdapterCreate", rollbackData.get("VFMODULE", "rollbackVnfAdapterCreate"))
+			execution.setVariable("DCVFMR_rollbackSDNCRequestAssign", rollbackData.get("VFMODULE", "rollbackSDNCRequestAssign"))
+			execution.setVariable("DCVFMR_rollbackSDNCRequestActivate", rollbackData.get("VFMODULE", "rollbackSDNCRequestActivate"))
+			execution.setVariable("DCVFMR_rollbackCreateAAIVfModule", rollbackData.get("VFMODULE", "rollbackCreateAAIVfModule"))
+			execution.setVariable("DCVFMR_rollbackCreateNetworkPoliciesAAI", rollbackData.get("VFMODULE", "rollbackCreateNetworkPoliciesAAI"))
+			execution.setVariable("DCVFMR_rollbackUpdateVnfAAI", rollbackData.get("VFMODULE", "rollbackUpdateVnfAAI"))
+	
+			// formulate the request for PrepareUpdateAAIVfModule
+			String request = """<PrepareUpdateAAIVfModuleRequest>
+									<vnf-id>${vnfId}</vnf-id>
+									<vf-module-id>${vfModuleId}</vf-module-id>
+									<orchestration-status>pending-delete</orchestration-status>
+								</PrepareUpdateAAIVfModuleRequest>""" as String
+			utils.log("DEBUG", "PrepareUpdateAAIVfModuleRequest :" + request, isDebugEnabled)
+			utils.logAudit("DoCreateVfModuleRollback PrepareUpdateAAIVfModule Request: " + request)
+			execution.setVariable("PrepareUpdateAAIVfModuleRequest", request)
+		} else {
+			execution.setVariable("skipRollback", true)
 		}
-
-		execution.setVariable("DCVFMR_createdNetworkPolicyFqdnList", createdNetworkPolicyFqdnList)
-		String oamManagementV4Address = rollbackData.get("VFMODULE", "oamManagementV4Address")
-		execution.setVariable("DCVFMR_oamManagementV4Address", oamManagementV4Address)
-		String oamManagementV6Address = rollbackData.get("VFMODULE", "oamManagementV6Address")
-		execution.setVariable("DCVFMR_oamManagementV6Address", oamManagementV6Address)
-		//String serviceInstanceId = rollbackData.get("VFMODULE", "attmsoserviceinstanceid")
-		//execution.setVariable("DCVFMR_serviceInstanceId", serviceInstanceId)
-		execution.setVariable("DCVFMR_rollbackPrepareUpdateVfModule", rollbackData.get("VFMODULE", "rollbackPrepareUpdateVfModule"))
-		execution.setVariable("DCVFMR_rollbackUpdateAAIVfModule", rollbackData.get("VFMODULE", "rollbackUpdateAAIVfModule"))
-		execution.setVariable("DCVFMR_rollbackVnfAdapterCreate", rollbackData.get("VFMODULE", "rollbackVnfAdapterCreate"))
-		execution.setVariable("DCVFMR_rollbackSDNCRequestAssign", rollbackData.get("VFMODULE", "rollbackSDNCRequestAssign"))
-		execution.setVariable("DCVFMR_rollbackSDNCRequestActivate", rollbackData.get("VFMODULE", "rollbackSDNCRequestActivate"))
-		execution.setVariable("DCVFMR_rollbackCreateAAIVfModule", rollbackData.get("VFMODULE", "rollbackCreateAAIVfModule"))
-		execution.setVariable("DCVFMR_rollbackCreateNetworkPoliciesAAI", rollbackData.get("VFMODULE", "rollbackCreateNetworkPoliciesAAI"))
-		execution.setVariable("DCVFMR_rollbackUpdateVnfAAI", rollbackData.get("VFMODULE", "rollbackUpdateVnfAAI"))
-
-		// formulate the request for PrepareUpdateAAIVfModule
-		String request = """<PrepareUpdateAAIVfModuleRequest>
-								<vnf-id>${vnfId}</vnf-id>
-								<vf-module-id>${vfModuleId}</vf-module-id>
-								<orchestration-status>pending-delete</orchestration-status>
-							</PrepareUpdateAAIVfModuleRequest>""" as String
-		utils.log("DEBUG", "PrepareUpdateAAIVfModuleRequest :" + request, isDebugEnabled)
-		utils.logAudit("DoCreateVfModuleRollback PrepareUpdateAAIVfModule Request: " + request)
-		execution.setVariable("PrepareUpdateAAIVfModuleRequest", request)
+		
+		if (execution.getVariable("disableRollback").equals("true" )) {
+			execution.setVariable("skipRollback", true)
+		}
+		
+		} catch (BpmnError e) {
+			throw e;
+		} catch (Exception ex){
+			def msg = "Exception in DoCreateVfModuleRollback preProcessRequest " + ex.getMessage()
+			utils.log("DEBUG", msg, isDebugEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
+		}
 	}
 
 	// build a SDNC vnf-topology-operation request for the specified action
@@ -120,6 +145,11 @@
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 		String srvInstId = execution.getVariable("DCVFMR_serviceInstanceId")
 
+		String uuid = execution.getVariable('testReqId') // for junits
+		if(uuid==null){
+			uuid = execution.getVariable("DCVFMR_requestId") + "-" +  	System.currentTimeMillis()
+		}
+		
 		def callbackUrl = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
 
 		String source = execution.getVariable("DCVFMR_source")
@@ -163,7 +193,7 @@
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 						      <sdncadapter:RequestHeader>
-						         <sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+						         <sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 						         <sdncadapter:SvcInstanceId>${vfModuleId}</sdncadapter:SvcInstanceId>
 						         <sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 						         <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -202,6 +232,112 @@
 		execution.setVariable("sdncAdapterWorkflowRequest", request)
 	}
 
+	public void preProcessSDNCDeactivateRequest(Execution execution){
+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
+		execution.setVariable("prefix", Prefix)
+		logDebug(" ======== STARTED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)
+		
+		def serviceInstanceId = execution.getVariable("DCVFMR_serviceInstanceId")
+	
+		try{
+			//Build SDNC Request
+			
+			String deactivateSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "deactivate")
+	
+			deactivateSDNCRequest = utils.formatXml(deactivateSDNCRequest)
+			execution.setVariable("DCVFMR_deactivateSDNCRequest", deactivateSDNCRequest)
+			logDebug("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest, isDebugLogEnabled)
+			utils.logAudit("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest)
+	
+		}catch(Exception e){
+			utils.log("ERROR", "Exception Occured Processing preProcessSDNCDeactivateRequest. Exception is:\n" + e, isDebugLogEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessSDNCDeactivateRequest Method:\n" + e.getMessage())
+		}
+		logDebug("======== COMPLETED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)
+	}
+
+	public void preProcessSDNCUnassignRequest(Execution execution) {
+		def method = getClass().getSimpleName() + '.preProcessSDNCUnassignRequest(' +
+			'execution=' + execution.getId() +
+			')'
+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
+		logDebug('Entered ' + method, isDebugLogEnabled)
+		execution.setVariable("prefix", Prefix)
+		logDebug(" ======== STARTED preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)
+		try{
+			String serviceInstanceId = execution.getVariable("DCVFMR_serviceInstanceId")
+	
+			String unassignSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "unassign")
+	
+			execution.setVariable("DCVFMR_unassignSDNCRequest", unassignSDNCRequest)
+			logDebug("Outgoing UnassignSDNCRequest is: \n" + unassignSDNCRequest, isDebugLogEnabled)
+			utils.logAudit("Outgoing UnassignSDNCRequest is: \n"  + unassignSDNCRequest)
+	
+		}catch(Exception e){
+			log.debug("Exception Occured Processing preProcessSDNCUnassignRequest. Exception is:\n" + e, isDebugLogEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during  preProcessSDNCUnassignRequest Method:\n" + e.getMessage())
+		}
+		logDebug("======== COMPLETED  preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)
+	}
+
+	public String buildSDNCRequest(Execution execution, String svcInstId, String action){
+	
+			String uuid = execution.getVariable('testReqId') // for junits
+			if(uuid==null){
+				uuid = execution.getVariable("DCVFMR_requestId") + "-" +  	System.currentTimeMillis()
+			}
+			def callbackURL = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
+			def requestId = execution.getVariable("DCVFMR_requestId")
+			def serviceId = execution.getVariable("DCVFMR_serviceId")
+			def serviceInstanceId = execution.getVariable("DCVFMR_serviceInstanceId")
+			def vfModuleId = execution.getVariable("DCVFMR_vfModuleId")
+			def source = execution.getVariable("DCVFMR_source")
+			def vnfId = execution.getVariable("DCVFMR_vnfId")
+				
+			def sdncVersion = execution.getVariable("sdncVersion")
+			
+			String sdncRequest =
+			"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"
+													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
+													xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">
+	   <sdncadapter:RequestHeader>
+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
+				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
+				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
+				<sdncadapter:SvcOperation>vf-module-topology-operation</sdncadapter:SvcOperation>
+				<sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>
+				<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>
+		</sdncadapter:RequestHeader>
+	<sdncadapterworkflow:SDNCRequestData>
+		<request-information>
+			<request-id>${requestId}</request-id>
+			<request-action>DeleteVfModuleInstance</request-action>
+			<source>${source}</source>
+			<notification-url/>
+			<order-number/>
+			<order-version/>
+		</request-information>
+		<service-information>
+			<service-id/>
+			<subscription-service-type/>			
+			<service-instance-id>${serviceInstanceId}</service-instance-id>
+			<global-customer-id/>
+		</service-information>
+		<vnf-information>
+			<vnf-id>${vnfId}</vnf-id>
+			<vnf-type/>			
+		</vnf-information>
+		<vf-module-information>
+			<vf-module-id>${vfModuleId}</vf-module-id>
+		</vf-module-information>
+		<vf-module-request-input/>		
+	</sdncadapterworkflow:SDNCRequestData>
+	</sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
+	
+		utils.logAudit("sdncRequest:  " + sdncRequest)
+		return sdncRequest
+	}
+	
 	// parse the incoming DELETE_VF_MODULE request
 	// and formulate the outgoing VnfAdapterDeleteV1 request
 	public void prepVNFAdapterRequest(Execution execution) {
@@ -484,4 +620,39 @@
 			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in preProcessUpdateAAIGenericVnf((): ' + e.getMessage())
 		}
 	}
+	
+	public void setSuccessfulRollbackStatus (Execution execution){
+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
+		execution.setVariable("prefix", Prefix)
+		logDebug(" ======== STARTED setSuccessfulRollbackStatus ======== ", isDebugLogEnabled)
+	
+		try{
+			// Set rolledBack to true, rollbackError to null
+			execution.setVariable("rolledBack", true)
+			execution.setVariable("rollbackError", null)
+	
+		}catch(Exception e){
+			utils.log("ERROR", "Exception Occured Processing setSuccessfulRollbackStatus. Exception is:\n" + e, isDebugLogEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during setSuccessfulRollbackStatus Method:\n" + e.getMessage())
+		}
+		logDebug("======== COMPLETED setSuccessfulRollbackStatus ======== ", isDebugLogEnabled)
+	}
+	
+	public void setFailedRollbackStatus (Execution execution){
+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
+		execution.setVariable("prefix", Prefix)
+		logDebug(" ======== STARTED setFailedRollbackStatus ======== ", isDebugLogEnabled)
+	
+		try{
+			// Set rolledBack to false, rollbackError to actual value, rollbackData to null
+			execution.setVariable("rolledBack", false)
+			execution.setVariable("rollbackError", 'Caught exception in DoCreateVfModuleRollback')
+			execution.setVariable("rollbackData", null)
+	
+		}catch(Exception e){
+			utils.log("ERROR", "Exception Occured Processing setFailedRollbackStatus. Exception is:\n" + e, isDebugLogEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during setFailedRollbackStatus Method:\n" + e.getMessage())
+		}
+		logDebug("======== COMPLETED setFailedRollbackStatus ======== ", isDebugLogEnabled)
+	}
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeRollback.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeRollback.groovy
new file mode 100644
index 0000000..46b6dd8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeRollback.groovy
@@ -0,0 +1,222 @@
+/*

+ * © 2016 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.

+ */

+package org.openecomp.mso.bpmn.infrastructure.scripts;

+

+import groovy.xml.XmlUtil

+import groovy.json.*

+

+

+import java.util.UUID;

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.runtime.Execution

+import org.apache.commons.lang3.*

+import org.apache.commons.codec.binary.Base64;

+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.VidUtils

+import org.openecomp.mso.bpmn.core.RollbackData

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.rest.APIResponse

+import org.springframework.web.util.UriUtils

+

+

+public class DoCreateVfModuleVolumeRollback extends AbstractServiceTaskProcessor {

+	String Prefix="DCVFMODVOLRBK_"

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	JsonUtils jsonUtil = new JsonUtils()

+	VidUtils vidUtils = new VidUtils(this)

+

+	def className = getClass().getSimpleName()

+	

+	/**

+	 * This method is executed during the preProcessRequest task of the <class>DoCreateVfModuleVolumeRollback.bpmn</class> process.

+	 * @param execution

+	 */

+	public InitializeProcessVariables(Execution execution){

+		/* Initialize all the process variables in this block */

+

+		execution.setVariable(Prefix + "volumeGroupName", null)

+		execution.setVariable(Prefix + "lcpCloudRegionId", null)

+		execution.setVariable(Prefix + "rollbackVnfARequest", null)

+

+	}

+

+	// **************************************************

+	//     Pre or Prepare Request Section

+	// **************************************************

+	/**

+	 * This method is executed during the preProcessRequest task of the <class>DoCreateVfModuleVolumeRollback.bpmn</class> process.

+	 * @param execution

+	 */

+	public void preProcessRequest (Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+

+		InitializeProcessVariables(execution)

+//		rollbackData.put("DCVFMODULEVOL", "aiccloudregion", cloudSiteId)

+		RollbackData rollbackData = execution.getVariable("rollbackData")

+		

+//		String vnfId = rollbackData.get("DCVFMODULEVOL", "vnfid")

+//		execution.setVariable("DCVFMODVOLRBK_vnfId", vnfId)

+//		String vfModuleId = rollbackData.get("DCVFMODULEVOL", "vfmoduleid")

+//		execution.setVariable("DCVFMODVOLRBK_vfModuleId", vfModuleId)

+//		String source = rollbackData.get("DCVFMODULEVOL", "source")

+//		execution.setVariable("DCVFMODVOLRBK_source", source)

+//		String serviceInstanceId = rollbackData.get("DCVFMODULEVOL", "serviceInstanceId")

+//		execution.setVariable("DCVFMODVOLRBK_serviceInstanceId", serviceInstanceId)

+//		String serviceId = rollbackData.get("DCVFMODULEVOL", "service-id")

+//		execution.setVariable("DCVFMODVOLRBK_serviceId", serviceId)

+//		String vnfType = rollbackData.get("DCVFMODULEVOL", "vnftype")

+//		execution.setVariable("DCVFMODVOLRBK_vnfType", vnfType)

+//		String vnfName = rollbackData.get("DCVFMODULEVOL", "vnfname")

+//		execution.setVariable("DCVFMODVOLRBK_vnfName", vnfName)

+//		String tenantId = rollbackData.get("DCVFMODULEVOL", "tenantid")

+//		execution.setVariable("DCVFMODVOLRBK_tenantId", tenantId)

+//		String vfModuleName = rollbackData.get("DCVFMODULEVOL", "vfmodulename")

+//		execution.setVariable("DCVFMODVOLRBK_vfModuleName", vfModuleName)

+//		String vfModuleModelName = rollbackData.get("DCVFMODULEVOL", "vfmodulemodelname")

+//		execution.setVariable("DCVFMODVOLRBK_vfModuleModelName", vfModuleModelName)

+//		String cloudSiteId = rollbackData.get("DCVFMODULEVOL", "aiccloudregion")

+//		execution.setVariable("DCVFMODVOLRBK_cloudSiteId", cloudSiteId)

+//		String heatStackId = rollbackData.get("DCVFMODULEVOL", "heatstackid")

+//		execution.setVariable("DCVFMODVOLRBK_heatStackId", heatStackId)

+//		String requestId = rollbackData.get("DCVFMODULEVOL", "msorequestid")

+//		execution.setVariable("DCVFMODVOLRBK_requestId", requestId)

+		

+		String volumeGroupName = rollbackData.get("DCVFMODULEVOL", "volumeGroupName")

+		execution.setVariable("DCVFMODVOLRBK_volumeGroupName", volumeGroupName)

+

+		String lcpCloudRegionId = rollbackData.get("DCVFMODULEVOL", "aiccloudregion")

+		execution.setVariable("DCVFMODVOLRBK_lcpCloudRegionId", lcpCloudRegionId)

+		

+		execution.setVariable("DCVFMODVOLRBK_rollbackVnfARequest", rollbackData.get("DCVFMODULEVOL", "rollbackVnfARequest"))

+		execution.setVariable("DCVFMODVOLRBK_backoutOnFailure", rollbackData.get("DCVFMODULEVOL", "backoutOnFailure"))

+		execution.setVariable("DCVFMODVOLRBK_isCreateVnfRollbackNeeded", rollbackData.get("DCVFMODULEVOL", "isCreateVnfRollbackNeeded"))

+		execution.setVariable("DCVFMODVOLRBK_isAAIRollbackNeeded", rollbackData.get("DCVFMODULEVOL", "isAAIRollbackNeeded"))

+

+	}

+	

+	/**

+	 * Query AAI volume group by name

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTQueryAAIVolGrpName(Execution execution, isDebugEnabled) {

+		

+		def volumeGroupName = execution.getVariable('DCVFMODVOLRBK_volumeGroupName')

+		def cloudRegion = execution.getVariable('DCVFMODVOLRBK_lcpCloudRegionId')

+		

+		// This is for stub testing

+		def testVolumeGroupName = execution.getVariable('test-volume-group-name')

+		if (testVolumeGroupName != null && testVolumeGroupName.length() > 0) {

+			volumeGroupName = testVolumeGroupName

+		}

+		

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String queryAAIVolumeNameRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups" + "?volume-group-name=" + UriUtils.encode(volumeGroupName, 'UTF-8')

+

+		utils.logAudit('Query AAI volume group by name: ' + queryAAIVolumeNameRequest)

+		

+		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIVolumeNameRequest)

+		

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		//aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+		

+		utils.logAudit("AAI query volume group by name return code: " + returnCode)

+		utils.logAudit("AAI query volume group by name response: " + aaiResponseAsString)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		execution.setVariable(prefix+"queryAAIVolGrpNameResponse", aaiResponseAsString)

+		execution.setVariable(prefix+'AaiReturnCode', returnCode)

+

+		if (returnCode=='200') {

+			// @TODO: verify error code

+			// @TODO: create class of literals representing error codes

+			execution.setVariable(prefix+'queryAAIVolGrpNameResponse', aaiResponseAsString)

+			utils.log("DEBUG", "Volume Group Name $volumeGroupName exists in AAI.", isDebugEnabled)

+		} else {

+			if (returnCode=='404') {

+				utils.log("DEBUG", "Volume Group Name $volumeGroupName does not exist in AAI.", isDebugEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $volumeGroupName not found in AAI. Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+	

+	

+	

+	public void callRESTDeleteAAIVolumeGroup(Execution execution, isDebugEnabled) {

+

+		callRESTQueryAAIVolGrpName(execution, isDebugEnabled)

+		

+		def queryAaiVolumeGroupResponse = execution.getVariable(prefix+'queryAAIVolGrpNameResponse')

+		

+		def volumeGroupId = utils.getNodeText(queryAaiVolumeGroupResponse, "volume-group-id")

+		def resourceVersion = utils.getNodeText(queryAaiVolumeGroupResponse, "resource-version")

+

+		def cloudRegion = execution.getVariable("DCVFMODVOLRBK_lcpCloudRegionId")

+		

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String deleteAAIVolumeGrpIdRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group" + '/' +  volumeGroupId + "?resource-version=" + UriUtils.encode(resourceVersion, "UTF-8")

+

+		utils.logAudit('Delete AAI volume group : ' + deleteAAIVolumeGrpIdRequest)

+		

+		APIResponse response = aaiUtil.executeAAIDeleteCall(execution, deleteAAIVolumeGrpIdRequest)

+		

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		//aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+		

+		utils.logAudit("AAI delete volume group return code: " + returnCode)

+		utils.logAudit("AAI delete volume group response: " + aaiResponseAsString)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		def volumeGroupNameFound = prefix+'volumeGroupNameFound'

+		if (returnCode=='200' || returnCode=='204' ) {

+			utils.log("DEBUG", "Volume group $volumeGroupId deleted.", isDebugEnabled)

+		} else {

+			if (returnCode=='404') {

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $volumeGroupId not found for delete in AAI Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+

+	// *******************************

+	//     Build Error Section

+	// *******************************

+

+

+	

+	public void processJavaException(Execution execution){

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix",Prefix)

+		

+		try{

+			utils.log("DEBUG", "Caught a Java Exception in " + Prefix, isDebugEnabled)

+			utils.log("DEBUG", "Started processJavaException Method", isDebugEnabled)

+			utils.log("DEBUG", "Variables List: " + execution.getVariables(), isDebugEnabled)

+			execution.setVariable("UnexpectedError", "Caught a Java Lang Exception - " + Prefix)  // Adding this line temporarily until this flows error handling gets updated

+			exceptionUtil.buildWorkflowException(execution, 500, "Caught a Java Lang Exception")

+			

+		}catch(Exception e){

+			utils.log("DEBUG", "Caught Exception during processJavaException Method: " + e, isDebugEnabled)

+			execution.setVariable("UnexpectedError", "Exception in processJavaException method - " + Prefix)  // Adding this line temporarily until this flows error handling gets updated

+			exceptionUtil.buildWorkflowException(execution, 500, "Exception in processJavaException method" + Prefix)

+		}

+		utils.log("DEBUG", "Completed processJavaException Method in " + Prefix, isDebugEnabled)

+	}

+

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1.groovy
deleted file mode 100644
index 8e54024..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1.groovy
+++ /dev/null
@@ -1,657 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * OPENECOMP - MSO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.bpmn.infrastructure.scripts
-
-import static org.camunda.spin.Spin.XML
-
-import org.apache.commons.lang3.*
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution
-import org.openecomp.mso.bpmn.common.scripts.AaiUtil
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
-import org.openecomp.mso.bpmn.common.scripts.NetworkUtils
-import org.openecomp.mso.bpmn.common.scripts.VfModuleBase
-import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.rest.APIResponse
-import org.springframework.web.util.UriUtils
-
-class DoCreateVfModuleVolumeV1 extends VfModuleBase {
-	
-	String prefix='DCVFMODVOLV1_'
-	
-	
-	/**
-	 * Perform initial processing, such as request validation, initialization of variables, etc.
-	 * * @param execution
-	 */
-	public void preProcessRequest (Execution execution) {
-		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
-		preProcessRequest(execution, isDebugEnabled)
-	}
-	
-	/**
-	 * Perform initial processing, such as request validation, initialization of variables, etc.
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void preProcessRequest (Execution execution, isDebugEnabled) {
-
-		execution.setVariable("prefix",prefix)
-		execution.setVariable(prefix+'SuccessIndicator', false)
-		
-	
-		// INPUT: DoCreateVfModuleVolumeV1Request, mso-request-id, volume-group-id, vnf-id, is-vid-request
-		// OUTPUT: DCVFMODVOLV1_SuccessIndicator. WorkflowException
-		
-		def volumeRequest  = getVariable(execution, 'DoCreateVfModuleVolumeV1Request')
-		if (volumeRequest != null) {
-			execution.setVariable(prefix+'Request', volumeRequest)
-		} else {	
-			volumeRequest  = getVariable(execution, prefix+'Request')
-			if (volumeRequest == null) {
-				(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, 'DoCreateVfModuleVolumeV1 received null request.')
-			}
-		}
-		
-		def vnfId = execution.getVariable('vnf-id')
-		if (vnfId == null) {
-			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, 'DoCreateVfModuleVolumeV1 received null vnf-id.')
-		}
-		
-		def volumeGroupId = execution.getVariable('volume-group-id')
-		if (volumeGroupId == null) {
-			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, 'DoCreateVfModuleVolumeV1 received null volume-group-id.')
-		}
-		
-		def requestId = execution.getVariable("mso-request-id")
-		if (requestId == null || requestId == "") {
-			requestId = utils.getNodeText1(volumeRequest, "request-id")
-		}
-
-		//def serviceId = execution.getVariable("mso-service-instance-id")
-		//if (serviceId == null || serviceId == "") {
-		def	serviceId = utils.getNodeText1(volumeRequest, "service-id")
-		//}
-		
-		def source = utils.getNodeText1(volumeRequest, "source")
-		
-		execution.setVariable(prefix+'requestId', requestId)
-		execution.setVariable(prefix+'serviceId', serviceId)
-		execution.setVariable(prefix+'source', source)
-		
-		// @TODO: for better tracking of logs, should we strip all new lines in the log message?
-		utils.logAudit('Incoming request: ' + volumeRequest)
-
-		// Rollback settings
-		NetworkUtils networkUtils = new NetworkUtils()
-		def rollbackEnabled = networkUtils.isRollbackEnabled(execution,volumeRequest)
-		execution.setVariable(prefix+"rollbackEnabled", rollbackEnabled)
-		utils.log("DEBUG", 'rollbackEnabled: ' + rollbackEnabled, isDebugEnabled)
-		
-	}
-	
-
-	/**
-	 * Get cloud region
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void callRESTQueryAAICloudRegion (Execution execution, isDebugEnabled) {
-		
-		def request = execution.getVariable(prefix+'Request')
-		def cloudRegion = utils.getNodeText1(request, "aic-cloud-region")
-		utils.log("DEBUG", 'Request cloud region is: ' + cloudRegion, isDebugEnabled)
-
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)
-		String queryCloudRegionRequest = aaiEndpoint + '/' + cloudRegion
-		
-		utils.logAudit(queryCloudRegionRequest)
-
-		cloudRegion = aaiUtil.getAAICloudReqion(execution,  queryCloudRegionRequest, "PO", cloudRegion)
-
-		if ((cloudRegion != "ERROR")) {
-			if(execution.getVariable(prefix+"queryCloudRegionReturnCode") == "404"){
-				cloudRegion = "AAIAIC25"
-			}
-			execution.setVariable(prefix+"aicCloudRegion", cloudRegion)
-			utils.log("DEBUG", "AIC Cloud Region: " + cloudRegion, isDebugEnabled)
-		} else {
-			String errorMessage = "AAI Query Cloud Region Unsuccessful. Return Code: " + execution.getVariable(prefix+"queryCloudRegionReturnCode")
-			utils.log("DEBUG", errorMessage, isDebugEnabled)
-			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, errorMessage)
-		}
-	}
-	
-
-	/**
-	 * Query AAI volume group by name
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void callRESTQueryAAIVolGrpName(Execution execution, isDebugEnabled) {
-
-		def volumeRequest = execution.getVariable(prefix+'Request')
-		def volumeGroupName = utils.getNodeText(volumeRequest, "volume-group-name")
-		def cloudRegion = execution.getVariable(prefix+"aicCloudRegion")
-		
-		// Save volume group name
-		execution.setVariable(prefix+'volumeGroupName', volumeGroupName)
-		
-		// This is for stub testing
-		def testVolumeGroupName = execution.getVariable('test-volume-group-name')
-		if (testVolumeGroupName != null && testVolumeGroupName.length() > 0) {
-			volumeGroupName = testVolumeGroupName
-			//reset to null
-			execution.setVariable('test-volume-group-name', null)
-		}
-		
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)
-		String queryAAIVolumeNameRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups" + "?volume-group-name=" + UriUtils.encode(volumeGroupName, 'UTF-8')
-
-		utils.logAudit('Query AAI volume group by name: ' + queryAAIVolumeNameRequest)
-		
-		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIVolumeNameRequest)
-		
-		String returnCode = response.getStatusCode()
-		String aaiResponseAsString = response.getResponseBodyAsString()
-		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)
-		
-		utils.logAudit("AAI query volume group by name return code: " + returnCode)
-		utils.logAudit("AAI query volume group by name response: " + aaiResponseAsString)
-
-		ExceptionUtil exceptionUtil = new ExceptionUtil()
-
-		execution.setVariable(prefix+"queryAAIVolGrpNameResponse", aaiResponseAsString)
-		execution.setVariable(prefix+'AaiReturnCode', returnCode)
-
-		if (returnCode=='200') {
-			// @TODO: verify error code
-			// @TODO: create class of literals representing error codes
-			execution.setVariable(prefix+'queryAAIVolGrpNameResponse', aaiResponseAsString)
-			utils.log("DEBUG", "Volume Group Name $volumeGroupName exists in AAI.", isDebugEnabled)
-		} else {
-			if (returnCode=='404') {
-				utils.log("DEBUG", "Volume Group Name $volumeGroupName does not exist in AAI.", isDebugEnabled)
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $volumeGroupName not found in AAI. Response code: 404")
-			} else {
-				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-				throw new BpmnError("MSOWorkflowException")
-			}
-		}
-	}
-	
-
-	/**
-	 * Create a WorkflowException 
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void buildWorkflowException(Execution execution, int errorCode, errorMessage, isDebugEnabled) {
-		utils.log("DEBUG", errorMessage, isDebugEnabled)
-		(new ExceptionUtil()).buildWorkflowException(execution, 2500, errorMessage)
-	}
-	
-
-	/**
-	 * Create a WorkflowException
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void handleError(Execution execution, isDebugEnabled) {
-		WorkflowException we = execution.getVariable('WorkflowException')
-		if (we == null) {
-			(new ExceptionUtil()).buildWorkflowException(execution, 2500, "Enexpected error encountered!")
-		}
-		throw new BpmnError("MSOWorkflowException")
-	}
-	
-	/**
-	 * Create volume group in AAI
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void callRESTCreateAAIVolGrpName(Execution execution, isDebugEnabled) {
-
-		def volumeRequest  = execution.getVariable(prefix+'Request')
-		def vnfId = execution.getVariable('vnf-id')
-		def volumeName = utils.getNodeText(volumeRequest, "volume-group-name")
-		def modelCustomizationId = getNodeTextForce(volumeRequest, "model-customization-id")
-		
-		def cloudRegion = execution.getVariable(prefix+"aicCloudRegion")
-		def groupId = execution.getVariable('volume-group-id')
-		utils.log("DEBUG", "volume group id: " + groupId, isDebugEnabled)
-		
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)
-		String createAAIVolumeGrpNameUrlRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group/" + UriUtils.encode(groupId, "UTF-8")
-		
-		String namespace =  aaiUtil.getNamespaceFromUri(aaiUtil.getCloudInfrastructureCloudRegionUri(execution))
-		utils.log("DEBUG", "AAI namespace is: " + namespace, isDebugEnabled)
-		
-		utils.logAudit(createAAIVolumeGrpNameUrlRequest)
-		
-		//Prepare payload (PUT)
-		def vnfType = utils.getNodeText(volumeRequest, "vnf-type")
-		def tenantId = utils.getNodeText(volumeRequest, "tenant-id")
-		
-		NetworkUtils networkUtils = new NetworkUtils()
-		String payload = networkUtils.createCloudRegionVolumeRequest(groupId, volumeName, vnfType, vnfId, tenantId, cloudRegion, namespace, modelCustomizationId)
-		String payloadXml = utils.formatXml(payload)
-		utils.logAudit(payloadXml)
-		
-		APIResponse response = aaiUtil.executeAAIPutCall(execution, createAAIVolumeGrpNameUrlRequest, payloadXml)
-				
-		String returnCode = response.getStatusCode()
-		String aaiResponseAsString = response.getResponseBodyAsString()
-		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)
-		
-		utils.logAudit("AAI create volume group return code: " + returnCode)
-		utils.logAudit("AAI create volume group response: " + aaiResponseAsString)
-
-		execution.setVariable(prefix+"createAAIVolumeGrpNameReturnCode", returnCode)
-		execution.setVariable(prefix+"createAAIVolumeGrpNameResponse", aaiResponseAsString)
-
-		ExceptionUtil exceptionUtil = new ExceptionUtil()
-		
-		if (returnCode =='201') {
-			execution.setVariable(prefix+"isAAIRollbackNeeded", true)
-		} else {
-			execution.setVariable(prefix+"isErrorMessageException", true)
-			if (returnCode=='404') {
-				// @TODO: verify return code and make static LITERAL
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Unable to create volume group in AAI. Response code: 404")
-			} else {
-				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-				utils.log("DEBUG", " AAI Adapter Query Failed.  WorkflowException - " + "\n" + aWorkflowException, isDebugEnabled)
-				throw new BpmnError("MSOWorkflowException")
-			}
-		}
-	}
-
-	/**
-	 * Prepare VNF adapter create request XML
-	 * @param execution
-	 */
-	public void prepareVnfAdapterCreateRequest(Execution execution, isDebugEnabled) {
-		
-		
-		def volumeRequest  = execution.getVariable(prefix+'Request')
-		def requestId = execution.getVariable(prefix+'requestId')
-		def serviceId = execution.getVariable(prefix+'serviceId')
-		
-		def aaiGenericVnfResponse = execution.getVariable(prefix+'AAIQueryGenericVfnResponse')
-		def vnfId = utils.getNodeText1(aaiGenericVnfResponse, 'vnf-id')
-		def vnfName = utils.getNodeText1(aaiGenericVnfResponse, 'vnf-name')
-		def modelCustomizationId = getNodeTextForce(volumeRequest, "model-customization-id")
-				
-		String messageId = UUID.randomUUID()
-		utils.log("DEBUG", "messageId to be used is generated: " + messageId, isDebugEnabled)
-
-		// prepare vnf request for vnfAdapterCreateV1
-		def cloudSiteId = utils.getNodeText1(volumeRequest, 'aic-cloud-region')
-		def tenantId = utils.getNodeText1(volumeRequest, "tenant-id")
-		def vnfType = utils.getNodeText1(volumeRequest, "vnf-type")
-		def vnfVersion = utils.getNodeText1(volumeRequest, "asdc-service-model-version")
-		def vnfModuleType = utils.getNodeText1(volumeRequest, "vf-module-model-name")
-		def volumeGroupnName = utils.getNodeText1(volumeRequest, "volume-group-name")
-
-		def volumeParamsXml = utils.getNodeXml(volumeRequest, 'volume-params')
-		def volumeGroupParams = transformVolumeParamsToEntries(volumeParamsXml)
-
-		utils.log("DEBUG", "volumeGroupParams: "+ volumeGroupParams, isDebugEnabled)
-
-		String volumeGroupId = execution.getVariable('volume-group-id')
-		def notificationUrl = createCallbackURL(execution, "VNFAResponse", messageId) 
-		def useQualifiedHostName = execution.getVariable("URN_mso_use_qualified_host")
-		if ('true'.equals(useQualifiedHostName)) {
-				notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl)
-		}
-		utils.log("DEBUG", "CreateVfModuleVolume - notificationUrl: "+ notificationUrl, isDebugEnabled)
-		
-		def backoutOnFailure = execution.getVariable("DCVFMODVOLV1_rollbackEnabled")
-		utils.log("DEBUG", "backoutOnFailure: "+ backoutOnFailure, isDebugEnabled)
-		
-		// build request
-		String vnfSubCreateWorkflowRequest =
-		"""
-			<createVolumeGroupRequest>
-				<cloudSiteId>${cloudSiteId}</cloudSiteId>
-				<tenantId>${tenantId}</tenantId>
-				<vnfId>${vnfId}</vnfId>
-				<vnfName>${vnfName}</vnfName>
-				<volumeGroupId>${volumeGroupId}</volumeGroupId>
-				<volumeGroupName>${volumeGroupnName}</volumeGroupName>
-				<vnfType>${vnfType}</vnfType>
-				<vnfVersion>${vnfVersion}</vnfVersion>
-				<vfModuleType>${vnfModuleType}</vfModuleType>
-				<modelCustomizationUuid>${modelCustomizationId}</modelCustomizationUuid>
-				<volumeGroupParams>
-					<entry>
-						<key>vnf_id</key>
-						<value>${vnfId}</value>
-					</entry>
-					<entry>
-						<key>vnf_name</key>
-						<value>${vnfName}</value>
-					</entry>
-					<entry>
-						<key>vf_module_id</key>
-						<value>${volumeGroupId}</value>
-					</entry>
-					<entry>
-						<key>vf_module_name</key>
-						<value>${volumeGroupnName}</value>
-					</entry>
-					${volumeGroupParams}
-			    </volumeGroupParams>
-				<skipAAI>true</skipAAI>
-				<backout>${backoutOnFailure}</backout>
-				<failIfExists>true</failIfExists>
-			    <msoRequest>
-			        <requestId>${requestId}</requestId>
-			        <serviceInstanceId>${serviceId}</serviceInstanceId>
-			    </msoRequest>
-			    <messageId>${messageId}</messageId>
-			    <notificationUrl>${notificationUrl}</notificationUrl>
-			</createVolumeGroupRequest>
-		"""
-
-		String vnfSubCreateWorkflowRequestAsString = utils.formatXml(vnfSubCreateWorkflowRequest)
-		utils.logAudit(vnfSubCreateWorkflowRequestAsString)
-		utils.log('DEBUG', vnfSubCreateWorkflowRequestAsString, isDebugEnabled)
-		execution.setVariable(prefix+"createVnfARequest", vnfSubCreateWorkflowRequestAsString)
-		
-		// build rollback request for use later if needed
-		
-		String vnfSubRollbackWorkflowRequest =
-		"""<rollbackVolumeGroupRequest>
-				<cloudSiteId>${cloudSiteId}</cloudSiteId>
-				<tenantId>${tenantId}</tenantId>
-				<volumeGroupId>${volumeGroupId}</volumeGroupId>
-				<skipAAI>true</skipAAI>
-				<volumeGroupCreated>true</volumeGroupCreated>
-			    <msoRequest>
-			        <requestId>${requestId}</requestId>
-			        <serviceInstanceId>${serviceId}</serviceInstanceId>
-			    </msoRequest>
-			    <messageId>${messageId}</messageId>
-			    <notificationUrl>${notificationUrl}</notificationUrl>
-			</rollbackVolumeGroupRequest>"""
-
-		utils.log("DEBUG", "Sub Vnf flow rollback request: vnfSubRollbackWorkflowRequest " + "\n" + vnfSubRollbackWorkflowRequest, isDebugEnabled)
-		
-		String vnfSubRollbackWorkflowRequestAsString = utils.formatXml(vnfSubRollbackWorkflowRequest)
-		execution.setVariable(prefix+"rollbackVnfARequest", vnfSubRollbackWorkflowRequestAsString)
-	}
-
-	
-
-	/**
-	 * Update voulume group in AAI 
-	 * @TODO: Can we re-use the create method??
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void callRESTUpdateCreatedVolGrpName(Execution execution, isDebugEnabled) {
-		
-		// get variables
-		String requeryAAIVolGrpNameResponse = execution.getVariable(prefix+"queryAAIVolGrpNameResponse")
-		String volumeGroupId = utils.getNodeText(requeryAAIVolGrpNameResponse, "volume-group-id")
-		String modelCustomizationId = getNodeTextForce(requeryAAIVolGrpNameResponse, "vf-module-persona-model-customization-id")
-		String cloudRegion = execution.getVariable(prefix+"aicCloudRegion")
-		
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)
-		String updateAAIVolumeGroupUrlRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group/" + UriUtils.encode(volumeGroupId, 'UTF-8')
-		
-		String namespace =  aaiUtil.getNamespaceFromUri(aaiUtil.getCloudInfrastructureCloudRegionUri(execution))
-
-		utils.logAudit(updateAAIVolumeGroupUrlRequest)
-
-		//Prepare payload (PUT)
-		String createVnfAResponse = execution.getVariable(prefix+"createVnfAResponse")
-		
-		// @TODO: revisit
-		// if VID request createVnfresponse will be null, use vnf from JSON request
-		def vnfId = ""
-		if(createVnfAResponse == null || createVnfAResponse == "") {
-			vnfId = execution.getVariable(prefix+'vnfId')
-		}
-		else {
-			vnfId = utils.getNodeText(createVnfAResponse, "volumeGroupStackId")
-		}
-		
-		NetworkUtils networkUtils = new NetworkUtils()
-		String payload = networkUtils.updateCloudRegionVolumeRequest(requeryAAIVolGrpNameResponse, vnfId, namespace, modelCustomizationId)
-		String payloadXml = utils.formatXml(payload)
-		
-		//execution.setVariable(prefix+"updateCreatedAAIVolumeGrpNamePayloadRequest", payloadXml)
-		utils.logAudit(payload)
-		//utils.log("DEBUG", " 'payload' to Update Created VolumeGroupName - " + "\n" + payloadXml, isDebugEnabled)
-
-		APIResponse response = aaiUtil.executeAAIPutCall(execution, updateAAIVolumeGroupUrlRequest, payloadXml)
-		
-		String returnCode = response.getStatusCode()
-		String aaiResponseAsString = response.getResponseBodyAsString()
-		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)
-		
-		utils.logAudit("AAI create volume group return code: " + returnCode)
-		utils.logAudit("AAI create volume group response: " + aaiResponseAsString)
-
-		ExceptionUtil exceptionUtil = new ExceptionUtil()
-
-		if (returnCode =='200') {
-			execution.setVariable(prefix+"updateCreatedAAIVolumeGrpNameResponse", aaiResponseAsString)
-			execution.setVariable(prefix+"isPONR", true)
-		} else {
-			execution.setVariable(prefix+"isErrorMessageException", true)
-			if (returnCode=='404') {
-				// @TODO: verify return code and make static LITERAL
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Unable to update volume group in AAI. Response code: 404")
-			} else {
-				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-				utils.log("DEBUG", " AAI Adapter Query Failed.  WorkflowException - " + "\n" + aWorkflowException, isDebugEnabled)
-				throw new BpmnError("MSOWorkflowException")
-			}
-		}
-	}
-
-	
-	/**
-	 * Query AAI service instance
-	 * @param execution
-	 * @param isDebugEnabled
-	 */
-	public void callRESTQueryAAIGenericVnf(Execution execution, isDebugEnabled) {
-		
-		def request = execution.getVariable(prefix+"Request")
-		def vnfId = execution.getVariable('vnf-id')
-		
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getNetworkGenericVnfEndpoint(execution)
-		def String queryAAIRequest = aaiEndpoint + "/" + UriUtils.encode(vnfId, "UTF-8")
-		
-		utils.logAudit("AAI query generic vnf request: " + queryAAIRequest)
-		
-		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIRequest)
-		
-		String returnCode = response.getStatusCode()
-		String aaiResponseAsString = response.getResponseBodyAsString()
-		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)
-		
-		utils.logAudit("AAI query generic vnf return code: " + returnCode)
-		utils.logAudit("AAI query generic vnf response: " + aaiResponseAsString)
-
-		//utils.log("DEBUG", "AAI query generic vnf return code: " + returnCode, isDebugEnabled)
-		//utils.log("DEBUG", "AAI query generic vnf response: " + aaiResponseAsString, isDebugEnabled)
-		
-		ExceptionUtil exceptionUtil = new ExceptionUtil()
-		
-		if (returnCode=='200') {
-			utils.log("DEBUG", 'Generic vnf ' + vnfId + ' found in AAI.', isDebugEnabled)
-			execution.setVariable(prefix+'AAIQueryGenericVfnResponse', aaiResponseAsString)
-		} else {
-			if (returnCode=='404') {
-				def message = 'Generic vnf ' + vnfId + ' was not found in AAI. Return code: 404.'
-				utils.log("DEBUG", message, isDebugEnabled)
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, message)
-			} else {
-				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-				throw new BpmnError("MSOWorkflowException")
-			}
-		}
-	}
-
-	public void callRESTDeleteAAIVolumeGroup(Execution execution, isDebugEnabled) {
-
-		callRESTQueryAAIVolGrpName(execution, isDebugEnabled)
-		
-		def queryAaiVolumeGroupResponse = execution.getVariable(prefix+'queryAAIVolGrpNameResponse')
-		
-		def volumeGroupId = utils.getNodeText(queryAaiVolumeGroupResponse, "volume-group-id")
-		def resourceVersion = utils.getNodeText(queryAaiVolumeGroupResponse, "resource-version")
-
-		def cloudRegion = execution.getVariable(prefix+"aicCloudRegion")
-		
-		AaiUtil aaiUtil = new AaiUtil(this)
-		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)
-		String deleteAAIVolumeGrpIdRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group" + '/' +  volumeGroupId + "?resource-version=" + UriUtils.encode(resourceVersion, "UTF-8")
-
-		utils.logAudit('Delete AAI volume group : ' + deleteAAIVolumeGrpIdRequest)
-		
-		APIResponse response = aaiUtil.executeAAIDeleteCall(execution, deleteAAIVolumeGrpIdRequest)
-		
-		String returnCode = response.getStatusCode()
-		String aaiResponseAsString = response.getResponseBodyAsString()
-		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)
-		
-		utils.logAudit("AAI delete volume group return code: " + returnCode)
-		utils.logAudit("AAI delete volume group response: " + aaiResponseAsString)
-
-		ExceptionUtil exceptionUtil = new ExceptionUtil()
-
-		def volumeGroupNameFound = prefix+'volumeGroupNameFound'
-		if (returnCode=='200' || returnCode=='204' ) {
-			utils.log("DEBUG", "Volume group $volumeGroupId deleted.", isDebugEnabled)
-		} else {
-			if (returnCode=='404') {
-				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $volumeGroupId not found for delete in AAI Response code: 404")
-			} else {
-				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)
-				throw new BpmnError("MSOWorkflowException")
-			}
-		}
-	}
-
-	
-	
-	
-	
-	public void prepareSuccessDBRequest(Execution execution, isDebugEnabled) {
-		String requestId = execution.getVariable(prefix+'requestId')
-		String dbVnfOutputs = execution.getVariable(prefix+'volumeOutputs')
-		prepareDBRequest(execution, requestId, "VolumeGroup successfully created.", "COMPLETED", "100", dbVnfOutputs, isDebugEnabled)
-	}
-	
-	public void prepareFailDbRequest(Execution execution, isDebugEnabled) {
-		
-		WorkflowException we = execution.getVariable("WorkflowException")
-		
-		String requestId = execution.getVariable(prefix+'requestId')
-		String dbVnfOutputs = execution.getVariable(prefix+'volumeOutputs')
-		prepareDBRequest(execution, requestId, we.getErrorMessage(), "FAILURE", "", dbVnfOutputs, isDebugEnabled)
-
-	}
-	
-	
-	/**
-	 * Prepare Infra DB XML Request 
-	 * @param execution
-	 */
-	public void prepareDBRequest (Execution execution, String requestId, String statusMessage, String requestStatus, String progress, String dbVnfOutputs, isDebugEnabled) {
-		
-		String dbRequest =
-		"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-			<soapenv:Header/>
-			<soapenv:Body>
-				<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
-					<requestId>${requestId}</requestId>
-					<lastModifiedBy>BPMN</lastModifiedBy>
-					<statusMessage>${statusMessage}</statusMessage>
-					<responseBody></responseBody>
-					<requestStatus>${requestStatus}</requestStatus>
-					<progress>${progress}</progress>
-					<vnfOutputs>${dbVnfOutputs}</vnfOutputs>
-				</ns:updateInfraRequest>
-		   	</soapenv:Body>
-		   </soapenv:Envelope>"""
-
-	   utils.log("DEBUG", " DB Adapter Request - " + "\n" + dbRequest, isDebugEnabled)
-	   String buildDeleteDBRequestAsString = utils.formatXml(dbRequest)
-	   
-	   execution.setVariable(prefix+"createDBRequest", buildDeleteDBRequestAsString)
-	   
-	   utils.logAudit(buildDeleteDBRequestAsString)
-	 }
-
-
-
-	
-	public void postProcessResponse (Execution execution, isDebugEnabled) {
-
-		String dbReturnCode = execution.getVariable(prefix+"dbReturnCode")
-		utils.log("DEBUG", "DB Update Response Code  : " + dbReturnCode, isDebugEnabled)
-		
-		String createDBResponse =  execution.getVariable(prefix+"createDBResponse")
-		utils.logAudit(createDBResponse)
-
-		String source = execution.getVariable(prefix+"source")
-		String requestId = execution.getVariable(prefix+'requestId')
-
-		String msoCompletionRequest =
-			"""<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
-							xmlns:ns="http://org.openecomp/mso/request/types/v1">
-					<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
-						<request-id>${requestId}</request-id>
-						<action>CREATE</action>
-						<source>${source}</source>
-		   			</request-info>
-		   			<aetgt:mso-bpel-name>BPEL Volume Group action: CREATE</aetgt:mso-bpel-name>
-				</aetgt:MsoCompletionRequest>"""
-
-		// Format Response
-		String xmlMsoCompletionRequest = utils.formatXml(msoCompletionRequest)
-		utils.logAudit(xmlMsoCompletionRequest)
-		
-		// normal path
-		if (dbReturnCode == "200") {
-				execution.setVariable(prefix+"Success", true)
-				execution.setVariable(prefix+"CompleteMsoProcessRequest", xmlMsoCompletionRequest)
-				utils.log("DEBUG", " Overall SUCCESS Response going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest, isDebugEnabled)
-		} else {
-				execution.setVariable(prefix+"isErrorMessageException", true)
-				utils.log("DEBUG", " DB Update failed, code: " + dbReturnCode + ", going to Unexpected Error.", isDebugEnabled)
-		}
-	}
-
-}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV2.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV2.groovy
new file mode 100644
index 0000000..2d004b8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV2.groovy
@@ -0,0 +1,593 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.camunda.spin.Spin.XML;

+import groovy.json.JsonSlurper

+import groovy.lang.GroovyInterceptable;

+import groovy.xml.XmlUtil

+

+import org.openecomp.mso.bpmn.common.scripts.AaiUtil

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.bpmn.common.scripts.NetworkUtils

+import org.openecomp.mso.bpmn.common.scripts.VfModuleBase;

+import org.openecomp.mso.bpmn.core.RollbackData

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.bpmn.core.json.JsonUtils;

+import org.openecomp.mso.rest.APIResponse

+import org.springframework.web.util.UriUtils

+

+

+

+

+import java.util.UUID;

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.runtime.Execution

+import org.apache.commons.lang3.*

+import org.apache.commons.codec.binary.Base64;

+

+class DoCreateVfModuleVolumeV2 extends VfModuleBase {

+

+	String prefix='DCVFMODVOLV2_'

+	JsonUtils jsonUtil = new JsonUtils()

+

+

+    /**

+     * Perform initial processing, such as request validation, initialization of variables, etc.

+     * * @param execution

+     */

+    public void preProcessRequest(Execution execution) {

+        def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+        preProcessRequest(execution, isDebugEnabled)

+    }

+

+    public void preProcessRequest(Execution execution, isDebugLogEnabled) {

+		

+		execution.setVariable("prefix",prefix)

+		execution.setVariable(prefix+'SuccessIndicator', false)

+		execution.setVariable(prefix+'isPONR', false)

+

+		displayInput(execution, isDebugLogEnabled)

+		setRollbackData(execution, isDebugLogEnabled)

+		setRollbackEnabled(execution, isDebugLogEnabled) 

+		

+		

+		def tenantId = execution.getVariable("tenantId")

+		if (tenantId == null) {

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

+			tenantId = jsonUtil.getJsonValue(cloudConfiguration, "cloudConfiguration.tenantId")

+			execution.setVariable("tenantId", tenantId)

+		}

+

+		def cloudSiteId = execution.getVariable("lcpCloudRegionId")

+		if (cloudSiteId == null) {

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

+			cloudSiteId = jsonUtil.getJsonValue(cloudConfiguration, "cloudConfiguration.lcpCloudRegionId")

+			execution.setVariable("lcpCloudRegionId", cloudSiteId)

+		}

+

+		// Extract attributes from modelInfo

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

+

+		//modelCustomizationUuid

+		def modelCustomizationUuid = jsonUtil.getJsonValue(vfModuleModelInfo, "modelCustomizationUuid")

+		execution.setVariable("modelCustomizationId", modelCustomizationUuid)

+		logDebug("modelCustomizationId: " + modelCustomizationUuid, isDebugLogEnabled)

+		

+		//modelName

+		def modelName = jsonUtil.getJsonValue(vfModuleModelInfo, "modelName")

+		execution.setVariable("modelName", modelName)

+		logDebug("modelName: " + modelName, isDebugLogEnabled)

+		

+		// The following is used on the get Generic Service Instance call

+		execution.setVariable('GENGS_type', 'service-instance')

+	}

+

+	

+	/**

+	 * Display input variables

+	 * @param execution

+	 * @param isDebugLogEnabled

+	 */

+	public void displayInput(Execution execution, isDebugLogEnabled) {

+		def input = ['mso-request-id', 'msoRequestId', 'isDebugLogEnabled', 'disableRollback', 'failIfExists', 'serviceInstanceId',

+			'vnfId', 'vnfName', 'tenantId', 'volumeGroupId', 'volumeGroupName', 'lcpCloudRegionId', 'vnfType', 'vfModuleModelInfo',  'asdcServiceModelVersion',

+			'test-volume-group-name', 'test-volume-group-id', 'vfModuleInputParams']

+

+		logDebug('Begin input: ', isDebugLogEnabled)

+		input.each {

+			logDebug(it + ': ' + execution.getVariable(it), isDebugLogEnabled)

+		}

+		logDebug('End input.', isDebugLogEnabled)

+	}

+	

+	

+	/**

+	 * Define and set rollbackdata object 

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void setRollbackData(Execution execution, isDebugEnabled) {

+		def rollbackData = execution.getVariable("rollbackData")

+		if (rollbackData == null) {

+			rollbackData = new RollbackData()

+		}

+		def volumeGroupName = execution.getVariable('volumeGroupName')

+		rollbackData.put("DCVFMODULEVOL", "volumeGroupName", volumeGroupName)

+		execution.setVariable("rollbackData", rollbackData)

+	}

+	

+		

+	/**

+	 * validate getServiceInstance response

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void validateGetServiceInstanceCall(Execution execution, isDebugEnabled) {

+		def found = execution.getVariable('GENGS_FoundIndicator')

+		def success = execution.getVariable('GENGS_SuccessIndicator')

+		def serviceInstanceId = execution.getVariable('serviceInstanceId')

+		utils.log("DEBUG", "getServiceInstance success: " + success, isDebugEnabled)

+		utils.log("DEBUG", "getServiceInstance found: " + found, isDebugEnabled)

+		if(!found || !success) {

+			String errorMessage = "Service instance id not found in AAI: ${serviceInstanceId}."

+			utils.log("DEBUG", errorMessage, isDebugEnabled)

+			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, errorMessage)

+		}

+		

+	}

+

+	/**

+	 * Get cloud region

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTQueryAAICloudRegion (Execution execution, isDebugEnabled) {

+

+		def cloudRegion = execution.getVariable("lcpCloudRegionId")

+		utils.log("DEBUG", 'Request cloud region is: ' + cloudRegion, isDebugEnabled)

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String queryCloudRegionRequest = aaiEndpoint + '/' + cloudRegion

+

+		utils.logAudit(queryCloudRegionRequest)

+

+		cloudRegion = aaiUtil.getAAICloudReqion(execution,  queryCloudRegionRequest, "PO", cloudRegion)

+

+		def aaiCloudRegion = aaiUtil.getAAICloudReqion(execution,  queryCloudRegionRequest, "AAI", cloudRegion)

+		if ((aaiCloudRegion != "ERROR")) {

+			execution.setVariable("lcpCloudRegionId", aaiCloudRegion)

+			utils.log("DEBUG", "AIC Cloud Region for AAI: " + aaiCloudRegion, isDebugEnabled)

+		} else {

+			String errorMessage = "AAI Query Cloud Region Unsuccessful. Return Code: " + execution.getVariable(prefix+"queryCloudRegionReturnCode")

+			utils.log("DEBUG", errorMessage, isDebugEnabled)

+			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, errorMessage)

+		}

+		

+		def poCloudRegion = aaiUtil.getAAICloudReqion(execution,  queryCloudRegionRequest, "PO", cloudRegion)

+		if ((poCloudRegion != "ERROR")) {

+			execution.setVariable("poLcpCloudRegionId", poCloudRegion)

+			utils.log("DEBUG", "AIC Cloud Region for PO: " + poCloudRegion, isDebugEnabled)

+		} else {

+			String errorMessage = "AAI Query Cloud Region Unsuccessful. Return Code: " + execution.getVariable(prefix+"queryCloudRegionReturnCode")

+			utils.log("DEBUG", errorMessage, isDebugEnabled)

+			(new ExceptionUtil()).buildAndThrowWorkflowException(execution, 2500, errorMessage)

+		}

+		

+		def rollbackData = execution.getVariable("rollbackData")

+		rollbackData.put("DCVFMODULEVOL", "aiccloudregion", cloudRegion)

+	}

+

+

+	/**

+	 * Query AAI volume group by name

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTQueryAAIVolGrpName(Execution execution, isDebugEnabled) {

+

+		def volumeGroupName = execution.getVariable('volumeGroupName')

+		def cloudRegion = execution.getVariable('lcpCloudRegionId')

+

+		// This is for stub testing

+		def testVolumeGroupName = execution.getVariable('test-volume-group-name')

+		if (testVolumeGroupName != null && testVolumeGroupName.length() > 0) {

+			volumeGroupName = testVolumeGroupName

+		}

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String queryAAIVolumeNameRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups" + "?volume-group-name=" + UriUtils.encode(volumeGroupName, 'UTF-8')

+

+		utils.logAudit('Query AAI volume group by name: ' + queryAAIVolumeNameRequest)

+

+		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIVolumeNameRequest)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI query volume group by name return code: " + returnCode)

+		utils.logAudit("AAI query volume group by name response: " + aaiResponseAsString)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		execution.setVariable(prefix+"queryAAIVolGrpNameResponse", aaiResponseAsString)

+		execution.setVariable(prefix+'AaiReturnCode', returnCode)

+

+		if (returnCode=='200') {

+			execution.setVariable(prefix+'queryAAIVolGrpNameResponse', aaiResponseAsString)

+			utils.log("DEBUG", "Volume Group Name $volumeGroupName exists in AAI.", isDebugEnabled)

+		} else {

+			if (returnCode=='404') {

+				utils.log("DEBUG", "Volume Group Name $volumeGroupName does not exist in AAI.", isDebugEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $volumeGroupName not found in AAI. Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+

+

+	/**

+	 * Create a WorkflowException 

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void buildWorkflowException(Execution execution, int errorCode, errorMessage, isDebugEnabled) {

+		utils.log("DEBUG", errorMessage, isDebugEnabled)

+		(new ExceptionUtil()).buildWorkflowException(execution, 2500, errorMessage)

+	}

+

+

+	/**

+	 * Create a WorkflowException

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void handleError(Execution execution, isDebugEnabled) {

+		WorkflowException we = execution.getVariable('WorkflowException')

+		if (we == null) {

+			(new ExceptionUtil()).buildWorkflowException(execution, 2500, "Enexpected error encountered!")

+		}

+		throw new BpmnError("MSOWorkflowException")

+	}

+

+	

+	/**

+	 * Create volume group in AAI

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTCreateAAIVolGrpName(Execution execution, isDebugEnabled) {

+

+		def vnfId = execution.getVariable('vnfId')

+		def volumeGroupId = execution.getVariable('volumeGroupId')

+		def volumeName = execution.getVariable("volumeGroupName")

+		def modelCustomizationId = execution.getVariable("modelCustomizationId")

+		def vnfType = execution.getVariable("vnfType")

+		def tenantId = execution.getVariable("tenantId")

+		def cloudRegion = execution.getVariable('lcpCloudRegionId')

+		

+		utils.log("DEBUG", "volumeGroupId: " + volumeGroupId, isDebugEnabled)

+

+		def testGroupId = execution.getVariable('test-volume-group-id')

+		if (testGroupId != null && testGroupId.trim() != '') {

+			utils.log("DEBUG", "test volumeGroupId is present: " + testGroupId, isDebugEnabled)

+			volumeGroupId = testGroupId

+			execution.setVariable("test-volume-group-name", "MSOTESTVOL101a-vSAMP12_base_vol_module-0")

+		}

+

+		utils.log("DEBUG", "volumeGroupId to be used: " + volumeGroupId, isDebugEnabled)

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String createAAIVolumeGrpNameUrlRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group/" + UriUtils.encode(volumeGroupId, "UTF-8")

+

+		String namespace =  aaiUtil.getNamespaceFromUri(aaiUtil.getCloudInfrastructureCloudRegionUri(execution))

+		utils.log("DEBUG", "AAI namespace is: " + namespace, isDebugEnabled)

+

+		utils.logAudit("Request URL for PUT: " + createAAIVolumeGrpNameUrlRequest)

+

+		NetworkUtils networkUtils = new NetworkUtils()

+		String payload = networkUtils.createCloudRegionVolumeRequest(volumeGroupId, volumeName, vnfType, vnfId, tenantId, cloudRegion, namespace, modelCustomizationId)

+		String payloadXml = utils.formatXml(payload)

+		utils.logAudit("Request payload for PUT: " + payloadXml)

+

+		APIResponse response = aaiUtil.executeAAIPutCall(execution, createAAIVolumeGrpNameUrlRequest, payloadXml)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI create volume group return code: " + returnCode)

+		utils.logAudit("AAI create volume group response: " + aaiResponseAsString)

+

+		execution.setVariable(prefix+"createAAIVolumeGrpNameReturnCode", returnCode)

+		execution.setVariable(prefix+"createAAIVolumeGrpNameResponse", aaiResponseAsString)

+		

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		if (returnCode =='201') {

+			RollbackData rollbackData = execution.getVariable("rollbackData")

+			rollbackData.put("DCVFMODULEVOL", "isAAIRollbackNeeded", "true")

+		} else {

+			execution.setVariable(prefix+"isErrorMessageException", true)

+			if (returnCode=='404') {

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Unable to create volume group in AAI. Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				utils.log("DEBUG", " AAI Adapter Query Failed.  WorkflowException - " + "\n" + aWorkflowException, isDebugEnabled)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+	

+

+	/**

+	 * Prepare VNF adapter create request XML

+	 * @param execution

+	 */

+	public void prepareVnfAdapterCreateRequest(Execution execution, isDebugEnabled) {

+

+		def aaiGenericVnfResponse = execution.getVariable(prefix+'AAIQueryGenericVfnResponse')

+		def vnfId = utils.getNodeText1(aaiGenericVnfResponse, 'vnf-id')

+		def vnfName = utils.getNodeText1(aaiGenericVnfResponse, 'vnf-name')

+		def vnfType = utils.getNodeText1(aaiGenericVnfResponse, "vnf-type")

+		

+		def requestId = execution.getVariable('msoRequestId')

+		def serviceId = execution.getVariable('serviceInstanceId')

+		def cloudSiteId = execution.getVariable('poLcpCloudRegionId')

+		def tenantId = execution.getVariable('tenantId')

+		def volumeGroupId = execution.getVariable('volumeGroupId')

+		def volumeGroupnName = execution.getVariable('volumeGroupName')

+

+		def vnfVersion = execution.getVariable("asdcServiceModelVersion") 

+		def vnfModuleType = execution.getVariable("modelName")

+

+		def modelCustomizationId = execution.getVariable("modelCustomizationId")

+		

+		// for testing

+		utils.log("DEBUG", "volumeGroupId: " + volumeGroupId, isDebugEnabled)

+		def testGroupId = execution.getVariable('test-volume-group-id')

+		if (testGroupId != null && testGroupId.trim() != '') {

+			utils.log("DEBUG", "test volumeGroupId is present: " + testGroupId, isDebugEnabled)

+			volumeGroupId = testGroupId

+			execution.setVariable("test-volume-group-name", "MSOTESTVOL101a-vSAMP12_base_vol_module-0")

+		}

+		utils.log("DEBUG", "volumeGroupId to be used: " + volumeGroupId, isDebugEnabled)

+				

+		// volume group parameters

+		

+		String volumeGroupParams = ''

+		StringBuilder sbParams = new StringBuilder()

+		Map<String, String> paramsMap = execution.getVariable("vfModuleInputParams")

+		for (Map.Entry<String, String> entry : paramsMap.entrySet()) {

+			String paramsXml

+			String paramName = entry.getKey();

+			String paramValue = entry.getValue()

+			paramsXml =

+				"""	<entry>

+			   <key>${paramName}</key>

+			   <value>${paramValue}</value>

+			</entry>

+			"""

+			sbParams.append(paramsXml)

+		}

+

+		volumeGroupParams = sbParams.toString()

+		utils.log("DEBUG", "volumeGroupParams: "+ volumeGroupParams, isDebugEnabled)

+

+		def backoutOnFailure = execution.getVariable(prefix+"backoutOnFailure")

+		utils.log("DEBUG", "backoutOnFailure: "+ backoutOnFailure, isDebugEnabled)

+

+		def failIfExists = execution.getVariable("failIfExists")

+		if(failIfExists == null) {

+			failIfExists = 'true'

+		}

+		

+		String messageId = UUID.randomUUID()

+		utils.log("DEBUG", "messageId to be used is generated: " + messageId, isDebugEnabled)

+		

+		def notificationUrl = createCallbackURL(execution, "VNFAResponse", messageId)

+		def useQualifiedHostName = execution.getVariable("URN_mso_use_qualified_host")

+		if ('true'.equals(useQualifiedHostName)) {

+			notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl)

+		}

+		utils.log("DEBUG", "CreateVfModuleVolume - notificationUrl: "+ notificationUrl, isDebugEnabled)

+		

+		// build request

+		String vnfSubCreateWorkflowRequest =

+				"""

+			<createVolumeGroupRequest>

+				<cloudSiteId>${cloudSiteId}</cloudSiteId>

+				<tenantId>${tenantId}</tenantId>

+				<vnfId>${vnfId}</vnfId>

+				<vnfName>${vnfName}</vnfName>

+				<volumeGroupId>${volumeGroupId}</volumeGroupId>

+				<volumeGroupName>${volumeGroupnName}</volumeGroupName>

+				<vnfType>${vnfType}</vnfType>

+				<vnfVersion>${vnfVersion}</vnfVersion>

+				<vfModuleType>${vnfModuleType}</vfModuleType>

+				<modelCustomizationUuid>${modelCustomizationId}</modelCustomizationUuid>

+				<volumeGroupParams>

+					<entry>

+						<key>vnf_id</key>

+						<value>${vnfId}</value>

+					</entry>

+					<entry>

+						<key>vnf_name</key>

+						<value>${vnfName}</value>

+					</entry>

+					<entry>

+						<key>vf_module_id</key>

+						<value>${volumeGroupId}</value>

+					</entry>

+					<entry>

+						<key>vf_module_name</key>

+						<value>${volumeGroupnName}</value>

+					</entry>

+					${volumeGroupParams}

+			    </volumeGroupParams>

+				<skipAAI>true</skipAAI>

+				<backout>${backoutOnFailure}</backout>

+				<failIfExists>${failIfExists}</failIfExists>

+			    <msoRequest>

+			        <requestId>${requestId}</requestId>

+			        <serviceInstanceId>${serviceId}</serviceInstanceId>

+			    </msoRequest>

+			    <messageId>${messageId}</messageId>

+			    <notificationUrl>${notificationUrl}</notificationUrl>

+			</createVolumeGroupRequest>

+		"""

+

+		String vnfSubCreateWorkflowRequestAsString = utils.formatXml(vnfSubCreateWorkflowRequest)

+		utils.logAudit(vnfSubCreateWorkflowRequestAsString)

+		utils.log('DEBUG', vnfSubCreateWorkflowRequestAsString, isDebugEnabled)

+		execution.setVariable(prefix+"createVnfARequest", vnfSubCreateWorkflowRequestAsString)

+

+		// build rollback request for use later if needed

+		

+		String vnfSubRollbackWorkflowRequest =

+				"""<rollbackVolumeGroupRequest>

+				<cloudSiteId>${cloudSiteId}</cloudSiteId>

+				<tenantId>${tenantId}</tenantId>

+				<volumeGroupId>${volumeGroupId}</volumeGroupId>

+				<skipAAI>true</skipAAI>

+				<volumeGroupCreated>true</volumeGroupCreated>

+			    <msoRequest>

+			        <requestId>${requestId}</requestId>

+			        <serviceInstanceId>${serviceId}</serviceInstanceId>

+			    </msoRequest>

+			    <messageId>${messageId}</messageId>

+			    <notificationUrl>${notificationUrl}</notificationUrl>

+			</rollbackVolumeGroupRequest>"""

+

+		utils.log("DEBUG", "Sub Vnf flow rollback request: vnfSubRollbackWorkflowRequest " + "\n" + vnfSubRollbackWorkflowRequest, isDebugEnabled)

+

+		String vnfSubRollbackWorkflowRequestAsString = utils.formatXml(vnfSubRollbackWorkflowRequest)

+		execution.setVariable(prefix+"rollbackVnfARequest", vnfSubRollbackWorkflowRequestAsString)

+	}

+

+	

+	/**

+	 * Validate VNF adapter response

+	 * @param execution

+	 */

+	public void validateVnfResponse(Execution execution, isDebugEnabled) {

+		def vnfSuccess = execution.getVariable('VNFREST_SuccessIndicator')

+		utils.log("DEBUG", "vnfAdapterSuccessIndicator: "+ vnfSuccess, isDebugEnabled)

+		if(vnfSuccess==true) {

+			def vnfRollbackRequest = execution.getVariable(prefix+"rollbackVnfARequest")

+			utils.log("DEBUG", "vnfAdapter rollback request: "+ vnfRollbackRequest, isDebugEnabled)

+			RollbackData rollbackData = execution.getVariable("rollbackData")

+			rollbackData.put("DCVFMODULEVOL", "rollbackVnfARequest", vnfRollbackRequest)

+			rollbackData.put("DCVFMODULEVOL", "isCreateVnfRollbackNeeded", "true")

+		}

+

+	}

+	

+

+	/**

+	 * Update voulume group in AAI 

+	 * @TODO: Can we re-use the create method??

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTUpdateCreatedVolGrpName(Execution execution, isDebugEnabled) {

+

+		String requeryAAIVolGrpNameResponse = execution.getVariable(prefix+"queryAAIVolGrpNameResponse")

+		String volumeGroupId = utils.getNodeText1(requeryAAIVolGrpNameResponse, "volume-group-id")

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

+		String cloudRegion = execution.getVariable("lcpCloudRegionId")

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String updateAAIVolumeGroupUrlRequest = aaiEndpoint + '/' + cloudRegion + "/volume-groups/volume-group/" + UriUtils.encode(volumeGroupId, 'UTF-8')

+

+		String namespace =  aaiUtil.getNamespaceFromUri(aaiUtil.getCloudInfrastructureCloudRegionUri(execution))

+

+		utils.logAudit(updateAAIVolumeGroupUrlRequest)

+		utils.log("DEBUG", "updateAAIVolumeGroupUrlRequest - " +  updateAAIVolumeGroupUrlRequest, isDebugEnabled)

+

+		String createVnfAResponse = execution.getVariable(prefix+"createVnfAResponse")

+		def heatStackID = utils.getNodeText1(createVnfAResponse, "volumeGroupStackId")

+		

+		execution.setVariable(prefix+"heatStackId", heatStackID)

+

+		NetworkUtils networkUtils = new NetworkUtils()

+		String payload = networkUtils.updateCloudRegionVolumeRequest(requeryAAIVolGrpNameResponse, heatStackID, namespace, modelCustomizationId)

+		String payloadXml = utils.formatXml(payload)

+

+		utils.logAudit("Payload to Update Created VolumeGroupName - " + "\n" + payloadXml)

+

+		APIResponse response = aaiUtil.executeAAIPutCall(execution, updateAAIVolumeGroupUrlRequest, payloadXml)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI create volume group return code: " + returnCode)

+		utils.logAudit("AAI create volume group response: " + aaiResponseAsString)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		if (returnCode =='200') {

+			execution.setVariable(prefix+"updateCreatedAAIVolumeGrpNameResponse", aaiResponseAsString)

+			execution.setVariable(prefix+"isPONR", true)

+		} else {

+			execution.setVariable(prefix+"isErrorMessageException", true)

+			if (returnCode=='404') {

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Unable to update volume group in AAI. Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				utils.log("DEBUG", " AAI Adapter Query Failed.  WorkflowException - " + "\n" + aWorkflowException, isDebugEnabled)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+

+

+	/**

+	 * Query AAI Generic VNF

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTQueryAAIGenericVnf(Execution execution, isDebugEnabled) {

+

+		def vnfId = execution.getVariable('vnfId')

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getNetworkGenericVnfEndpoint(execution)

+		def String queryAAIRequest = aaiEndpoint + "/" + UriUtils.encode(vnfId, "UTF-8")

+

+		utils.logAudit("AAI query generic vnf request: " + queryAAIRequest)

+

+		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIRequest)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI query generic vnf return code: " + returnCode)

+		utils.logAudit("AAI query generic vnf response: " + aaiResponseAsString)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+		if (returnCode=='200') {

+			utils.log("DEBUG", 'Generic vnf ' + vnfId + ' found in AAI.', isDebugEnabled)

+			execution.setVariable(prefix+'AAIQueryGenericVfnResponse', aaiResponseAsString)

+		} else {

+			if (returnCode=='404') {

+				def message = 'Generic vnf ' + vnfId + ' was not found in AAI. Return code: 404.'

+				utils.log("DEBUG", message, isDebugEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, message)

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnf.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnf.groovy
index 8a6cac4..0fa08fd 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnf.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnf.groovy
@@ -23,12 +23,14 @@
 import org.openecomp.mso.bpmn.core.RollbackData
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.runtime.Execution
+import org.springframework.web.util.UriUtils
 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.common.scripts.VidUtils
 import org.openecomp.mso.bpmn.core.WorkflowException
+import org.openecomp.mso.bpmn.core.domain.VnfResource
 import org.openecomp.mso.bpmn.core.json.JsonUtils
 
 
@@ -64,7 +66,12 @@
 		
 		/*******************/
 		try{
-			// Get Variables
+			// Get Variables			
+			
+			def rollbackData = execution.getVariable("rollbackData")
+			if (rollbackData == null) {
+				rollbackData = new RollbackData()
+			}
 						
 			String vnfModelInfo = execution.getVariable("vnfModelInfo")			
 			String serviceModelInfo = execution.getVariable("serviceModelInfo")
@@ -76,6 +83,7 @@
 
 			String serviceInstanceId = execution.getVariable("serviceInstanceId")
 			execution.setVariable("DoCVNF_serviceInstanceId", serviceInstanceId)
+			rollbackData.put("VNF", "serviceInstanceId", serviceInstanceId)
 			utils.log("DEBUG", "Incoming Service Instance Id is: " + serviceInstanceId, isDebugEnabled)
 
 			String vnfType = execution.getVariable("vnfType")
@@ -95,17 +103,18 @@
 
 			String source = "VID"
 			execution.setVariable("DoCVNF_source", source)
+			rollbackData.put("VNF", "source", source)
 			utils.log("DEBUG", "Incoming Source is: " + source, isDebugEnabled)
 
 			String suppressRollback = execution.getVariable("disableRollback")
 			execution.setVariable("DoCVNF_suppressRollback", suppressRollback)
 			utils.log("DEBUG", "Incoming Suppress Rollback is: " + suppressRollback, isDebugEnabled)
 			
-			String modelInvariantId = jsonUtil.getJsonValue(vnfModelInfo, "modelInvariantId")
+			String modelInvariantId = jsonUtil.getJsonValue(vnfModelInfo, "modelInvariantUuid")
 			execution.setVariable("DoCVNF_modelInvariantId", modelInvariantId)
 			utils.log("DEBUG", "Incoming Invariant Id is: " + modelInvariantId, isDebugEnabled)
 			
-			String modelVersionId = jsonUtil.getJsonValue(vnfModelInfo, "modelVersionId")
+			String modelVersionId = jsonUtil.getJsonValue(vnfModelInfo, "modelUuid")
 			if (modelVersionId == null) {
 				modelVersionId = ""
 			}
@@ -120,19 +129,21 @@
 			execution.setVariable("DoCVNF_modelName", modelName)
 			utils.log("DEBUG", "Incoming Model Name is: " + modelName, isDebugEnabled)
 			
-			String modelCustomizationId = jsonUtil.getJsonValue(vnfModelInfo, "modelCustomizationId")
-			if (modelCustomizationId == null) {
-				modelCustomizationId = ""
+			String modelCustomizationId = jsonUtil.getJsonValue(vnfModelInfo, "modelCustomizationUuid")
+			if (modelCustomizationId == null) {				
+				modelCustomizationId = ""				
 			}
 			execution.setVariable("DoCVNF_modelCustomizationId", modelCustomizationId)
 			utils.log("DEBUG", "Incoming Model Customization Id is: " + modelCustomizationId, isDebugEnabled)
 				
 			String cloudSiteId = execution.getVariable("lcpCloudRegionId")
 			execution.setVariable("DoCVNF_cloudSiteId", cloudSiteId)
+			rollbackData.put("VNF", "cloudSiteId", cloudSiteId)
 			utils.log("DEBUG", "Incoming Cloud Site Id is: " + cloudSiteId, isDebugEnabled)
 				
 			String tenantId = execution.getVariable("tenantId")
 			execution.setVariable("DoCVNF_tenantId", tenantId)
+			rollbackData.put("VNF", "tenantId", tenantId)
 			utils.log("DEBUG", "Incoming Tenant Id is: " + tenantId, isDebugEnabled)			
 			
 			String globalSubscriberId = execution.getVariable("globalSubscriberId")
@@ -186,15 +197,33 @@
 				exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg)
 			}
 			execution.setVariable("DoCVNF_sdncCallbackUrl", sdncCallbackUrl)
+			rollbackData.put("VNF", "sdncCallbackUrl", sdncCallbackUrl)
 			utils.logAudit("SDNC Callback URL: " + sdncCallbackUrl)
 			logDebug("SDNC Callback URL is: " + sdncCallbackUrl, isDebugEnabled)
 			
-			def rollbackData = execution.getVariable("RollbackData")
-			if (rollbackData == null) {
-				rollbackData = new RollbackData()
-			}
+			VnfResource vnfResource = (VnfResource) execution.getVariable("vnfResourceDecomposition")
 			
-			execution.setVariable("RollbackData", rollbackData)
+			String nfRole = vnfResource.getNfRole()
+			execution.setVariable("DoCVNF_nfRole", nfRole)
+			logDebug("NF Role is: " + nfRole, isDebugEnabled)
+			
+			String nfNamingCode = vnfResource.getNfNamingCode()
+			execution.setVariable("DoCVNF_nfNamingCode", nfNamingCode)
+			logDebug("NF Naming Code is: " + nfNamingCode, isDebugEnabled)
+			
+			String nfType = vnfResource.getNfType()
+			execution.setVariable("DoCVNF_nfType", nfType)
+			logDebug("NF Type is: " + nfType, isDebugEnabled)
+			
+			String nfFunction = vnfResource.getNfFunction()
+			execution.setVariable("DoCVNF_nfFunction", nfFunction)
+			logDebug("NF Function is: " + nfFunction, isDebugEnabled)			
+			
+			rollbackData.put("VNF", "rollbackSDNCAssign", "false")
+			rollbackData.put("VNF", "rollbackSDNCActivate", "false")
+			rollbackData.put("VNF", "rollbackVnfCreate", "false")
+			
+			execution.setVariable("rollbackData", rollbackData)
 			
 		}catch(BpmnError b){
 			utils.log("DEBUG", "Rethrowing MSOWorkflowException", isDebugEnabled)
@@ -229,6 +258,10 @@
 			def modelCustomizationId = execution.getVariable("DoCVNF_modelCustomizationId")
 			// TODO: 1702 Variable
 			def equipmentRole = execution.getVariable("DoCVNF_equipmentRole")
+			def nfType = execution.getVariable("DoCVNF_nfType")
+			def nfRole = execution.getVariable("DoCVNF_nfRole")
+			def nfFunction = execution.getVariable("DoCVNF_nfFunction")
+			def nfNamingCode = execution.getVariable("DoCVNF_nfNamingCode")
 
 			//Get Service Instance Info
 			def serviceInstanceId = execution.getVariable("DoCVNF_serviceInstanceId")
@@ -240,6 +273,7 @@
 			int serviceStart = siRelatedLink.indexOf("service-subscription/")
 			int serviceEnd = siRelatedLink.indexOf("/service-instances/")
 			String serviceType = siRelatedLink.substring(serviceStart + 21, serviceEnd)
+			serviceType = UriUtils.decode(serviceType,"UTF-8")
 
 			//Get Namespace
 			AaiUtil aaiUtil = new AaiUtil(this)
@@ -257,6 +291,10 @@
 				<model-invariant-id>${modelInvariantId}</model-invariant-id>
 				<model-version-id>${modelVersionId}</model-version-id>
 				<model-customization-id>${modelCustomizationId}</model-customization-id>
+				<nf-type>${nfType}</nf-type>
+				<nf-role>${nfRole}</nf-role>
+				<nf-function>${nfFunction}</nf-function>
+				<nf-naming-code>${nfNamingCode}</nf-naming-code>
 				<relationship-list>
 					<relationship>
                		<related-to>service-instance</related-to>
@@ -294,9 +332,10 @@
 		try {
 			//Get Vnf Info
 			String vnfId = execution.getVariable("DoCVNF_vnfId")
-			def rollbackData = execution.getVariable("RollbackData")
+			def rollbackData = execution.getVariable("rollbackData")
 			rollbackData.put("VNF", "vnfId", vnfId)
-			execution.setVariable("RollbackData", rollbackData)
+			rollbackData.put("VNF", "rollbackVnfCreate", "true")
+			execution.setVariable("rollbackData", rollbackData)
 		}catch(Exception ex) {
 			utils.log("DEBUG", "Error Occured in DoCreateVnf PostProcessCreateGenericVnf Process " + ex.getMessage(), isDebugEnabled)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf PostProcessCreateGenericVnf Process")
@@ -360,7 +399,7 @@
 		
 				String uuid = execution.getVariable('testReqId') // for junits
 				if(uuid==null){
-					uuid = execution.getVariable("mso-request-id") + "-" +  	System.currentTimeMillis()
+					uuid = execution.getVariable("DoCVNF_requestId") + "-" +  	System.currentTimeMillis()
 				}
 				def callbackURL = execution.getVariable("DoCVNF_sdncCallbackUrl")
 				def requestId = execution.getVariable("DoCVNF_requestId")
@@ -397,7 +436,7 @@
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 	   <sdncadapter:RequestHeader>
-				<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
 				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 				<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -467,6 +506,15 @@
 				execution.setVariable("vnfName", vnfName)
 				execution.setVariable("DoCVNF_vnfName", vnfName)
 			}
+			def rollbackData = execution.getVariable("rollbackData")
+			if (method.equals("assign")) {
+				rollbackData.put("VNF", "rollbackSDNCAssign", "true")
+			}
+			else if (method.equals("activate")) {
+				rollbackData.put("VNF", "rollbackSDNCActivate", "true")
+			}
+			execution.setVariable("rollbackData", rollbackData)
+
 			
 		}else{
 			logDebug("Received a BAD Response from SDNC Adapter for " + method + " SDNC Call.", isDebugLogEnabled)
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy
index daae3d7..6ede7e9 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy
@@ -20,26 +20,26 @@
 package org.openecomp.mso.bpmn.infrastructure.scripts
 
 import java.util.UUID;
+import java.util.List
 
 import org.json.JSONObject;
 import org.json.JSONArray;
-
-import org.camunda.bpm.engine.delegate.BpmnError
-import org.camunda.bpm.engine.runtime.Execution;
-
-import static org.apache.commons.lang3.StringUtils.*;
-
-import org.openecomp.mso.bpmn.core.json.JsonUtils
 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
 import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils
 import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
 import org.openecomp.mso.bpmn.common.scripts.VidUtils
 import org.openecomp.mso.bpmn.core.RollbackData
 import org.openecomp.mso.bpmn.core.WorkflowException
-import org.openecomp.mso.bpmn.core.decomposition.ModelInfo
-import org.openecomp.mso.bpmn.core.decomposition.ModuleResource
-import org.openecomp.mso.bpmn.core.decomposition.ServiceDecomposition
-import org.openecomp.mso.bpmn.core.decomposition.VnfResource
+import org.openecomp.mso.bpmn.core.domain.ModelInfo
+import org.openecomp.mso.bpmn.core.domain.ModuleResource
+import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
+import org.openecomp.mso.bpmn.core.domain.VnfResource
+import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil
+import org.openecomp.mso.bpmn.core.json.JsonUtils
+import org.camunda.bpm.engine.delegate.BpmnError
+import org.camunda.bpm.engine.runtime.Execution;
+
+import static org.apache.commons.lang3.StringUtils.*;
 
 
 
@@ -54,6 +54,7 @@
    JsonUtils jsonUtil = new JsonUtils()
    VidUtils vidUtils = new VidUtils(this)
    CatalogDbUtils cutils = new CatalogDbUtils()
+   DecomposeJsonUtil decomposeJsonUtil = new DecomposeJsonUtil()
 
    /**
 	* This method gets and validates the incoming
@@ -65,7 +66,8 @@
 	   def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
 	   execution.setVariable("prefix",Prefix)
 	   utils.log("DEBUG", " *** STARTED DoCreateVnfAndModules PreProcessRequest Process*** ", isDebugEnabled)
-
+	   
+	   setBasicDBAuthHeader(execution, isDebugLogEnabled)
 	   try{
 		   // Get Variables
 
@@ -81,9 +83,6 @@
 		   String serviceInstanceId = execution.getVariable("serviceInstanceId")
 		   utils.log("DEBUG", "Incoming Service Instance Id is: " + serviceInstanceId, isDebugEnabled)
 
-		   String vnfType = execution.getVariable("vnfType")
-		   utils.log("DEBUG", "Incoming Vnf Type is: " + vnfType, isDebugEnabled)
-
 		   String vnfName = execution.getVariable("vnfName")
 		   execution.setVariable("CREVI_vnfName", vnfName)
 		   utils.log("DEBUG", "Incoming Vnf Name is: " + vnfName, isDebugEnabled)
@@ -117,15 +116,20 @@
 		   }
 		   execution.setVariable("vnfId", vnfId)
 
-		   def rollbackData = execution.getVariable("RollbackData")
+		   def rollbackData = execution.getVariable("rollbackData")
 		   if (rollbackData == null) {
 			   rollbackData = new RollbackData()
 		   }
-
+		   
+		   def isTest = execution.getVariable("isTest")
+		   
+			if (isTest == null || isTest == false) {
+				execution.setVariable("isBaseVfModule", "true")
+			}
 		   execution.setVariable("numOfCreatedAddOnModules", 0)
 
 		   rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0")
-		   execution.setVariable("RollbackData", rollbackData)
+		   execution.setVariable("rollbackData", rollbackData)
 
 		   sleep (20000)
 
@@ -148,6 +152,7 @@
 
 	   utils.log("DEBUG", " *** STARTED DoCreateVnfAndModules QueryCatalogDB Process *** ", isDebugEnabled)
 	   try {
+		   VnfResource vnf = null
 		   ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")
 		   // if serviceDecomposition is specified, get info from serviceDecomposition
 		   if (serviceDecomposition != null) {
@@ -158,87 +163,77 @@
 				   utils.log("DEBUG", "Error - vnfs are empty in serviceDecomposition object", isDebugEnabled)
 				   exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf queryCatalogDB, vnfs are empty")
 			   }
-			   VnfResource vnf = vnfs[0]
-			   utils.log("DEBUG", "Read vnfResource", isDebugEnabled)
-			   if (vnf == null) {
-				   utils.log("DEBUG", "Error - vnf is empty in serviceDecomposition object", isDebugEnabled)
-				   exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf queryCatalogDB, vnf is null")
+			   vnf = vnfs[0]
+			   String serviceModelName = serviceDecomposition.getModelInfo().getModelName()
+			   vnf.constructVnfType(serviceModelName)
+			   String vnfType = vnf.getVnfType()
+			   utils.log("DEBUG", "Incoming Vnf Type is: " + vnfType, isDebugEnabled)
+			   execution.setVariable("vnfType", vnfType)
+		   }
+		   else {
+			   //Get Vnf Info
+			   String vnfModelInfo = execution.getVariable("vnfModelInfo")
+			   utils.log("DEBUG", "vnfModelInfo: " + vnfModelInfo, isDebugEnabled)
+			   String vnfModelCustomizationUuid = jsonUtil.getJsonValueForKey(vnfModelInfo, "modelCustomizationUuid")
+			   if (vnfModelCustomizationUuid == null) {
+					   vnfModelCustomizationUuid = ""
 			   }
+			   utils.log("DEBUG", "querying Catalog DB by vnfModelCustomizationUuid: " + vnfModelCustomizationUuid, isDebugEnabled)
+			  
+			   JSONArray vnfs = cutils.getAllVnfsByVnfModelCustomizationUuid(execution,
+							   vnfModelCustomizationUuid)
+			   utils.log("DEBUG", "obtained VNF list")
+			   // Only one match here
+			   JSONObject vnfObject = vnfs[0]
+			   vnf = decomposeJsonUtil.JsonToVnfResource(vnfObject.toString())			   
+		   }
+		   utils.log("DEBUG", "Read vnfResource", isDebugEnabled)
+		   if (vnf == null) {
+			   utils.log("DEBUG", "Error - vnf is empty in serviceDecomposition object", isDebugEnabled)
+			   exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf queryCatalogDB, vnf is null")
+		   }
+		   execution.setVariable("vnfResourceDecomposition", vnf)
 
-			   List<ModuleResource> vfModules = vnf.getAllVfModuleObjects()
-			   utils.log("DEBUG", "Read vfModules", isDebugEnabled)
-			   if (vfModules == null) {
-				   utils.log("DEBUG", "Error - vfModules are empty in serviceDecomposition object", isDebugEnabled)
-				   exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf queryCatalogDB, vf modules are empty")
-			   }
-			   JSONArray addOnModules = new JSONArray()
+		   List<ModuleResource> vfModules = vnf.getAllVfModuleObjects()
+		   utils.log("DEBUG", "Read vfModules", isDebugEnabled)
+		   if (vfModules == null) {
+			   utils.log("DEBUG", "Error - vfModules are empty in serviceDecomposition object", isDebugEnabled)
+			   exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf queryCatalogDB, vf modules are empty")
+		   }
+			   			  
+		   ModuleResource baseVfModule = null
 
-			   for (int i = 0; i < vfModules.size; i++) {
-				   utils.log("DEBUG", "handling VF Module ", isDebugEnabled)
-				   ModuleResource vfModule = vfModules[i]
-				   boolean isBase = vfModule.getIsBase()
-				   if (isBase) {
+		   for (int i = 0; i < vfModules.size; i++) {
+			   utils.log("DEBUG", "handling VF Module ", isDebugEnabled)
+			   ModuleResource vfModule = vfModules[i]
+			   boolean isBase = vfModule.getIsBase()
+			   if (isBase) {
 					   ModelInfo baseVfModuleModelInfoObject = vfModule.getModelInfo()
 					   String baseVfModuleModelInfoWithRoot = baseVfModuleModelInfoObject.toString()
 					   String baseVfModuleModelInfo = jsonUtil.getJsonValue(baseVfModuleModelInfoWithRoot, "modelInfo")
 					   execution.setVariable("baseVfModuleModelInfo", baseVfModuleModelInfo)
 					   String baseVfModuleLabel = vfModule.getVfModuleLabel()
 					   execution.setVariable("baseVfModuleLabel", baseVfModuleLabel)
-					   String basePersonaModelId = baseVfModuleModelInfoObject.getModelInvariantId()
+					   String basePersonaModelId = baseVfModuleModelInfoObject.getModelInvariantUuid()
 					   execution.setVariable("basePersonaModelId", basePersonaModelId)
-				   }
-				   else {
-					   addOnModules.put(vfModules[i])
-				   }
-			   }
+					   baseVfModule = vfModule
+					   break
+			   }		   
+				
+			}
+			   
+			List<ModuleResource>addOnModules = vfModules - baseVfModule
+			   
+			int addOnModulesToDeploy = 0
+			if (addOnModules != null) {				
+				   addOnModulesToDeploy = addOnModules.size
+			}
+			   
+			utils.log("DEBUG", "AddOnModulesToDeploy: " + addOnModulesToDeploy)
 
-			   execution.setVariable("addOnModules", addOnModules)
-			   execution.setVariable("addOnModulesToDeploy", addOnModules.length())
-			   execution.setVariable("addOnModulesDeployed", 0)
-
-		   }
-		   else {
-			   //Get Vnf Info
-			   String vnfModelInfo = execution.getVariable("vnfModelInfo")
-			   utils.log("DEBUG", "vnfModelInfo: " + vnfModelInfo, isDebugEnabled)
-			   String vnfModelCustomizationUuid = jsonUtil.getJsonValueForKey(vnfModelInfo, "modelCustomizationId")
-			   if (vnfModelCustomizationUuid == null) {
-				   vnfModelCustomizationUuid = jsonUtil.getJsonValueForKey(vnfModelInfo, "modelCustomizationUuid")
-			   }
-			   utils.log("DEBUG", "querying Catalog DB by vnfModelCustomizationUuid: " + vnfModelCustomizationUuid, isDebugEnabled)
-			   String catalogDbEndpoint = execution.getVariable("URN_mso_catalog_db_endpoint")
-
-			   JSONArray vnfs = cutils.getAllVnfsByVnfModelCustomizationUuid(catalogDbEndpoint,
-							   vnfModelCustomizationUuid)
-			   utils.log("DEBUG", "obtained VNF list")
-			   // Only one match here
-			   JSONObject vnf = vnfs[0]
-			   JSONArray vfModules = vnf.getJSONArray("vfModules")
-			   JSONArray addOnModules = new JSONArray()
-
-			   // Set up base Vf Module info
-			   for (int i = 0; i < vfModules.length(); i++) {
-				   utils.log("DEBUG", "handling VF Module ")
-				   JSONObject vfModule = vfModules[i]
-				   String isBase = jsonUtil.getJsonValueForKey(vfModule, "isBase")
-				   if (isBase.equals("true")) {
-					   JSONObject baseVfModuleModelInfoObject = vfModule.getJSONObject("modelInfo")
-					   String baseVfModuleModelInfo = baseVfModuleModelInfoObject.toString()					  
-					   execution.setVariable("baseVfModuleModelInfo", baseVfModuleModelInfo)
-					   String baseVfModuleLabel = jsonUtil.getJsonValueForKey(vfModule, "vfModuleLabel")
-					   execution.setVariable("baseVfModuleLabel", baseVfModuleLabel)
-					   String basePersonaModelId = jsonUtil.getJsonValueForKey(baseVfModuleModelInfoObject, "modelInvariantId")
-					   execution.setVariable("basePersonaModelId", basePersonaModelId)
-				   }
-				   else {
-					   addOnModules.put(vfModules[i])
-				   }
-			   }
-
-			   execution.setVariable("addOnModules", addOnModules)
-			   execution.setVariable("addOnModulesToDeploy", addOnModules.length())
-			   execution.setVariable("addOnModulesDeployed", 0)
-		   }
+			execution.setVariable("addOnModules", addOnModules)
+			execution.setVariable("addOnModulesToDeploy", addOnModulesToDeploy)
+			execution.setVariable("addOnModulesDeployed", 0)	  
 
 	   }catch(Exception ex) {
 		   utils.log("DEBUG", "Error Occured in DoCreateVnfAndModules QueryCatalogDB Process " + ex.getMessage(), isDebugEnabled)
@@ -254,7 +249,7 @@
 		   execution.setVariable("vnfId", "skask")
 	   }
 
-	   utils.log("DEBUG", "*** COMPLETED CreateVnfInfra PrepareCreateGenericVnf Process ***", isDebugEnabled)
+	   utils.log("DEBUG", "*** COMPLETED DoCreateVnfAndModules QueryCatalogDB Process ***", isDebugEnabled)
    }
 
    public void preProcessAddOnModule(Execution execution){
@@ -263,25 +258,28 @@
 	   logDebug(" ======== STARTED preProcessAddOnModule ======== ", isDebugLogEnabled)
 
 	   try {
-		   JSONArray addOnModules = (JSONArray) execution.getVariable("addOnModules")
+		   List<ModuleResource>addOnModules = execution.getVariable("addOnModules")
 		   int addOnIndex = (int) execution.getVariable("addOnModulesDeployed")
 
-		   JSONObject addOnModule = addOnModules[addOnIndex]
+		   ModuleResource addOnModule = addOnModules[addOnIndex]
+		   
+		   utils.log("DEBUG", "Got addon module", isDebugLogEnabled)
 
 		   def newVfModuleId = UUID.randomUUID().toString()
 		   execution.setVariable("addOnVfModuleId", newVfModuleId)
+		   execution.setVariable("isBaseVfModule", "false")
+		   
+		   execution.setVariable("instancesOfThisModuleDeployed", 0)
 
-		   execution.setVariable("instancesOfThisModelDeployed", 0)
-
-		   JSONObject addOnVfModuleModelInfoObject = jsonUtil.getJsonValueForKey(addOnModule, "modelInfo")
-		   String addOnVfModuleModelInfoWithRoot = addOnVfModuleModelInfoObject.toString()		   
+		   ModelInfo addOnVfModuleModelInfoObject = addOnModule.getModelInfo()		  
+		   String addOnVfModuleModelInfoWithRoot = addOnVfModuleModelInfoObject.toString()
 		   String addOnVfModuleModelInfo = jsonUtil.getJsonValue(addOnVfModuleModelInfoWithRoot, "modelInfo")
 		   execution.setVariable("addOnVfModuleModelInfo", addOnVfModuleModelInfo)
-		   String addOnVfModuleLabel = jsonUtil.getJsonValueForKey(addOnModule, "vfModuleLabel")
+		   String addOnVfModuleLabel = addOnModule.getVfModuleLabel()
 		   execution.setVariable("addOnVfModuleLabel", addOnVfModuleLabel)
-		   String addOnPersonaModelId = jsonUtil.getJsonValueForKey(addOnVfModuleModelInfoObject, "modelInvariantId")
+		   String addOnPersonaModelId = addOnVfModuleModelInfoObject.getModelInvariantUuid()
 		   execution.setVariable("addOnPersonaModelId", addOnPersonaModelId)
-		   String addOnInitialCount = jsonUtil.getJsonValueForKey(addOnModule, "initialCount")
+		   int addOnInitialCount = addOnModule.getInitialCount()
 		   execution.setVariable("initialCount", addOnInitialCount)
 
 
@@ -289,9 +287,25 @@
 		   utils.log("ERROR", "Exception Occured Processing preProcessAddOnModule. Exception is:\n" + e, isDebugLogEnabled)
 		   exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessAddOnModule Method:\n" + e.getMessage())
 	   }
-	   logDebug("======== COMPLETED preProcessSDNCAssignRequest ======== ", isDebugLogEnabled)
+	   logDebug("======== COMPLETED preProcessAddOnModule ======== ", isDebugLogEnabled)
    }
 
+   public void postProcessAddOnModule(Execution execution){
+	   def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
+	   execution.setVariable("prefix", Prefix)
+	   logDebug(" ======== STARTED postProcessAddOnModule ======== ", isDebugLogEnabled)
+
+	   try {
+		   int addOnModulesDeployed = execution.getVariable("addOnModulesDeployed")
+		   execution.setVariable("addOnModulesDeployed", addOnModulesDeployed + 1)
+
+	   }catch(Exception e){
+		   utils.log("ERROR", "Exception Occured Processing postProcessAddOnModule. Exception is:\n" + e, isDebugLogEnabled)
+		   exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during postProcessAddOnModule Method:\n" + e.getMessage())
+	   }
+	   logDebug("======== COMPLETED postProcessAddOnModule ======== ", isDebugLogEnabled)
+   }
+   
    public void validateBaseModule(Execution execution){
 	   def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
 	   execution.setVariable("prefix", Prefix)
@@ -299,11 +313,11 @@
 
 	   try {
 		   def baseRollbackData = execution.getVariable("DCVAM_baseRollbackData")
-		   def rollbackData = execution.getVariable("RollbackData")
+		   def rollbackData = execution.getVariable("rollbackData")
 
 		   def baseModuleMap = baseRollbackData.get("VFMODULE")
 		   baseModuleMap.each{ k, v -> rollbackData.put("VFMODULE_BASE", "${k}","${v}") }
-		   execution.setVariable("RollbackData", rollbackData)
+		   execution.setVariable("rollbackData", rollbackData)
 		   logDebug("addOnModulesDeployed: " + execution.getVariable("addOnModulesDeployed"), isDebugLogEnabled)
 		   logDebug("addOnModulesToDeploy: " + execution.getVariable("addOnModulesToDeploy"), isDebugLogEnabled)
 		   if (execution.getVariable("addOnModulesDeployed") <  execution.getVariable("addOnModulesToDeploy")) {
@@ -329,7 +343,7 @@
 		   int instancesOfThisModuleDeployed = execution.getVariable("instancesOfThisModuleDeployed")
 		   int numOfCreatedAddOnModules = execution.getVariable("numOfCreatedAddOnModules")
 		   def addOnRollbackData = execution.getVariable("DCVAM_addOnRollbackData")
-		   def rollbackData = execution.getVariable("RollbackData")
+		   def rollbackData = execution.getVariable("rollbackData")
 
 		   def addOnModuleMap = addOnRollbackData.get("VFMODULE")
 		   numOfCreatedAddOnModules = numOfCreatedAddOnModules + 1
@@ -341,29 +355,55 @@
 
 		   execution.setVariable("numOfCreatedAddOnModules", numOfCreatedAddOnModules)
 		   rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "${numOfCreatedAddOnModules}")
-		   execution.setVariable("RollbackData", rollbackData)
+		   execution.setVariable("rollbackData", rollbackData)
 	   }catch(Exception e){
 		   utils.log("ERROR", "Exception Occured Processing preProcessAddOnModule. Exception is:\n" + e, isDebugLogEnabled)
 		   exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessAddOnModule Method:\n" + e.getMessage())
 	   }
-	   logDebug("======== COMPLETED preProcessSDNCAssignRequest ======== ", isDebugLogEnabled)
-   }
-
-   public void finishProcessingInitialCountDeployment(Execution execution){
-	   def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")
-	   execution.setVariable("prefix", Prefix)
-	   logDebug(" ======== STARTED finishProcessingInitialCountDeployment ======== ", isDebugLogEnabled)
-
+	   logDebug("======== COMPLETED validateAddOnModule ======== ", isDebugLogEnabled)
+   }   
+   
+   public void preProcessRollback (Execution execution) {
+	   def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+	   utils.log("DEBUG"," ***** preProcessRollback ***** ", isDebugEnabled)
 	   try {
-		   int addOnModulesDeployed = execution.getVariable("addOnModulesDeployed")
-		   execution.setVariable("addOnModulesDeployed", addOnModulesDeployed + 1)
-	   }catch(Exception e){
-		   utils.log("ERROR", "Exception Occured Processing preProcessAddOnModule. Exception is:\n" + e, isDebugLogEnabled)
-		   exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessAddOnModule Method:\n" + e.getMessage())
+		   
+		   Object workflowException = execution.getVariable("WorkflowException");
+
+		   if (workflowException instanceof WorkflowException) {
+			   utils.log("DEBUG", "Prev workflowException: " + workflowException.getErrorMessage(), isDebugEnabled)
+			   execution.setVariable("prevWorkflowException", workflowException);
+			   //execution.setVariable("WorkflowException", null);
+		   }
+	   } catch (BpmnError e) {
+		   utils.log("DEBUG", "BPMN Error during preProcessRollback", isDebugEnabled)
+	   } catch(Exception ex) {
+		   String msg = "Exception in preProcessRollback. " + ex.getMessage()
+		   utils.log("DEBUG", msg, isDebugEnabled)
 	   }
-	   logDebug("======== COMPLETED preProcessSDNCAssignRequest ======== ", isDebugLogEnabled)
+	   utils.log("DEBUG"," *** Exit preProcessRollback *** ", isDebugEnabled)
+   }
+
+   public void postProcessRollback (Execution execution) {
+	   def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
+	   utils.log("DEBUG"," ***** postProcessRollback ***** ", isDebugEnabled)
+	   String msg = ""
+	   try {
+		   Object workflowException = execution.getVariable("prevWorkflowException");
+		   if (workflowException instanceof WorkflowException) {
+			   utils.log("DEBUG", "Setting prevException to WorkflowException: ", isDebugEnabled)
+			   execution.setVariable("WorkflowException", workflowException);
+		   }
+		   execution.setVariable("rollbackData", null)
+	   } catch (BpmnError b) {
+		   utils.log("DEBUG", "BPMN Error during postProcessRollback", isDebugEnabled)
+		   throw b;
+	   } catch(Exception ex) {
+		   msg = "Exception in postProcessRollback. " + ex.getMessage()
+		   utils.log("DEBUG", msg, isDebugEnabled)
+	   }
+	   utils.log("DEBUG"," *** Exit postProcessRollback *** ", isDebugEnabled)
    }
 
 
-
-}
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModulesRollback.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModulesRollback.groovy
index 7b9bed3..84546e1 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModulesRollback.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModulesRollback.groovy
@@ -31,8 +31,8 @@
 

 import org.openecomp.mso.bpmn.core.json.JsonUtils

 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor

-import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils

 import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils

 import org.openecomp.mso.bpmn.common.scripts.VidUtils

 import org.openecomp.mso.bpmn.core.RollbackData

 import org.openecomp.mso.bpmn.core.WorkflowException

@@ -63,12 +63,46 @@
 		try{

 			// Get Rollback Variables

 			

-			def rollbackData = execution.getVariable("RollbackData")

+			def rollbackData = execution.getVariable("rollbackData")

 			utils.log("DEBUG", "Incoming RollbackData is: " + rollbackData.toString(), isDebugEnabled)

+			execution.setVariable("rolledBack", null)

+			execution.setVariable("rollbackError", null)

+			

+			if (execution.getVariable("disableRollback").equals("true" ))

+			{

+				execution.setVariable("skipRollback", true)

+			}

+

 			String vnfId = rollbackData.get("VNF", "vnfId")

 			utils.log("DEBUG", "Rollback vnfId is: " + vnfId, isDebugEnabled)

 			execution.setVariable("DCVAMR_vnfId", vnfId)

 			

+			execution.setVariable("mso-request-id", execution.getVariable("msoRequestId"))

+			

+			execution.setVariable("DCVAMR_rollbackSDNCAssign", rollbackData.get("VNF", "rollbackSDNCAssign"))

+			execution.setVariable("DCVAMR_rollbackSDNCActivate", rollbackData.get("VNF", "rollbackSDNCActivate"))

+			execution.setVariable("DCVAMR_rollbackVnfCreate", rollbackData.get("VNF", "rollbackVnfCreate"))

+			

+			String sdncCallbackUrl = rollbackData.get("VNF", "sdncCallbackUrl")

+			utils.log("DEBUG", "Rollback sdncCallbackUrl is: " + sdncCallbackUrl, isDebugEnabled)

+			execution.setVariable("DCVAMR_sdncCallbackUrl", sdncCallbackUrl)

+			

+			String tenantId= rollbackData.get("VNF", "tenantId")

+			utils.log("DEBUG", "Rollback tenantId is: " + tenantId, isDebugEnabled)

+			execution.setVariable("DCVAMR_tenantId", tenantId)

+			

+			String source= rollbackData.get("VNF", "source")

+			utils.log("DEBUG", "Rollback source is: " + source, isDebugEnabled)

+			execution.setVariable("DCVAMR_source", source)

+			

+			String serviceInstanceId = rollbackData.get("VNF", "serviceInstanceId")

+			utils.log("DEBUG", "Rollback serviceInstanceId is: " + serviceInstanceId, isDebugEnabled)

+			execution.setVariable("DCVAMR_serviceInstanceId", serviceInstanceId)

+			

+			String cloudSiteId = rollbackData.get("VNF", "cloudSiteId")

+			utils.log("DEBUG", "Rollback cloudSiteId is: " + cloudSiteId, isDebugEnabled)

+			execution.setVariable("DCVAMR_cloudSiteId", cloudSiteId)

+			

 			def numOfAddOnModulesString = rollbackData.get("VNFANDMODULES", "numOfCreatedAddOnModules")

 			int numOfAddOnModules = 0

 			if (numOfAddOnModulesString != null) {

@@ -105,7 +139,7 @@
 		

 		try {

 			

-			def rollbackData = execution.getVariable("RollbackData")

+			def rollbackData = execution.getVariable("rollbackData")

 			

 			def vfModuleRollbackData = new RollbackData()

 			

@@ -137,17 +171,193 @@
 		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

 		execution.setVariable("prefix", Prefix)

 		logDebug(" ======== STARTED postProcessCreateVfModuleRollback ======== ", isDebugLogEnabled)

+		def rolledBack = false

 		

-		try {			

+		try {

+			rolledBack = execution.getVariable("DCVM_rolledBack")

 			def numOfModulesToDelete = execution.getVariable("DCVAMR_numOfModulesToDelete")

 			execution.setVariable("DCVAMR_numOfModulesToDelete", numOfModulesToDelete - 1)		

 		}catch(Exception e){

 			utils.log("ERROR", "Exception Occured Processing postProcessCreateVfModuleRollback. Exception is:\n" + e, isDebugLogEnabled)

 			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during postProcessCreateVfModuleRollback Method:\n" + e.getMessage())

 		}

+		if (rolledBack == false) {

+			logDebug("Failure on DoCreateVfModuleRollback", isDebugLogEnabled)

+			utils.log("ERROR", "Unsuccessful rollback of DoCreateVfModule")

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during rollback of DoCreateVfModule")

+		}

 		logDebug("======== COMPLETED postProcessCreateVfModuleRollback ======== ", isDebugLogEnabled)

 	}

 	

 	

+	public void preProcessSDNCDeactivateRequest(Execution execution){

+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)

+		def vnfId = execution.getVariable("vnfId")

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

+

+		try{

+			//Build SDNC Request

+			

+			String deactivateSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "deactivate")

+

+			deactivateSDNCRequest = utils.formatXml(deactivateSDNCRequest)

+			execution.setVariable(Prefix + "deactivateSDNCRequest", deactivateSDNCRequest)

+			logDebug("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest, isDebugLogEnabled)

+			utils.logAudit("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest)

+

+		}catch(Exception e){

+			utils.log("ERROR", "Exception Occured Processing preProcessSDNCDeactivateRequest. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessSDNCDeactivateRequest Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)

+	}

+	

+	public void preProcessSDNCUnassignRequest(Execution execution) {

+		def method = getClass().getSimpleName() + '.preProcessSDNCUnassignRequest(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)

+		try{

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

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

+

+			String unassignSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "unassign")

+

+			execution.setVariable(Prefix + "unassignSDNCRequest", unassignSDNCRequest)

+			logDebug("Outgoing UnassignSDNCRequest is: \n" + unassignSDNCRequest, isDebugLogEnabled)

+			utils.logAudit("Outgoing UnassignSDNCRequest is: \n"  + unassignSDNCRequest)

+

+		}catch(Exception e){

+			log.debug("Exception Occured Processing preProcessSDNCUnassignRequest. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during  preProcessSDNCUnassignRequest Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED  preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)

+	}

+	

+	public String buildSDNCRequest(Execution execution, String svcInstId, String action){

+		

+				String uuid = execution.getVariable('testReqId') // for junits

+				if(uuid==null){

+					uuid = execution.getVariable("msoRequestId") + "-" +  	System.currentTimeMillis()

+				}

+				def callbackURL = execution.getVariable(Prefix + "sdncCallbackUrl")

+				def requestId = execution.getVariable("msoRequestId")				

+				def tenantId = execution.getVariable(Prefix + "tenantId")

+				def source = execution.getVariable(Prefix + "source")

+				def vnfId = execution.getVariable(Prefix + "vnfId")

+				def serviceInstanceId = execution.getVariable(Prefix + "serviceInstanceId")

+				def cloudSiteId = execution.getVariable(Prefix + "cloudSiteId")

+				

+				String sdncRequest =

+				"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+													xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+	   <sdncadapter:RequestHeader>

+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>

+				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>

+				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>

+				<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>

+				<sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>

+				<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+		</sdncadapter:RequestHeader>

+	<sdncadapterworkflow:SDNCRequestData>

+		<request-information>

+			<request-id>${requestId}</request-id>

+			<request-action>DeleteVnfInstance</request-action>

+			<source>${source}</source>

+			<notification-url/>

+			<order-number/>

+			<order-version/>

+		</request-information>

+		<service-information>

+			<service-id/>

+			<subscription-service-type/>			

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

+			<global-customer-id/>

+		</service-information>

+		<vnf-information>

+			<vnf-id>${vnfId}</vnf-id>

+			<vnf-type/>			

+		</vnf-information>

+		<vnf-request-input>			

+			<vnf-name/>

+			<tenant>${tenantId}</tenant>

+			<aic-cloud-region>${cloudSiteId}</aic-cloud-region>			

+		</vnf-request-input>

+	</sdncadapterworkflow:SDNCRequestData>

+	</sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""

+		

+			utils.logAudit("sdncRequest:  " + sdncRequest)

+			return sdncRequest

+	}

+		

+	public void validateSDNCResponse(Execution execution, String response, String method){

+		def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix",Prefix)

+		logDebug(" *** STARTED ValidateSDNCResponse Process*** ", isDebugLogEnabled)

+

+		WorkflowException workflowException = execution.getVariable("WorkflowException")

+		boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")

+

+		utils.logAudit("workflowException: " + workflowException)

+

+		SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)

+		sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)

+

+		utils.logAudit("SDNCResponse: " + response)

+

+		String sdncResponse = response

+		if(execution.getVariable(Prefix + 'sdncResponseSuccess') == true){

+			logDebug("Received a Good Response from SDNC Adapter for " + method + " SDNC Call.  Response is: \n" + sdncResponse, isDebugLogEnabled)

+		}else{

+			logDebug("Received a BAD Response from SDNC Adapter for " + method + " SDNC Call.", isDebugLogEnabled)

+			throw new BpmnError("MSOWorkflowException")

+		}

+		logDebug(" *** COMPLETED ValidateSDNCResponse Process*** ", isDebugLogEnabled)

+	}

+	

+	public void setSuccessfulRollbackStatus (Execution execution){

+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED setSuccessfulRollbackStatus ======== ", isDebugLogEnabled)

+	

+		try{

+			// Set rolledBack to true, rollbackError to null

+			execution.setVariable("rolledBack", true)

+			execution.setVariable("rollbackError", null)

+	

+		}catch(Exception e){

+			utils.log("ERROR", "Exception Occured Processing setSuccessfulRollbackStatus. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during setSuccessfulRollbackStatus Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED setSuccessfulRollbackStatus ======== ", isDebugLogEnabled)

+	}

+	

+	public void setFailedRollbackStatus (Execution execution){

+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED setFailedRollbackStatus ======== ", isDebugLogEnabled)

+	

+		try{

+			// Set rolledBack to false, rollbackError to actual value, rollbackData to null

+			execution.setVariable("rolledBack", false)

+			def rollbackError = execution.getVariable("rollbackError")

+			if (rollbackError == null) {

+				execution.setVariable("rollbackError", 'Caught exception in DoCreateVnfAndModulesRollback')

+			}

+			execution.setVariable("rollbackData", null)

+	

+		}catch(Exception e){

+			utils.log("ERROR", "Exception Occured Processing setFailedRollbackStatus. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during setFailedRollbackStatus Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED setFailedRollbackStatus ======== ", isDebugLogEnabled)

+	}

+	

 	

 }

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
index 2bf3e55..72ee0d8 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstance.groovy
@@ -415,6 +415,8 @@
 			if (utils.nodeExists(networkRequest, "networkModelInfo")) {
 				String networkModelInfo = utils.getNodeXml(networkRequest, "networkModelInfo", false).replace("tag0:","").replace(":tag0","")
 				modelCustomizationUuid = utils.getNodeText1(networkModelInfo, "modelCustomizationUuid")
+			} else {
+			    modelCustomizationUuid = utils.getNodeText1(networkRequest, "modelCustomizationId")
 			}
 			
 			String deleteNetworkRequest = """
@@ -772,10 +774,10 @@
 			String serviceInstanceId = utils.getNodeText1(deleteNetworkInput, "service-instance-id")
 
 			// 2. prepare rollback topology via SDNC Adapter SUBFLOW call
-			String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "ActivateNetworkInstance", cloudRegionId, networkId, null)
+			String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, deleteNetworkInput, serviceInstanceId, sdncCallback, "activate", "CreateNetworkInstance", cloudRegionId, networkId, null)
 			String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
 			execution.setVariable(Prefix + "rollbackDeactivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
-			utils.log("DEBUG", " Preparing request for RPC SDNC Topology 'activate-ActivateNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString, isDebugEnabled)
+			utils.log("DEBUG", " Preparing request for RPC SDNC Topology 'activate-CreateNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString, isDebugEnabled)
 
 
 		} catch (Exception ex) {
@@ -892,7 +894,7 @@
 		
 		try {
 			
-			if (execution.getVariable("sdncVersion") == '1702') {
+			if (execution.getVariable("sdncVersion") != '1610') {
 				prepareRpcSDNCDeactivateRollback(execution)
 				prepareRpcSDNCUnassignRollback(execution)
 			} else {
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteServiceInstance.groovy
index 32197c1..338b4cc 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteServiceInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteServiceInstance.groovy
@@ -27,7 +27,6 @@
 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.common.scripts.VidUtils
 import org.openecomp.mso.bpmn.core.WorkflowException
 import org.openecomp.mso.rest.APIResponse;
 import org.openecomp.mso.rest.RESTClient
@@ -60,6 +59,7 @@
  * @param - serviceInstanceName - O
  * @param - serviceModelInfo - O
  * @param - productFamilyId
+ * @param - serviceInputParams (should contain aic_zone for serviceTypes TRANSPORT,ATM)
  * @param - sdncVersion 
  * @param - failNotFound - TODO
  * @param - serviceInputParams - TODO
@@ -74,7 +74,6 @@
 	String Prefix="DDELSI_"
 	ExceptionUtil exceptionUtil = new ExceptionUtil()
 	JsonUtils jsonUtil = new JsonUtils()
-	VidUtils vidUtils = new VidUtils()
 
 	public void preProcessRequest (Execution execution) {
 		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")
@@ -117,6 +116,30 @@
 			execution.setVariable("sdncCallbackUrl", sdncCallbackUrl)
 			utils.log("DEBUG","SDNC Callback URL: " + sdncCallbackUrl, isDebugEnabled)
 
+			StringBuilder sbParams = new StringBuilder()
+			Map<String, String> paramsMap = execution.getVariable("serviceInputParams")
+			if (paramsMap != null)
+			{
+				sbParams.append("<service-input-parameters>")
+				for (Map.Entry<String, String> entry : paramsMap.entrySet()) {
+					String paramsXml
+					String paramName = entry.getKey()
+					String paramValue = entry.getValue()
+					paramsXml =
+							"""	<param>
+							<name>${paramName}</name>
+							<value>${paramValue}</value>
+							</param>
+							"""
+					sbParams.append(paramsXml)
+				}
+				sbParams.append("</service-input-parameters>")
+			}
+			String siParamsXml = sbParams.toString()
+			if (siParamsXml == null)
+				siParamsXml = ""
+			execution.setVariable("siParamsXml", siParamsXml)
+
 		} catch (BpmnError e) {
 			throw e;
 		} catch (Exception ex){
@@ -133,12 +156,6 @@
 		String msg = ""
 
 		try {
-			/*
-			 String uuid = execution.getVariable('testReqId') // for junits
-			 if(uuid==null){
-			 uuid = execution.getVariable("msoRequestId") + "-" +  	System.currentTimeMillis()
-			 }
-			 */
 			def serviceInstanceId = execution.getVariable("serviceInstanceId")
 			def serviceInstanceName = execution.getVariable("serviceInstanceName")
 			def callbackURL = execution.getVariable("sdncCallbackUrl")
@@ -148,25 +165,25 @@
 			def globalSubscriberId = execution.getVariable("globalSubscriberId") //globalCustomerId
 
 			String serviceModelInfo = execution.getVariable("serviceModelInfo")
-			def modelInvariantId = ""
+			def modelInvariantUuid = ""
 			def modelVersion = ""
-			def modelUUId = ""
+			def modelUuid = ""
 			def modelName = ""
 			if (!isBlank(serviceModelInfo))
 			{
-				modelInvariantId = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantId")
+				modelInvariantUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelInvariantUuid")
 				modelVersion = jsonUtil.getJsonValue(serviceModelInfo, "modelVersion")
-				modelUUId = jsonUtil.getJsonValue(serviceModelInfo, "modelVersionId")
+				modelUuid = jsonUtil.getJsonValue(serviceModelInfo, "modelUuid")
 				modelName = jsonUtil.getJsonValue(serviceModelInfo, "modelName")
-				
-				if (modelInvariantId == null) {
-					modelInvariantId = ""
+
+				if (modelInvariantUuid == null) {
+					modelInvariantUuid = ""
 				}
 				if (modelVersion == null) {
 					modelVersion = ""
 				}
-				if (modelUUId == null) {
-					modelUUId = ""
+				if (modelUuid == null) {
+					modelUuid = ""
 				}
 				if (modelName == null) {
 					modelName = ""
@@ -178,11 +195,18 @@
 			if (serviceId == null) {
 				serviceId = ""
 			}
-			
+
+			def siParamsXml = execution.getVariable("siParamsXml")
+			def serviceType = execution.getVariable("serviceType")
+			if (serviceType == null)
+			{
+				serviceType = ""
+			}
+
 			def sdncRequestId = UUID.randomUUID().toString()
 
 			String sdncDelete =
-			"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"
+					"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 				   <sdncadapter:RequestHeader>
@@ -191,6 +215,7 @@
 							<sdncadapter:SvcAction>delete</sdncadapter:SvcAction>
 							<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>
 							<sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>
+							<sdncadapter:MsoAction>${serviceType}</sdncadapter:MsoAction>
 					</sdncadapter:RequestHeader>
 				<sdncadapterworkflow:SDNCRequestData>
 					<request-information>
@@ -205,8 +230,8 @@
 						<service-id>${serviceId}</service-id>
 						<subscription-service-type>${subscriptionServiceType}</subscription-service-type>
 						<ecomp-model-information>
-					         <model-invariant-uuid>${modelInvariantId}</model-invariant-uuid>
-					         <model-uuid>${modelUUId}</model-uuid>
+					         <model-invariant-uuid>${modelInvariantUuid}</model-invariant-uuid>
+					         <model-uuid>${modelUuid}</model-uuid>
 					         <model-version>${modelVersion}</model-version>
 					         <model-name>${modelName}</model-name>
 					    </ecomp-model-information>
@@ -216,6 +241,7 @@
 					</service-information>
 					<service-request-input>
 						<service-instance-name>${serviceInstanceName}</service-instance-name>
+						${siParamsXml}
 					</service-request-input>
 				</sdncadapterworkflow:SDNCRequestData>
 				</sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""
@@ -249,7 +275,7 @@
 			boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
 			utils.log("DEBUG", "SDNCResponse: " + response, isDebugEnabled)
 			utils.log("DEBUG", "workflowException: " + workflowException, isDebugEnabled)
-			
+
 			SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
 			sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)
 
@@ -280,6 +306,7 @@
 
 			String serviceInstanceId = execution.getVariable("serviceInstanceId")
 			boolean foundInAAI = execution.getVariable("GENGS_FoundIndicator")
+			String serviceType = ""
 
 			if(foundInAAI == true){
 				utils.log("DEBUG","Found Service-instance in AAI", isDebugEnabled)
@@ -304,18 +331,18 @@
 					}
 
 					//Extract Service Type if not provided on request
-					String serviceType = execution.getVariable("subscriptionServiceType")
-					if(isBlank(serviceType)){
+					String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+					if(isBlank(subscriptionServiceType)){
 						int serviceStart = siRelatedLink.indexOf("service-subscription/")
 						int serviceEnd = siRelatedLink.indexOf("/service-instances/")
 						String serviceTypeEncoded = siRelatedLink.substring(serviceStart + 21, serviceEnd)
-						serviceType = UriUtils.decode(serviceTypeEncoded, "UTF-8")
-						execution.setVariable("subscriptionServiceType", serviceType)
+						subscriptionServiceType = UriUtils.decode(serviceTypeEncoded, "UTF-8")
+						execution.setVariable("subscriptionServiceType", subscriptionServiceType)
 					}
 
-					if (isBlank(globalSubscriberId) || isBlank(serviceType))
+					if (isBlank(globalSubscriberId) || isBlank(subscriptionServiceType))
 					{
-						msg = "Could not retrive global-customer-id & service-type from AAI to delete id:" + serviceInstanceId
+						msg = "Could not retrive global-customer-id & subscription-service-type from AAI to delete id:" + serviceInstanceId
 						utils.log("DEBUG", msg, isDebugEnabled)
 						exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
 					}
@@ -332,6 +359,11 @@
 				else
 				{
 					utils.log("DEBUG", "SI Data" + siData, isDebugEnabled)
+					serviceType = utils.getNodeText1(siData,"service-type")
+					execution.setVariable("serviceType", serviceType)
+					execution.setVariable("serviceRole", utils.getNodeText1(siData,"service-role"))
+					String orchestrationStatus =  utils.getNodeText1(siData,"orchestration-status")
+
 					//Confirm there are no related service instances (vnf/network or volume)
 					if (utils.nodeExists(siData, "relationship-list")) {
 						utils.log("DEBUG", "SI Data relationship-list exists:", isDebugEnabled)
@@ -346,8 +378,8 @@
 							if (node.getNodeType() == Node.ELEMENT_NODE) {
 								Element eElement = (Element) node
 								def e = eElement.getElementsByTagName("related-to").item(0).getTextContent()
-								if(e.equals("generic-vnf") || e.equals("l3-network")){
-									utils.log("DEBUG", "ServiceInstance still has relationship(s) to generic-vnfs or l3-networks", isDebugEnabled)
+								if(e.equals("generic-vnf") || e.equals("l3-network") || e.equals("allotted-resource") ){
+									utils.log("DEBUG", "ServiceInstance still has relationship(s) to generic-vnfs, l3-networks or allotted-resources", isDebugEnabled)
 									execution.setVariable("siInUse", true)
 									//there are relationship dependencies to this Service Instance
 									msg = " Stopped deleting Service Instance, it has dependencies. Service instance id: " + serviceInstanceId
@@ -359,6 +391,21 @@
 							}
 						}
 					}
+
+					if ("TRANSPORT".equalsIgnoreCase(serviceType))
+					{
+						if ("PendingDelete".equals(orchestrationStatus))
+						{
+							execution.setVariable("skipDeactivate", true)
+						}
+						else
+						{
+							msg = "ServiceInstance of type TRANSPORT must in PendingDelete status to allow Delete. Orchestration-status:" + orchestrationStatus
+							utils.log("DEBUG", msg, isDebugEnabled)
+							exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+						}
+
+					}
 				}
 			}else{
 				boolean succInAAI = execution.getVariable("GENGS_SuccessIndicator")
@@ -376,6 +423,7 @@
 						exceptionUtil.buildAndThrowWorkflowException(execution, 2500, msg)
 					}
 				}
+
 				utils.log("DEBUG","Service-instance NOT found in AAI. Silent Success", isDebugEnabled)
 			}
 		} catch (BpmnError e) {
@@ -387,7 +435,7 @@
 		}
 		utils.log("DEBUG"," *** Exit postProcessAAIGET *** ", isDebugEnabled)
 	}
-	
+
 	public void postProcessAAIDEL(Execution execution) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 		utils.log("DEBUG"," ***** postProcessAAIDEL ***** ", isDebugEnabled)
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModule.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModule.groovy
index cd9c798..afb0983 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModule.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModule.groovy
@@ -36,6 +36,8 @@
 import org.w3c.dom.Document
 import org.w3c.dom.Element
 import org.xml.sax.InputSource
+import org.w3c.dom.Node
+import org.w3c.dom.NodeList;
 
 
 /* Subflow for Delete VF Module. When no DoDeleteVfModuleRequest is specified on input,
@@ -51,6 +53,7 @@
 * @param - vfModuleModelInfo
 * @param - cloudConfiguration*
 * @param - sdncVersion ("1610")
+* @param - retainResources 
 *
 * Outputs:
 * @param - WorkflowException
@@ -114,7 +117,12 @@
 				//vfModuleModelName
 				def vfModuleModelName = jsonUtil.getJsonValue(vfModuleModelInfo, "modelName")
 				execution.setVariable("vfModuleModelName", vfModuleModelName)
-
+				// retainResources
+				def retainResources = execution.getVariable("retainResources")			
+				if (retainResources == null) {
+					retainResources  = false
+				}
+				execution.setVariable("retainResources", retainResources)
 			}
 			else {
 
@@ -179,6 +187,11 @@
 	public void prepSDNCAdapterRequest(Execution execution, String action) {
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 
+		String uuid = execution.getVariable('testReqId') // for junits
+		if(uuid==null){
+			uuid = execution.getVariable("requestId") + "-" +  	System.currentTimeMillis()
+		}
+		
 		def srvInstId = execution.getVariable("srvInstId")
 		def callbackUrl = execution.getVariable("URN_mso_workflow_sdncadapter_callback")
 		String requestId = execution.getVariable("requestId")
@@ -198,11 +211,16 @@
 		}
 		String vfModuleModelName = execution.getVariable("vfModuleModelName")
 		String cloudSiteId = execution.getVariable("cloudSiteId")
+		boolean retainResources = execution.getVariable("retainResources")
+		String requestSubActionString = ""
+		if (retainResources) {
+			requestSubActionString = "<request-sub-action>RetainResource</request-sub-action>"			
+		}
 		String request = """<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 						      <sdncadapter:RequestHeader>
-						         <sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+						         <sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 						         <sdncadapter:SvcInstanceId>${vfModuleId}</sdncadapter:SvcInstanceId>
 						         <sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 						         <sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -212,6 +230,7 @@
 						         <request-information>
 						            <request-id>${requestId}</request-id>
 						            <request-action>DisconnectVNFRequest</request-action>
+									${requestSubActionString}
 						            <source>${source}</source>
 						            <notification-url/>
 						            <order-number/>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleFromVnf.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleFromVnf.groovy
new file mode 100644
index 0000000..4166343
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleFromVnf.groovy
@@ -0,0 +1,613 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import javax.xml.parsers.DocumentBuilder

+import javax.xml.parsers.DocumentBuilderFactory

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.runtime.Execution

+import org.openecomp.mso.bpmn.common.scripts.AaiUtil

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils

+import org.openecomp.mso.bpmn.common.scripts.VfModule

+import org.openecomp.mso.bpmn.common.scripts.VfModuleBase

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.rest.RESTClient

+import org.openecomp.mso.rest.RESTConfig

+import org.springframework.web.util.UriUtils

+import org.w3c.dom.Document

+import org.w3c.dom.Element

+import org.xml.sax.InputSource

+

+public class DoDeleteVfModuleFromVnf extends VfModuleBase {

+

+	def Prefix="DDVFMV_"

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	JsonUtils jsonUtil = new JsonUtils()

+

+	public void initProcessVariables(Execution execution) {

+		execution.setVariable("prefix",Prefix)

+		execution.setVariable("DDVFMV_contrailNetworkPolicyFqdnList", null)

+	}

+

+	// parse the incoming request

+	public void preProcessRequest(Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+		initProcessVariables(execution)

+

+		try {

+			

+				// Building Block-type request

+

+				// Set mso-request-id to request-id for VNF Adapter interface

+				String requestId = execution.getVariable("msoRequestId")

+				execution.setVariable("mso-request-id", requestId)

+				execution.setVariable("requestId", requestId)

+				utils.log("DEBUG", "msoRequestId: " + requestId, isDebugEnabled)

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

+				utils.log("DEBUG", "tenantId: " + tenantId, isDebugEnabled)				

+				String cloudSiteId = execution.getVariable("lcpCloudRegionId")

+				execution.setVariable("cloudSiteId", cloudSiteId)

+				utils.log("DEBUG", "cloudSiteId: " + cloudSiteId, isDebugEnabled)

+				// Source is HARDCODED

+				String source = "VID"

+				execution.setVariable("source", source)

+				// isVidRequest is hardcoded to "true"

+				execution.setVariable("isVidRequest", "true")

+				// SrvInstId is hardcoded to empty

+				execution.setVariable("srvInstId", "")

+				// ServiceId is hardcoded to empty

+				execution.setVariable("serviceId", "")

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

+				utils.log("DEBUG", "serviceInstanceId: " + serviceInstanceId, isDebugEnabled)

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

+				utils.log("DEBUG", "vnfId: " + vnfId, isDebugEnabled)

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

+				utils.log("DEBUG", "vfModuleId: " + vfModuleId, isDebugEnabled)

+				if (serviceInstanceId == null || serviceInstanceId.isEmpty()) {

+					execution.setVariable(Prefix + "serviceInstanceIdToSdnc", vfModuleId)

+				}

+				else {

+					execution.setVariable(Prefix + "serviceInstanceIdToSdnc", serviceInstanceId)

+				}				

+				

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

+				if (sdncVersion == null) {

+					sdncVersion = "1707"

+				}

+				execution.setVariable(Prefix + "sdncVersion", sdncVersion)

+				utils.log("DEBUG", "Incoming Sdnc Version is: " + sdncVersion, isDebugEnabled)				

+				

+				String sdncCallbackUrl = (String) execution.getVariable('URN_mso_workflow_sdncadapter_callback')

+				if (sdncCallbackUrl == null || sdncCallbackUrl.trim().isEmpty()) {

+					def msg = 'Required variable \'URN_mso_workflow_sdncadapter_callback\' is missing'

+					logError(msg)

+					exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg)

+				}

+				execution.setVariable("sdncCallbackUrl", sdncCallbackUrl)

+				utils.logAudit("SDNC Callback URL: " + sdncCallbackUrl)

+				utils.log("DEBUG:", "SDNC Callback URL is: " + sdncCallbackUrl, isDebugEnabled)

+

+			

+			

+		}catch(BpmnError b){

+			throw b

+		}catch(Exception e){

+			utils.log("DEBUG", "Exception is: " + e.getMessage(), isDebugEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, "Internal Error encountered in PreProcess method!")

+		}

+	}

+	

+	public void queryAAIForVfModule(Execution execution) {

+		def method = getClass().getSimpleName() + '.queryAAIForVfModule(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def vnfId = execution.getVariable('vnfId')

+

+			AaiUtil aaiUriUtil = new AaiUtil(this)

+			def aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)

+			logDebug('AAI URI is: ' + aai_uri, isDebugLogEnabled)

+

+			String endPoint = execution.getVariable("URN_aai_endpoint") + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"

+

+			utils.logAudit("DoDeleteVfModuleFromVnf: AAI endPoint  : " + endPoint)

+

+			try {

+				RESTConfig config = new RESTConfig(endPoint);

+				def responseData = ''

+				def aaiRequestId = UUID.randomUUID().toString()

+				RESTClient client = new RESTClient(config).

+					addHeader('X-TransactionId', aaiRequestId).

+					addHeader('X-FromAppId', 'MSO').

+					addHeader('Content-Type', 'application/xml').

+					addHeader('Accept','application/xml');

+				logDebug('sending GET to AAI endpoint \'' + endPoint + '\'', isDebugLogEnabled)

+				APIResponse response = client.httpGet()

+				utils.logAudit("DoDeleteVfModuleFromVnf: - invoking httpGet to AAI")

+

+				responseData = response.getResponseBodyAsString()

+				execution.setVariable('DDVMFV_getVnfResponseCode', response.getStatusCode())

+				execution.setVariable('DDVMFV_getVnfResponse', responseData)

+

+				utils.logAudit("DoDeleteVfModuleFromVnf: AAI Response : " + responseData)

+				utils.logAudit("DoDeleteVfModuleFromVnf: AAI ResponseCode : " + response.getStatusCode())

+

+				logDebug('Response code:' + response.getStatusCode(), isDebugLogEnabled)

+				logDebug('Response:' + System.lineSeparator() + responseData, isDebugLogEnabled)			

+				

+			} catch (Exception ex) {

+				ex.printStackTrace()

+				logDebug('Exception occurred while executing AAI GET:' + ex.getMessage(), isDebugLogEnabled)

+				execution.setVariable('DDVMFV_getVnfResponseCode', 500)

+				execution.setVariable('DDVFMV_getVnfResponse', 'AAI GET Failed:' + ex.getMessage())

+			}

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in queryAAIForVfModule(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Validate the VF Module.  That is, confirm that a VF Module with the input VF Module ID

+	 * exists in the retrieved Generic VNF.  Then, check to make sure that if that VF Module

+	 * is the base VF Module and it's not the only VF Module for this Generic VNF, that we're not

+	 * attempting to delete it.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void validateVfModule(Execution execution) {

+		def method = getClass().getSimpleName() + '.validateVfModule(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def genericVnf = execution.getVariable('DDVMFV_getVnfResponse')

+			def vnfId = execution.getVariable('_vnfId')

+			def vfModuleId = execution.getVariable('vfModuleId')			

+			def VfModule vfModule = findVfModule(genericVnf, vfModuleId)

+			if (vfModule == null) {

+				def String msg = 'VF Module \'' + vfModuleId + '\' does not exist in Generic VNF \'' + vnfId + '\''

+				logDebug(msg, isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 1002, msg)

+			} else {

+				

+				if (isDebugLogEnabled) {

+					logDebug('VF Module \'' + vfModuleId + '\': isBaseVfModule=' + vfModule.isBaseVfModule() +

+						', isOnlyVfModule=' + vfModule.isOnlyVfModule(),

+						isDebugLogEnabled)

+				}

+				if (vfModule.isBaseVfModule() && !vfModule.isOnlyVfModule()) {

+					def String msg = 'Cannot delete VF Module \'' + vfModuleId +

+						'\'since it is the base VF Module and it\'s not the only VF Module in Generic VNF \'' + vnfId + '\''

+						logDebug("Received a BAD Response from VNF Adapter for CREATE_VF_MODULE Call.", isDebugLogEnabled)

+						exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "VNF Adapter Error")

+				}

+				

+				def heatStackId = vfModule.getElementText('heat-stack-id')

+				execution.setVariable('DDVMFV_heatStackId', heatStackId)

+				logDebug('VF Module heatStackId retrieved from AAI: ' + heatStackId, isDebugLogEnabled)

+			}

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in validateVfModule(): ' + e.getMessage())

+		}

+	}

+

+

+	public void preProcessSDNCDeactivateRequest(Execution execution){

+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)

+		

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

+	

+		try{

+			//Build SDNC Request

+			

+			String deactivateSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "deactivate")

+	

+			deactivateSDNCRequest = utils.formatXml(deactivateSDNCRequest)

+			execution.setVariable("DDVMFV_deactivateSDNCRequest", deactivateSDNCRequest)

+			logDebug("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest, isDebugLogEnabled)

+			utils.logAudit("Outgoing DeactivateSDNCRequest is: \n" + deactivateSDNCRequest)

+	

+		}catch(Exception e){

+			utils.log("ERROR", "Exception Occured Processing preProcessSDNCDeactivateRequest. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during preProcessSDNCDeactivateRequest Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED preProcessSDNCDeactivateRequest ======== ", isDebugLogEnabled)

+	}

+

+	public void preProcessSDNCUnassignRequest(Execution execution) {

+		def method = getClass().getSimpleName() + '.preProcessSDNCUnassignRequest(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)

+		try{			

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

+	

+			String unassignSDNCRequest = buildSDNCRequest(execution, serviceInstanceId, "unassign")

+	

+			execution.setVariable("DDVMFV_unassignSDNCRequest", unassignSDNCRequest)

+			logDebug("Outgoing UnassignSDNCRequest is: \n" + unassignSDNCRequest, isDebugLogEnabled)

+			utils.logAudit("Outgoing UnassignSDNCRequest is: \n"  + unassignSDNCRequest)

+	

+		}catch(Exception e){

+			log.debug("Exception Occured Processing preProcessSDNCUnassignRequest. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occured during  preProcessSDNCUnassignRequest Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED  preProcessSDNCUnassignRequest Process ======== ", isDebugLogEnabled)

+	}

+

+	public String buildSDNCRequest(Execution execution, String svcInstId, String action){

+	

+			String uuid = execution.getVariable('testReqId') // for junits

+			if(uuid==null){

+				uuid = execution.getVariable("msoRequestId") + "-" +  	System.currentTimeMillis()

+			}

+			def callbackURL = execution.getVariable("sdncCallbackUrl")	

+			def requestId = execution.getVariable("msoRequestId")

+			def serviceId = execution.getVariable("serviceId")

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

+			def vfModuleId = execution.getVariable("vfModuleId")

+			def source = execution.getVariable("source")

+			def vnfId = execution.getVariable("vnfId")

+				

+			def sdncVersion = execution.getVariable(Prefix + "sdncVersion")

+			

+			String sdncRequest =

+			"""<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+													xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+	   <sdncadapter:RequestHeader>

+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>

+				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>

+				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>

+				<sdncadapter:SvcOperation>vf-module-topology-operation</sdncadapter:SvcOperation>

+				<sdncadapter:CallbackUrl>${callbackURL}</sdncadapter:CallbackUrl>

+				<sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+		</sdncadapter:RequestHeader>

+	<sdncadapterworkflow:SDNCRequestData>

+		<request-information>

+			<request-id>${requestId}</request-id>

+			<request-action>DeleteVfModuleInstance</request-action>

+			<source>${source}</source>

+			<notification-url/>

+			<order-number/>

+			<order-version/>

+		</request-information>

+		<service-information>

+			<service-id/>

+			<subscription-service-type/>			

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

+			<global-customer-id/>

+		</service-information>

+		<vnf-information>

+			<vnf-id>${vnfId}</vnf-id>

+			<vnf-type/>			

+		</vnf-information>

+		<vf-module-information>

+			<vf-module-id>${vfModuleId}</vf-module-id>

+		</vf-module-information>

+		<vf-module-request-input/>		

+	</sdncadapterworkflow:SDNCRequestData>

+	</sdncadapterworkflow:SDNCAdapterWorkflowRequest>"""

+	

+		utils.logAudit("sdncRequest:  " + sdncRequest)

+		return sdncRequest

+	}

+	

+	public void validateSDNCResponse(Execution execution, String response, String method){

+		def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix",Prefix)

+		logDebug(" *** STARTED ValidateSDNCResponse Process*** ", isDebugLogEnabled)

+	

+		WorkflowException workflowException = execution.getVariable("WorkflowException")

+		boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")

+	

+		utils.logAudit("workflowException: " + workflowException)

+	

+		SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)

+		sdncAdapterUtils.validateSDNCResponse(execution, response, workflowException, successIndicator)

+	

+		utils.logAudit("SDNCResponse: " + response)

+	

+		String sdncResponse = response

+		if(execution.getVariable(Prefix + 'sdncResponseSuccess') == true){

+			logDebug("Received a Good Response from SDNC Adapter for " + method + " SDNC Call.  Response is: \n" + sdncResponse, isDebugLogEnabled)

+		}else{

+			logDebug("Received a BAD Response from SDNC Adapter for " + method + " SDNC Call.", isDebugLogEnabled)

+			throw new BpmnError("MSOWorkflowException")

+		}

+		logDebug(" *** COMPLETED ValidateSDNCResponse Process*** ", isDebugLogEnabled)

+	}

+

+

+	// parse the incoming DELETE_VF_MODULE request

+	// and formulate the outgoing VnfAdapterDeleteV1 request

+	public void prepVNFAdapterRequest(Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+		def requestId = UUID.randomUUID().toString()

+		def origRequestId = execution.getVariable('requestId')

+		def srvInstId = execution.getVariable("serviceInstanceId")

+		def aicCloudRegion = execution.getVariable("cloudSiteId")

+		def vnfId = execution.getVariable("vnfId")

+		def vfModuleId = execution.getVariable("vfModuleId")

+		def vfModuleStackId = execution.getVariable('DDVMFV_heatStackId')

+		def tenantId = execution.getVariable("tenantId")

+		def messageId = execution.getVariable('requestId') + '-' +

+			System.currentTimeMillis()

+		def notificationUrl = createCallbackURL(execution, "VNFAResponse", messageId)

+		def useQualifiedHostName = execution.getVariable("URN_mso_use_qualified_host")

+		if ('true'.equals(useQualifiedHostName)) {

+			notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl)

+		}

+

+		String request = """

+			<deleteVfModuleRequest>

+			    <cloudSiteId>${aicCloudRegion}</cloudSiteId>

+			    <tenantId>${tenantId}</tenantId>

+			    <vnfId>${vnfId}</vnfId>

+			    <vfModuleId>${vfModuleId}</vfModuleId>

+			    <vfModuleStackId>${vfModuleStackId}</vfModuleStackId>

+			    <skipAAI>true</skipAAI>

+			    <msoRequest>

+			        <requestId>${origRequestId}</requestId>

+			        <serviceInstanceId>${srvInstId}</serviceInstanceId>

+			    </msoRequest>

+			    <messageId>${messageId}</messageId>

+			    <notificationUrl>${notificationUrl}</notificationUrl>

+			</deleteVfModuleRequest>

+			""" as String

+

+		utils.log("DEBUG", "vnfAdapterRestV1Request: " + request, isDebugEnabled)

+		utils.logAudit("deleteVfModuleRequest: " + request)

+		execution.setVariable("vnfAdapterRestV1Request", request)

+	}

+

+	

+	// generates a WorkflowException if

+	//		-

+	public void handleDoDeleteVfModuleFailure(Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+		utils.log("ERROR", "AAI error occurred deleting the Generic Vnf: "

+			+ execution.getVariable("DDVFMV_deleteGenericVnfResponse"), isDebugEnabled)

+		String processKey = getProcessKey(execution);

+		WorkflowException exception = new WorkflowException(processKey, 5000,

+			execution.getVariable("DDVFMV_deleteGenericVnfResponse"))

+		execution.setVariable("WorkflowException", exception)

+	}

+	

+	public void postProcessVNFAdapterRequest(Execution execution) {

+		def method = getClass().getSimpleName() + '.postProcessVNFAdapterRequest(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable("prefix",Prefix)

+		try{

+		logDebug(" *** STARTED postProcessVNFAdapterRequest Process*** ", isDebugLogEnabled)

+		

+		String vnfResponse = execution.getVariable("DDVMFV_doDeleteVfModuleResponse")

+		logDebug("VNF Adapter Response is: " + vnfResponse, isDebugLogEnabled)

+		utils.logAudit("deleteVnfAResponse is: \n"  + vnfResponse)

+

+		if(vnfResponse != null){

+

+			if(vnfResponse.contains("deleteVfModuleResponse")){

+				logDebug("Received a Good Response from VNF Adapter for DELETE_VF_MODULE Call.", isDebugLogEnabled)

+				execution.setVariable("DDVFMV_vnfVfModuleDeleteCompleted", true)

+

+				// Parse vnfOutputs for contrail network polcy FQDNs

+				if (vnfResponse.contains("vfModuleOutputs")) {

+					def vfModuleOutputsXml = utils.getNodeXml(vnfResponse, "vfModuleOutputs")

+					InputSource source = new InputSource(new StringReader(vfModuleOutputsXml));

+			DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();

+			docFactory.setNamespaceAware(true)

+			DocumentBuilder docBuilder = docFactory.newDocumentBuilder()

+			Document outputsXml = docBuilder.parse(source)

+

+					NodeList entries = outputsXml.getElementsByTagNameNS("*", "entry")

+					List contrailNetworkPolicyFqdnList = []

+					for (int i = 0; i< entries.getLength(); i++) {

+						Node node = entries.item(i)

+						if (node.getNodeType() == Node.ELEMENT_NODE) {

+							Element element = (Element) node

+							String key = element.getElementsByTagNameNS("*", "key").item(0).getTextContent()

+							if (key.endsWith("contrail_network_policy_fqdn")) {

+								String contrailNetworkPolicyFqdn = element.getElementsByTagNameNS("*", "value").item(0).getTextContent()

+								logDebug("Obtained contrailNetworkPolicyFqdn: " + contrailNetworkPolicyFqdn, isDebugLogEnabled)

+								contrailNetworkPolicyFqdnList.add(contrailNetworkPolicyFqdn)

+							}

+							else if (key.equals("oam_management_v4_address")) {

+								String oamManagementV4Address = element.getElementsByTagNameNS("*", "value").item(0).getTextContent()

+								logDebug("Obtained oamManagementV4Address: " + oamManagementV4Address, isDebugLogEnabled)

+								execution.setVariable(Prefix + "oamManagementV4Address", oamManagementV4Address)

+							}

+							else if (key.equals("oam_management_v6_address")) {

+								String oamManagementV6Address = element.getElementsByTagNameNS("*", "value").item(0).getTextContent()

+								logDebug("Obtained oamManagementV6Address: " + oamManagementV6Address, isDebugLogEnabled)

+								execution.setVariable(Prefix + "oamManagementV6Address", oamManagementV6Address)

+							}

+

+						}

+					}

+					if (!contrailNetworkPolicyFqdnList.isEmpty()) {

+						logDebug("Setting the fqdn list", isDebugLogEnabled)

+						execution.setVariable("DDVFMV_contrailNetworkPolicyFqdnList", contrailNetworkPolicyFqdnList)

+					}

+				}

+			}else{

+				logDebug("Received a BAD Response from VNF Adapter for DELETE_VF_MODULE Call.", isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "VNF Adapter Error")

+			}

+		}else{

+			logDebug("Response from VNF Adapter is Null for DELETE_VF_MODULE Call.", isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Empty response from VNF Adapter")

+		}

+

+		}catch(BpmnError b){

+			throw b

+		}catch(Exception e){

+			logDebug("Internal Error Occured in PostProcess Method", isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Internal Error Occured in PostProcess Method")

+		}

+		logDebug(" *** COMPLETED postProcessVnfAdapterResponse Process*** ", isDebugLogEnabled)

+	}

+

+	public void deleteNetworkPoliciesFromAAI(Execution execution) {

+		def method = getClass().getSimpleName() + '.deleteNetworkPoliciesFromAAI(' +

+		'execution=' + execution.getId() +

+		')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED deleteNetworkPoliciesFromAAI ======== ", isDebugLogEnabled)

+

+		try {

+			// get variables

+			List fqdnList = execution.getVariable("DDVFMV_contrailNetworkPolicyFqdnList")

+			if (fqdnList == null) {

+				logDebug("No network policies to delete", isDebugLogEnabled)

+				return

+			}

+			int fqdnCount = fqdnList.size()

+

+			execution.setVariable("DDVFMV_networkPolicyFqdnCount", fqdnCount)

+			logDebug("DDVFMV_networkPolicyFqdnCount - " + fqdnCount, isDebugLogEnabled)

+

+			String aai_endpoint = execution.getVariable("URN_aai_endpoint")

+			AaiUtil aaiUriUtil = new AaiUtil(this)

+			String aai_uri = aaiUriUtil.getNetworkPolicyUri(execution)

+

+			if (fqdnCount > 0) {

+				// AII loop call over contrail network policy fqdn list

+				for (i in 0..fqdnCount-1) {

+

+					int counting = i+1

+					String fqdn = fqdnList[i]

+

+					// Query AAI for this network policy FQDN

+

+					String queryNetworkPolicyByFqdnAAIRequest = "${aai_endpoint}${aai_uri}?network-policy-fqdn=" + UriUtils.encode(fqdn, "UTF-8")

+					utils.logAudit("AAI request endpoint: " + queryNetworkPolicyByFqdnAAIRequest)

+					logDebug("AAI request endpoint: "  + queryNetworkPolicyByFqdnAAIRequest, isDebugLogEnabled)

+

+					APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryNetworkPolicyByFqdnAAIRequest)

+					int returnCode = response.getStatusCode()

+					execution.setVariable("DCVFM_aaiQueryNetworkPolicyByFqdnReturnCode", returnCode)

+					logDebug(" ***** AAI query network policy Response Code, NetworkPolicy #" + counting + " : " + returnCode, isDebugLogEnabled)

+

+					String aaiResponseAsString = response.getResponseBodyAsString()

+

+					if (isOneOf(returnCode, 200, 201)) {

+						logDebug("The return code is: "  + returnCode, isDebugLogEnabled)

+						// This network policy FQDN exists in AAI - need to delete it now

+						utils.logAudit(aaiResponseAsString)

+						execution.setVariable("DDVFMV_queryNetworkPolicyByFqdnAAIResponse", aaiResponseAsString)

+						logDebug("QueryAAINetworkPolicyByFQDN Success REST Response, , NetworkPolicy #" + counting + " : " + "\n" + aaiResponseAsString, isDebugLogEnabled)

+						// Retrieve the network policy id for this FQDN

+						def networkPolicyId = utils.getNodeText1(aaiResponseAsString, "network-policy-id")

+						logDebug("Deleting network-policy with network-policy-id " + networkPolicyId, isDebugLogEnabled)

+

+						// Retrieve the resource version for this network policy

+						def resourceVersion = utils.getNodeText1(aaiResponseAsString, "resource-version")

+						logDebug("Deleting network-policy with resource-version " + resourceVersion, isDebugLogEnabled)

+

+						String delNetworkPolicyAAIRequest = "${aai_endpoint}${aai_uri}/" + UriUtils.encode(networkPolicyId, "UTF-8") +

+							"?resource-version=" + UriUtils.encode(resourceVersion, "UTF-8")

+						utils.logAudit("AAI request endpoint: " + delNetworkPolicyAAIRequest)

+						logDebug("AAI request endpoint: " + delNetworkPolicyAAIRequest, isDebugLogEnabled)

+

+						logDebug("invoking DELETE call to AAI", isDebugLogEnabled)

+						utils.logAudit("Sending DELETE call to AAI with Endpoint /n" + delNetworkPolicyAAIRequest)

+						APIResponse responseDel = aaiUriUtil.executeAAIDeleteCall(execution, delNetworkPolicyAAIRequest)

+						int returnCodeDel = responseDel.getStatusCode()

+						execution.setVariable("DDVFMV_aaiDeleteNetworkPolicyReturnCode", returnCodeDel)

+						logDebug(" ***** AAI delete network policy Response Code, NetworkPolicy #" + counting + " : " + returnCodeDel, isDebugLogEnabled)

+

+						if (isOneOf(returnCodeDel, 200, 201, 204)) {

+							logDebug("The return code from deleting network policy is: "  + returnCodeDel, isDebugLogEnabled)

+							// This network policy was deleted from AAI successfully

+							logDebug(" DelAAINetworkPolicy Success REST Response, , NetworkPolicy #" + counting + " : ", isDebugLogEnabled)

+

+						} else {

+								// aai all errors

+								String delErrorMessage = "Unable to delete network-policy to AAI deleteNetworkPoliciesFromAAI - " + returnCodeDel

+							 logDebug(delErrorMessage, isDebugLogEnabled)

+							 exceptionUtil.buildAndThrowWorkflowException(execution, 2500, delErrorMessage)

+						}

+					} else if (returnCode == 404) {

+						// This network policy FQDN is not in AAI. No need to delete.

+						logDebug("The return code is: "  + returnCode, isDebugLogEnabled)

+						logDebug("This network policy FQDN is not in AAI: " + fqdn, isDebugLogEnabled)

+						utils.logAudit("Network policy FQDN is not in AAI")

+					} else {

+					   if (aaiResponseAsString.contains("RESTFault")) {

+						   WorkflowException exceptionObject = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+						   execution.setVariable("WorkflowException", exceptionObject)

+						   throw new BpmnError("MSOWorkflowException")

+

+						   } else {

+								// aai all errors

+								String dataErrorMessage = "Unexpected Response from deleteNetworkPoliciesFromAAI - " + returnCode

+								logDebug(dataErrorMessage, isDebugLogEnabled)

+								exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)

+

+						  }

+					}

+

+

+

+				} // end loop

+

+

+			} else {

+				   logDebug("No contrail network policies to query/create", isDebugLogEnabled)

+

+			}

+

+		} catch (BpmnError e) {

+			throw e;

+

+		} catch (Exception ex) {

+			String exceptionMessage = "Bpmn error encountered in DoDeletVfModule flow. deleteNetworkPoliciesFromAAI() - " + ex.getMessage()

+			logDebug(exceptionMessage, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)

+		}

+

+	}	

+	

+	// and formulate the outgoing DeleteAAIVfModuleRequest request

+	public void prepDeleteAAIVfModule(Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+

+		def vnfId = execution.getVariable("vnfId")

+		def vfModuleId = execution.getVariable("vfModuleId")

+		// formulate the request for UpdateAAIVfModule

+		String request = """<DeleteAAIVfModuleRequest>

+								<vnf-id>${vnfId}</vnf-id>

+								<vf-module-id>${vfModuleId}</vf-module-id>

+							</DeleteAAIVfModuleRequest>""" as String

+		utils.log("DEBUG", "DeleteAAIVfModuleRequest :" + request, isDebugEnabled)

+		utils.logAudit("DeleteAAIVfModuleRequest: " + request)

+		execution.setVariable("DeleteAAIVfModuleRequest", request)

+	}

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleVolumeV2.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleVolumeV2.groovy
new file mode 100644
index 0000000..c2952ad
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVfModuleVolumeV2.groovy
@@ -0,0 +1,358 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+

+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import groovy.json.JsonSlurper

+import groovy.util.XmlParser;

+

+import java.util.concurrent.ExecutionException;

+

+import org.springframework.web.util.UriUtils

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.runtime.Execution

+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.core.WorkflowException

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.rest.APIResponse

+import org.apache.commons.lang3.*

+

+class DoDeleteVfModuleVolumeV2 extends AbstractServiceTaskProcessor {

+

+	String prefix="DDVMV_"

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	XmlParser xmlParser = new XmlParser()

+	JsonUtils jsonUtil = new JsonUtils()

+	

+	@Override

+	public void preProcessRequest(Execution execution) {

+		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")

+		preProcessRequest(execution, isDebugEnabled)	

+	}

+	

+	/**

+	 * Set default variable values

+	 * @param execution

+	 * @param isDebugLogEnabled

+	 */

+	public void preProcessRequest (Execution execution, isDebugEnabled) {

+		

+		//Input:

+		//  msoRequestId

+		//  isDebugLogEnabled

+		//  failIfNotFound (Optional)

+		//  serviceInstanceId (Optional)

+		//  vnfId (Optional)

+		//  volumeGroupId

+		//  vfModuleModelInfo (Optional)

+		//  lcpCloudRegionId (Optional)			@TODO: this is actually required

+		//  tenantId (Optional)					@TODO: this is actually required

+		//  cloudConfiguration					@TODO: temporary solution? this contains lcpCloudregion and tenantId

+		//

+		//Output:

+		//  workflowException					@TODO: actual variable name is WorkflowException

+		//  rolledBack

+		//  wasDeleted

+		

+		execution.setVariable('prefix', prefix)

+		execution.setVariable('wasDeleted', 'false')

+		

+		def tenantId = execution.getVariable("tenantId")

+		def cloudSiteId = execution.getVariable("lcpCloudRegionId")

+		

+		// if tenantId or lcpCloudregionId is not passed, get it from cloudRegionConfiguration variable

+		if(!tenantId || !cloudSiteId) {

+			def cloudConfiguration = execution.getVariable("cloudConfiguration")

+			utils.log("DEBUG", "Using cloudConfiguration variable to get tenantId and lcpCloudRegionId - " + cloudConfiguration, isDebugEnabled)

+			tenantId = jsonUtil.getJsonValue(cloudConfiguration, "tenantId")

+			execution.setVariable("tenantId", tenantId)

+			cloudSiteId = jsonUtil.getJsonValue(cloudConfiguration, "lcpCloudRegionId")

+			execution.setVariable("lcpCloudRegionId", cloudSiteId)

+		}

+	}

+	

+	

+	/**

+	 * Set out 'wasDeleted' variable to 'true'

+	 * @param execution

+	 * @param isDebugLogEnabled

+	 */

+	public void postProcess(Execution execution, isDebugLogEnabled) {

+		execution.setVariable('wasDeleted', 'true')

+	}

+	

+	

+	/**

+	 * Query and set cloud region to use for AAI calls

+	 * Output variables: prefix+'aicCloudRegion', prefix+'cloudRegion'

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTQueryAAICloudRegion(Execution execution, isDebugEnabled) {

+		

+		String cloudRegion = execution.getVariable('lcpCloudRegionId')					

+		String aai_endpoint = execution.getVariable("URN_aai_endpoint")

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aai_uri = aaiUtil.getCloudInfrastructureCloudRegionUri(execution)

+		String queryCloudRegionRequest = "${aai_endpoint}${aai_uri}/" + cloudRegion

+		utils.logAudit(queryCloudRegionRequest)

+		utils.log("DEBUG", "AAI query cloud region URI - " + queryCloudRegionRequest, isDebugEnabled)

+

+		cloudRegion = aaiUtil.getAAICloudReqion(execution,  queryCloudRegionRequest, "PO", cloudRegion)

+

+		if ((cloudRegion != "ERROR")) {

+			if(execution.getVariable(prefix+"queryCloudRegionReturnCode") == "404") {

+				execution.setVariable(prefix+"aicCloudRegion", "AAIAIC25")

+			}

+			else{

+				execution.setVariable(prefix+"aicCloudRegion", cloudRegion)

+			}

+		} 

+		else {

+			utils.log("DEBUG", "AAI Query Cloud Region Unsuccessful.", isDebugEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "AAI Query Cloud Region Unsuccessful. Return Code: " + execution.getVariable(prefix+"queryCloudRegionReturnCode"))

+		}

+	}

+	

+	

+	/**

+	 * Query AAI Volume Group

+	 * Output variables: prefix+'queryAAIVolGrpResponse'; prefix+'volumeGroupHeatStackId'

+	 * @param execution

+	 * @param isDebugLogEnabled

+	 */

+	public void callRESTQueryAAIForVolumeGroup(Execution execution, isDebugLogEnabled) {

+		

+		def tenantId = execution.getVariable('tenantId')								

+		def volumeGroupId = execution.getVariable('volumeGroupId')						

+		if(volumeGroupId == null) {

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, 'volumeGroupId is not provided in the request')

+			throw new Exception('volume-group-id is not provided in the request')

+		}

+		String cloudRegion = execution.getVariable(prefix+'aicCloudRegion')

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String queryAAIVolumeGroupRequest = aaiEndpoint + '/' + URLEncoder.encode(cloudRegion, "UTF-8") + "/volume-groups/volume-group/" + UriUtils.encode(volumeGroupId, "UTF-8")

+

+		utils.logAudit('Query AAI volume group by ID: ' + queryAAIVolumeGroupRequest)

+		logDebug('Query AAI volume group by ID: ' + queryAAIVolumeGroupRequest, isDebugLogEnabled)

+

+		APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIVolumeGroupRequest)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI query volume group by id return code: " + returnCode)

+		utils.logAudit("AAI query volume group by id response: " + aaiResponseAsString)

+		logDebug('AAI query volume group by id return code: ' + returnCode, isDebugLogEnabled)

+		logDebug('AAI query volume group by id response: ' + aaiResponseAsString, isDebugLogEnabled)

+

+		execution.setVariable(prefix+"queryAAIVolGrpResponse", aaiResponseAsString)

+

+		if (returnCode=='200' || returnCode == '204') {

+

+			def heatStackId = getNodeTextForce(aaiResponseAsString, 'heat-stack-id')

+			execution.setVariable(prefix+'volumeGroupHeatStackId', heatStackId)

+

+			logDebug('Heat stack id from AAI response: ' + heatStackId, isDebugLogEnabled)

+			

+			if(hasVfModuleRelationship(aaiResponseAsString)){

+				utils.log("DEBUG", 'Volume Group ' + volumeGroupId + ' currently in use', isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume Group ${volumeGroupId} currently in use - found vf-module relationship.")

+			}

+

+			def volumeGroupTenantId = getTenantIdFromVolumeGroup(aaiResponseAsString)

+			logDebug('Tenant ID from AAI response: ' + volumeGroupTenantId, isDebugLogEnabled)

+			

+			if (volumeGroupTenantId == null) {

+				utils.log("DEBUG", "Could not find Tenant Id element in Volume Group with Volume Group Id ${volumeGroupId}", isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Could not find Tenant Id element in Volume Group with Volume Group Id ${volumeGroupId}")

+			}

+			

+			if (volumeGroupTenantId != tenantId) {

+				def String errorMessage = 'TenantId ' + tenantId + ' in incoming request does not match Tenant Id ' + volumeGroupTenantId +	' retrieved from AAI for Volume Group Id ' + volumeGroupId

+				utils.log("DEBUG", "Error in DeleteVfModuleVolume: " + errorMessage, isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 5000, errorMessage)

+			}

+			logDebug('Received Tenant Id ' + volumeGroupTenantId + ' from AAI for Volume Group with Volume Group Id ' + volumeGroupId , isDebugLogEnabled)

+		}

+		else {

+			if (returnCode=='404') {

+				utils.log("DEBUG", "Volume Group ${volumeGroupId} not found in AAI", isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume Group ${volumeGroupId} not found in AAI. Response code: 404")

+			}

+			else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+	

+	/**

+	 * Format VNF Adapter subflow request XML

+	 * Variables: prefix+'deleteVnfARequest'

+	 * @param execution

+	 * @param isDebugLogEnabled

+	 */

+	public void prepareVnfAdapterDeleteRequest(Execution execution, isDebugLogEnabled) {

+		def cloudRegion = execution.getVariable(prefix+'aicCloudRegion')

+		def tenantId = execution.getVariable('tenantId')										// input parameter (optional) - see preProcessRequest

+		def volumeGroupId = execution.getVariable('volumeGroupId')								// input parameter (required)	

+		def volumeGroupHeatStackId = execution.getVariable(prefix+'volumeGroupHeatStackId')		// from AAI query volume group

+		def requestId = execution.getVariable('msoRequestId')									// input parameter (required)

+		def serviceId = execution.getVariable('serviceInstanceId')								// imput parameter (optional)

+

+		def messageId = UUID.randomUUID().toString()

+		def notificationUrl = createCallbackURL(execution, "VNFAResponse", messageId)

+		def useQualifiedHostName = execution.getVariable("URN_mso_use_qualified_host")

+		if ('true'.equals(useQualifiedHostName)) {

+				notificationUrl = utils.getQualifiedHostNameForCallback(notificationUrl)

+		}

+

+		String vnfAdapterRestRequest = """

+			<deleteVolumeGroupRequest>

+				<cloudSiteId>${cloudRegion}</cloudSiteId>

+				<tenantId>${tenantId}</tenantId>

+				<volumeGroupId>${volumeGroupId}</volumeGroupId>

+				<volumeGroupStackId>${volumeGroupHeatStackId}</volumeGroupStackId>

+				<skipAAI>true</skipAAI>

+			    <msoRequest>

+			        <requestId>${requestId}</requestId>

+			        <serviceInstanceId>${serviceId}</serviceInstanceId>

+			    </msoRequest>

+			    <messageId>${messageId}</messageId>

+			    <notificationUrl>${notificationUrl}</notificationUrl>

+			</deleteVolumeGroupRequest>

+		"""

+		vnfAdapterRestRequest = utils.formatXml(vnfAdapterRestRequest)

+		execution.setVariable(prefix+'deleteVnfARequest', vnfAdapterRestRequest)

+		logDebug('Request for VNFAdapter Rest:\n' + vnfAdapterRestRequest, isDebugLogEnabled)

+	}

+	

+	

+	/**

+	 * Delete volume group in AAI

+	 * @param execution

+	 * @param isDebugEnabled

+	 */

+	public void callRESTDeleteAAIVolumeGroup(Execution execution, isDebugEnabled) {

+		

+		// get variables

+		String queryAAIVolGrpIdResponse = execution.getVariable(prefix+"queryAAIVolGrpResponse")

+		String groupId = utils.getNodeText(queryAAIVolGrpIdResponse, "volume-group-id")

+		String resourceVersion = utils.getNodeText(queryAAIVolGrpIdResponse, "resource-version")

+		

+		String messageId = UUID.randomUUID().toString()

+		String cloudRegion = execution.getVariable(prefix+'aicCloudRegion')

+

+		AaiUtil aaiUtil = new AaiUtil(this)

+		String aaiEndpoint = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(execution)

+		String deleteAAIVolumeGrpIdRequest = aaiEndpoint + '/' + URLEncoder.encode(cloudRegion, "UTF-8")  + "/volume-groups/volume-group/" +  UriUtils.encode(groupId, "UTF-8")

+

+		if(resourceVersion !=null){

+			deleteAAIVolumeGrpIdRequest = deleteAAIVolumeGrpIdRequest +'?resource-version=' + UriUtils.encode(resourceVersion, 'UTF-8')

+		}

+

+		utils.logAudit('Delete AAI volume group : ' + deleteAAIVolumeGrpIdRequest)

+		utils.log("DEBUG", "Delete AAI volume group : " + deleteAAIVolumeGrpIdRequest, isDebugEnabled)

+

+		APIResponse response = aaiUtil.executeAAIDeleteCall(execution, deleteAAIVolumeGrpIdRequest)

+

+		String returnCode = response.getStatusCode()

+		String aaiResponseAsString = response.getResponseBodyAsString()

+		aaiResponseAsString = StringEscapeUtils.unescapeXml(aaiResponseAsString)

+

+		utils.logAudit("AAI delete volume group return code: " + returnCode)

+		utils.logAudit("AAI delete volume group response: " + aaiResponseAsString)

+		utils.log("DEBUG", "AAI delete volume group return code: " + returnCode, isDebugEnabled)

+		utils.log("DEBUG", "AAI delete volume group response: " + aaiResponseAsString, isDebugEnabled)

+

+		ExceptionUtil exceptionUtil = new ExceptionUtil()

+		if (returnCode=='200' || (returnCode == '204')) {

+			utils.log("DEBUG", "Volume group $groupId deleted.", isDebugEnabled)

+		} else {

+			if (returnCode=='404') {

+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Volume group $groupId not found for delete in AAI Response code: 404")

+			} else {

+				WorkflowException aWorkflowException = exceptionUtil.MapAAIExceptionToWorkflowException(aaiResponseAsString, execution)

+				throw new BpmnError("MSOWorkflowException")

+			}

+		}

+	}

+	

+	

+	/**

+	 * Check if volume group has a relationship to vf-module

+	 * @param volumeGroupXml

+	 * @return

+	 */

+	private boolean hasVfModuleRelationship(String volumeGroupXml) {

+		def Node volumeGroupNode = xmlParser.parseText(volumeGroupXml)

+		def Node relationshipList = utils.getChildNode(volumeGroupNode, 'relationship-list')

+		if (relationshipList != null) {

+			def NodeList relationships = utils.getIdenticalChildren(relationshipList, 'relationship')

+			for (Node relationship in relationships) {

+				def Node relatedTo = utils.getChildNode(relationship, 'related-to')

+				if ((relatedTo != null) && (relatedTo.text().equals('vf-module'))) {

+					def Node relatedLink = utils.getChildNode(relationship, 'related-link')

+					if (relatedLink !=null && relatedLink.text() != null){

+						return true

+					}

+				}

+			}

+		}

+		return false

+	}

+

+	

+	/**

+	 * Extract the Tenant Id from the Volume Group information returned by AAI.

+	 * @param volumeGroupXml Volume Group XML returned by AAI.

+	 * @return the Tenant Id extracted from the Volume Group information. 'null' is returned if

+	 * the Tenant Id is missing or could not otherwise be extracted.

+	 */

+	private String getTenantIdFromVolumeGroup(String volumeGroupXml) {

+		def Node volumeGroupNode = xmlParser.parseText(volumeGroupXml)

+		def Node relationshipList = utils.getChildNode(volumeGroupNode, 'relationship-list')

+		if (relationshipList != null) {

+			def NodeList relationships = utils.getIdenticalChildren(relationshipList, 'relationship')

+			for (Node relationship in relationships) {

+				def Node relatedTo = utils.getChildNode(relationship, 'related-to')

+				if ((relatedTo != null) && (relatedTo.text().equals('tenant'))) {

+					def NodeList relationshipDataList = utils.getIdenticalChildren(relationship, 'relationship-data')

+					for (Node relationshipData in relationshipDataList) {

+						def Node relationshipKey = utils.getChildNode(relationshipData, 'relationship-key')

+						if ((relationshipKey != null) && (relationshipKey.text().equals('tenant.tenant-id'))) {

+							def Node relationshipValue = utils.getChildNode(relationshipData, 'relationship-value')

+							if (relationshipValue != null) {

+								return relationshipValue.text()

+							}

+						}

+					}

+				}

+			}

+		}

+		return null

+	}

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVnfAndModules.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVnfAndModules.groovy
index 208caa7..23f0368 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVnfAndModules.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteVnfAndModules.groovy
@@ -23,7 +23,6 @@
 
 import org.json.JSONObject;
 import org.json.JSONArray;
-
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.runtime.Execution;
 
@@ -35,12 +34,12 @@
 import org.openecomp.mso.rest.RESTConfig
 import org.openecomp.mso.bpmn.common.scripts.AaiUtil
 import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor
-import org.openecomp.mso.bpmn.common.scripts.CatalogDbUtils
 import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
 import org.openecomp.mso.bpmn.common.scripts.SDNCAdapterUtils
 import org.openecomp.mso.bpmn.common.scripts.VidUtils
 import org.openecomp.mso.bpmn.core.RollbackData
 import org.openecomp.mso.bpmn.core.WorkflowException
+import org.springframework.web.util.UriUtils;
 
 /**
  * This class supports the macro VID Flow
@@ -69,7 +68,8 @@
 		try{
 			// Get Variables				
 			
-			String cloudConfiguration = execution.getVariable("cloudConfiguration")			
+			String cloudConfiguration = execution.getVariable("cloudConfiguration")		
+			utils.log("DEBUG", "Cloud Configuration: " + cloudConfiguration, isDebugEnabled)	
 			
 			String requestId = execution.getVariable("msoRequestId")
 			execution.setVariable("requestId", requestId)			
@@ -86,6 +86,8 @@
 			execution.setVariable("DDVAM_source", source)
 			utils.log("DEBUG", "Incoming Source is: " + source, isDebugEnabled)
 			
+			execution.setVariable("DDVAM_isVidRequest", "true")
+			
 			String sdncVersion = execution.getVariable("sdncVersion")
 			if (sdncVersion == null) {
 				sdncVersion = "1702"
@@ -165,7 +167,7 @@
 			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoCreateVnf PreProcessRequest")
 
 		}
-		utils.log("DEBUG", "*** COMPLETED DoCreateVnfAndModules PreProcessRequest Process ***", isDebugEnabled)
+		utils.log("DEBUG", "*** COMPLETED DoDeleteVnfAndModules PreProcessRequest Process ***", isDebugEnabled)
 	}	
 
 	
@@ -191,7 +193,7 @@
 			execution.setVariable("addOnVfModuleModelInfo", addOnVfModuleModelInfo)
 			String addOnVfModuleLabel = jsonUtil.getJsonValueForKey(addOnModule, "vfModuleLabel")
 			execution.setVariable("addOnVfModuleLabel", addOnVfModuleLabel)
-			String addOnPersonaModelId = jsonUtil.getJsonValueForKey(addOnVfModuleModelInfoObject, "modelInvariantId")
+			String addOnPersonaModelId = jsonUtil.getJsonValueForKey(addOnVfModuleModelInfoObject, "modelInvariantUuid")
 			execution.setVariable("addOnPersonaModelId", addOnPersonaModelId)
 			String addOnInitialCount = jsonUtil.getJsonValueForKey(addOnModule, "initialCount")
 			execution.setVariable("initialCount", addOnInitialCount)
@@ -389,7 +391,7 @@
 		
 				String uuid = execution.getVariable('testReqId') // for junits
 				if(uuid==null){
-					uuid = execution.getVariable("mso-request-id") + "-" +  	System.currentTimeMillis()
+					uuid = execution.getVariable("msoRequestId") + "-" +  	System.currentTimeMillis()
 				}
 				def callbackURL = execution.getVariable("sdncCallbackUrl")
 				def requestId = execution.getVariable("msoRequestId")
@@ -399,7 +401,7 @@
 				def vnfId = execution.getVariable("vnfId")
 				def serviceInstanceId = execution.getVariable("serviceInstanceId")
 				def cloudSiteId = execution.getVariable("DDVAM_cloudSiteId")				
-				def modelCustomizationId = execution.getVariable("DDVAM_modelCustomizationId")
+				def modelCustomizationId = execution.getVariable("DDVAM_modelCustomizationId")				
 				//def serviceModelInfo = execution.getVariable("serviceModelInfo")
 				//def vnfModelInfo = execution.getVariable("vnfModelInfo")
 				//String serviceEcompModelInformation = sdncAdapterUtils.modelInfoToEcompModelInformation(serviceModelInfo)
@@ -412,7 +414,7 @@
 													xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 													xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 	   <sdncadapter:RequestHeader>
-				<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+				<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 				<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
 				<sdncadapter:SvcAction>${action}</sdncadapter:SvcAction>
 				<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
index 5bd9f96..7feafcc 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstance.groovy
@@ -539,9 +539,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (vpnBindingUri[i].charAt(vpnBindingUri[i].length()-1) == '/') {
-						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i].substring(0, vpnBindingUri[i].length()-1)
+						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i].substring(0, vpnBindingUri[i].length()-1) + "?depth=all"
 						} else {
-						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i]
+						    queryVpnBindingAAIRequest = "${aai_endpoint}" + vpnBindingUri[i] + "?depth=all"
 						}
 
 					} else {
@@ -550,7 +550,7 @@
 						if (vpnBindingId.charAt(vpnBindingId.length()-1) == '/') {
 							vpnBindingId = vpnBindingId.substring(0, vpnBindingId.length()-1)
 						}
-					    queryVpnBindingAAIRequest = "${aai_endpoint}${aai_uri}/" + vpnBindingId
+					    queryVpnBindingAAIRequest = "${aai_endpoint}${aai_uri}/" + vpnBindingId + "?depth=all"
 					}
 
 					utils.logAudit(queryVpnBindingAAIRequest)
@@ -673,9 +673,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (networkPolicyUriList[i].charAt(networkPolicyUriList[i].length()-1) == '/') {
-							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i].substring(0, networkPolicyUriList[i].length()-1)
+							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i].substring(0, networkPolicyUriList[i].length()-1) + "?depth=all"
 						} else {
-							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i]
+							queryNetworkPolicyAAIRequest = "${aai_endpoint}" + networkPolicyUriList[i] + "?depth=all"
 						}
 					} else {
 						// using uri value in URN mapping
@@ -684,7 +684,7 @@
 						if (networkPolicyId.charAt(networkPolicyId.length()-1) == '/') {
 							networkPolicyId = networkPolicyId.substring(0, networkPolicyId.length()-1)
 						}
-						queryNetworkPolicyAAIRequest = "${aai_endpoint}${aai_uri}/" + networkPolicyId
+						queryNetworkPolicyAAIRequest = "${aai_endpoint}${aai_uri}/" + networkPolicyId + "?depth=all"
 
 					}
 
@@ -809,9 +809,9 @@
 					if (aai_uri == null || aai_uri == "") {
 						// using value of 'related-link' from response
 						if (networkTableRefUriList[i].charAt(networkTableRefUriList[i].length()-1) == '/') {
-							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i].substring(0, networkTableRefUriList[i].length()-1)
+							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i].substring(0, networkTableRefUriList[i].length()-1) + "?depth=all"
 						} else {
-							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i]
+							queryNetworkTableRefAAIRequest = "${aai_endpoint}" + networkTableRefUriList[i] + "?depth=all"
 						}
 					} else {
 						// using uri value in URN mapping
@@ -820,7 +820,7 @@
 						if (networkTableRefId.charAt(networkTableRefId.length()-1) == '/') {
 							networkTableRefId = networkTableRefId.substring(0, networkTableRefId.length()-1)
 						}
-						queryNetworkTableRefAAIRequest = "${aai_endpoint}${aai_uri}/" + networkTableRefId
+						queryNetworkTableRefAAIRequest = "${aai_endpoint}${aai_uri}/" + networkTableRefId + "?depth=all"
 
 					}
 
@@ -1308,7 +1308,7 @@
 		
 		try {
 			
-			if (execution.getVariable("sdncVersion") == '1702') {
+			if (execution.getVariable("sdncVersion") != '1610') {
 				// skip: 1702 for 'changeassign' or equivalent not yet defined in SNDC, so no rollback.
 			} else {
 				prepareSDNCRollbackRequest(execution)
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVfModule.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVfModule.groovy
index f07bb0d..87a6a73 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVfModule.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVfModule.groovy
@@ -36,6 +36,7 @@
 public class DoUpdateVfModule extends VfModuleBase {
 
 	ExceptionUtil exceptionUtil = new ExceptionUtil()
+	JsonUtils jsonUtil = new JsonUtils()
 
 	/**
 	 * Initialize the flow's variables.
@@ -62,6 +63,7 @@
 		execution.setVariable('DOUPVfMod_aicCloudRegion', null)
 		execution.setVariable('DOUPVfMod_tenantId', null)
 		execution.setVariable('DOUPVfMod_volumeGroupId', null)
+		execution.setVariable("DOUPVfMod_volumeGroupStackId", "")
 		execution.setVariable('DOUPVfMod_vfModule', null)
 		execution.setVariable('DOUPVfMod_vnfParams', null)
 		execution.setVariable("DOUPVfMod_baseVfModuleId", "")
@@ -110,18 +112,16 @@
 				
 
 				//tenantId
-				def tenantId = jsonUtil.getJsonValue(cloudConfiguration, "cloudConfiguration.tenantId")
+				def tenantId = execution.getVariable("tenantId")
 				execution.setVariable("DOUPVfMod_tenantId", tenantId)
 				
 				//volumeGroupId
 				def volumeGroupId = execution.getVariable("volumeGroupId")
 				execution.setVariable("DOUPVfMod_volumeGroupId", volumeGroupId)
-				//volumeGroupName
-				def volumeGroupName = execution.getVariable("volumeGroupName")
-				execution.setVariable("DOUPVfMod_volumeGroupName", volumeGroupName)
+				
 				//cloudSiteId
-				def cloudSiteId = jsonUtil.getJsonValue(cloudConfiguration, "cloudConfiguration.lcpCloudRegionId")
-				execution.setVariable("DOUPVfMod_cloudSiteId", cloudSiteId)
+				def cloudSiteId = execution.getVariable("lcpCloudRegionId")
+				execution.setVariable("DOUPVfMod_aicCloudRegion", cloudSiteId)
 				
 				logDebug("cloudSiteId: " + cloudSiteId, isDebugLogEnabled)
 				//vnfType
@@ -150,7 +150,10 @@
 				
 				logDebug("vfModuleModelName: " + vfModuleModelName, isDebugLogEnabled)
 				//modelCustomizationUuid
-				def modelCustomizationUuid = jsonUtil.getJsonValue(vfModuleModelInfo, "modelCustomizationId")
+				def modelCustomizationUuid = jsonUtil.getJsonValue(vfModuleModelInfo, "modelCustomizationUuid")
+				if (modelCustomizationUuid == null) {
+					modelCustomizationUuid = ""
+				}
 				execution.setVariable("DOUPVfMod_modelCustomizationUuid", modelCustomizationUuid)
 				
 				logDebug("modelCustomizationUuid: " + modelCustomizationUuid, isDebugLogEnabled)
@@ -158,7 +161,7 @@
 				def vfModuleId = execution.getVariable("vfModuleId")
 				execution.setVariable("DOUPVfMod_vfModuleId", vfModuleId)
 				logDebug("vfModuleId: " + vfModuleId, isDebugLogEnabled)
-				def requestId = execution.getVariable("requestId")
+				def requestId = execution.getVariable("msoRequestId")
 				execution.setVariable("DOUPVfMod_requestId", requestId)
 				logDebug("requestId: " + requestId, isDebugLogEnabled)
 				// Set mso-request-id to request-id for VNF Adapter interface
@@ -194,7 +197,7 @@
 				execution.setVariable("DOUPVfMod_asdcServiceModelVersion", asdcServiceModelVersion)
 				logDebug("asdcServiceModelVersion: " + asdcServiceModelVersion, isDebugLogEnabled)
 				//personaModelId
-				execution.setVariable("DOUPVfMod_personaModelId", jsonUtil.getJsonValue(vfModuleModelInfo, "modelInvariantId"))
+				execution.setVariable("DOUPVfMod_personaModelId", jsonUtil.getJsonValue(vfModuleModelInfo, "modelInvariantUuid"))
 				//personaModelVersion
 				execution.setVariable("DOUPVfMod_personaModelVersion", jsonUtil.getJsonValue(vfModuleModelInfo, "modelVersion"))
 				//Get or Generate UUID
@@ -211,6 +214,10 @@
 				if (isVidRequest == null || isVidRequest.isEmpty()) {
 					execution.setVariable("isVidRequest", "true")
 				}
+				//usePreload
+				def usePreload = execution.getVariable("usePreload")
+				execution.setVariable("DOUPVfMod_usePreload", usePreload)
+				logDebug("usePreload: " + usePreload, isDebugLogEnabled)
 				//globalSubscriberId
 				String globalSubscriberId = execution.getVariable("globalSubscriberId")
 				execution.setVariable("DOUPVfMod_globalSubscriberId", globalSubscriberId)
@@ -323,8 +330,8 @@
 	}
 
 	/**
-	 * Prepare a Request for invoking the ConfirmVolumeGroupTenant subflow.  Currently,
-	 * there is really nothing to do, so we just log that we're passing through.
+	 * Prepare a Request for invoking the ConfirmVolumeGroupTenant subflow.
+	 * Determine cloud region id for the volume group.
 	 *
 	 * @param execution The flow's execution instance.
 	 */
@@ -332,21 +339,54 @@
 		def method = getClass().getSimpleName() + '.prepConfirmVolumeGroupTenant(' +
 			'execution=' + execution.getId() +
 			')'
+		
+		def prefix = execution.getVariable("prefix")
 		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
 		logDebug('Entered ' + method, isDebugLogEnabled)
 
 		try {
-			// Nothing to do - just log that we're passing through here
+			String cloudRegion = execution.getVariable(prefix + "aicCloudRegion")
 
-			logDebug('Exited ' + method, isDebugLogEnabled)
-		} catch (BpmnError e) {
-			throw e;
-		} catch (Exception e) {
-			logError('Caught exception in ' + method, e)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in prepConfirmVolumeGroupTenant(): ' + e.getMessage())
+			// Prepare AA&I url
+			String aai_endpoint = execution.getVariable("URN_aai_endpoint")
+			AaiUtil aaiUtil = new AaiUtil(this)
+			String aai_uri = aaiUtil.getCloudInfrastructureCloudRegionUri(execution)
+			String queryCloudRegionRequest = "${aai_endpoint}${aai_uri}/" + cloudRegion
+			utils.logAudit("CloudRegion Request: " + queryCloudRegionRequest)
+
+			execution.setVariable(prefix + "queryCloudRegionRequest", queryCloudRegionRequest)
+			utils.log("DEBUG", prefix + "queryCloudRegionRequest - " + "\n" + queryCloudRegionRequest, isDebugLogEnabled)
+
+			cloudRegion = aaiUtil.getAAICloudReqion(execution, queryCloudRegionRequest, "AAI", cloudRegion)
+
+			if ((cloudRegion != "ERROR")) {
+				if(execution.getVariable(prefix + "queryCloudRegionReturnCode") == "404"){
+					execution.setVariable(prefix + "cloudRegionForVolume", "AAIAIC25")
+				}else{
+				execution.setVariable(prefix + "cloudRegionForVolume", cloudRegion)
+				}
+				execution.setVariable(prefix + "isCloudRegionGood", true)
+			} else {
+				String errorMessage = "AAI Query Cloud Region Unsuccessful. AAI Response Code: " + execution.getVariable(prefix + "queryCloudRegionReturnCode")
+				utils.log("DEBUG", errorMessage, isDebugLogEnabled)
+				exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
+				execution.setVariable(prefix + "isCloudRegionGood", false)
+			}
+			utils.log("DEBUG", " is Cloud Region Good: " + execution.getVariable(prefix + "isCloudRegionGood"), isDebugLogEnabled)
+
+		} catch(BpmnError b){
+			utils.log("ERROR", "Rethrowing MSOWorkflowException", isDebugLogEnabled)
+			throw b
+		}catch (Exception e) {
+			// try error
+			String errorMessage = "Bpmn error encountered in CreateVfModule flow. Unexpected Response from AAI - " + e.getMessage()
+			utils.log("ERROR", " AAI Query Cloud Region Failed.  Exception - " + "\n" + errorMessage, isDebugLogEnabled)
+			exceptionUtil.buildAndThrowWorkflowException(execution, 500, "Exception occured during prepConfirmVolumeGroupTenant(): " + e.getMessage())
 		}
+		logDebug('Exited ' + method, isDebugLogEnabled)
+		
 	}
-
+	
 	/**
 	 * Prepare a Request for invoking the SDNC Adapter subflow to perform
 	 * a VNF topology 'changeassign' operation.
@@ -362,6 +402,10 @@
 
 		try {
 			def requestId = execution.getVariable('DOUPVfMod_requestId')
+			String uuid = execution.getVariable('testReqId') // for junits
+			if(uuid==null){
+				uuid = execution.getVariable("DOUPVfMod_requestId") + "-" +  	System.currentTimeMillis()
+			}
 			def serviceInstanceId = execution.getVariable('DOUPVfMod_serviceInstanceId')
 			def callbackUrl = (String) execution.getVariable('URN_mso_workflow_sdncadapter_callback')
 			def serviceId = execution.getVariable('DOUPVfMod_serviceId')
@@ -373,6 +417,13 @@
 			def vfModuleName = vfModule.getElementText('vf-module-name')
 			def tenantId = execution.getVariable('DOUPVfMod_tenantId')
 			def aicCloudRegion = execution.getVariable('DOUPVfMod_aicCloudRegion')
+			boolean usePreload = execution.getVariable("DOUPVfMod_usePreload")
+			String usePreloadToSDNC = usePreload ? "Y" : "N"
+			def modelCustomizationUuid = execution.getVariable("DoUPVfMod_modelCustomizationUuid")
+			def modelCustomizationUuidString = ""
+			if (!usePreload) {
+				modelCustomizationUuidString = "<modelCustomizationUuid>" + modelCustomizationUuid + "</modelCustomizationUuid>"
+			}
 
 			// Retrieve vnf name from AAI response
 			def vnfName = execution.getVariable('DOUPVfMod_vnfNameFromAAI')
@@ -386,7 +437,7 @@
 						xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 						xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 					<sdncadapter:RequestHeader>
-						<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+						<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 						<sdncadapter:SvcInstanceId>${serviceInstanceId}</sdncadapter:SvcInstanceId>
 						<sdncadapter:SvcAction>changeassign</sdncadapter:SvcAction>
 						<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -415,6 +466,8 @@
 							 <generic-vnf-type>${vnfType}</generic-vnf-type>
 					         <tenant>${tenantId}</tenant>
 					         <aic-cloud-region>${aicCloudRegion}</aic-cloud-region>
+							 ${modelCustomizationUuidString}
+							 <use-preload>${usePreloadToSDNC}</use-preload>
 					         ${vnfNetworks}
 					      </vnf-request-information>
  					</sdncadapterworkflow:SDNCRequestData>
@@ -448,6 +501,10 @@
 		logDebug('Entered ' + method, isDebugLogEnabled)
 
 		try {
+			String uuid = execution.getVariable('testReqId') // for junits
+			if(uuid==null){
+				uuid = execution.getVariable("DOUPVfMod_requestId") + "-" +  	System.currentTimeMillis()
+			}
 			def requestId = execution.getVariable('DOUPVfMod_requestId')
 			def serviceInstanceId = execution.getVariable('DOUPVfMod_serviceInstanceId')
 			def callbackUrl = (String) execution.getVariable('URN_mso_workflow_sdncadapter_callback')
@@ -469,7 +526,7 @@
 						xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 						xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 					<sdncadapter:RequestHeader>
-						<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+						<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 						<sdncadapter:SvcInstanceId>${svcInstId}</sdncadapter:SvcInstanceId>
 						<sdncadapter:SvcAction>query</sdncadapter:SvcAction>
 						<sdncadapter:SvcOperation>/VNF-API:vnfs/vnf-list/${vfModuleId}</sdncadapter:SvcOperation>
@@ -513,6 +570,7 @@
 			def vnfInputs = execution.getVariable('DOUPVfMod_vnfInputs')
 			def tenantId = execution.getVariable('DOUPVfMod_tenantId')
 			def volumeGroupId = execution.getVariable('DOUPVfMod_volumeGroupId')
+			def volumeGroupStackId = execution.getVariable('DOUPVfMod_volumeGroupStackId')
 			def VfModule vfModule = (VfModule) execution.getVariable('DOUPVfMod_vfModule')
 			def heatStackId = vfModule.getElementText('heat-stack-id')
 			def cloudId = execution.getVariable('DOUPVfMod_aicCloudRegion')
@@ -552,6 +610,7 @@
 					<modelCustomizationUuid>${modelCustomizationUuid}</modelCustomizationUuid>
 					<vfModuleType>${vfModuleModelName}</vfModuleType>
 					<volumeGroupId>${volumeGroupId}</volumeGroupId>
+					<volumeGroupStackId>${volumeGroupStackId}</volumeGroupStackId>
 					<baseVfModuleId>${baseVfModuleId}</baseVfModuleId>
     				<baseVfModuleStackId>${baseVfModuleStackId}</baseVfModuleStackId>
 					<skipAAI>true</skipAAI>
@@ -671,7 +730,7 @@
 			def personaModelCustomizationIdElement = ''
 			def modelCustomizationId = execution.getVariable('DOUPVfMod_modelCustomizationUuid')
 			if (modelCustomizationId != null) {
-				personaModelCustomizationIdElement = '<persona-model-customization-id>' + modelCustomizationId + '</persona-model-customization-id>'
+				personaModelCustomizationIdElement = '<model-customization-id>' + modelCustomizationId + '</model-customization-id>'
 			}
 
 			String updateAAIVfModuleRequest = """
@@ -716,6 +775,10 @@
 		logDebug('Entered ' + method, isDebugLogEnabled)
 
 		try {
+			String uuid = execution.getVariable('testReqId') // for junits
+			if(uuid==null){
+				uuid = execution.getVariable("DOUPVfMod_requestId") + "-" +  	System.currentTimeMillis()
+			}
 			def requestId = execution.getVariable('DOUPVfMod_requestId')
 			def serviceInstanceId = execution.getVariable('DOUPVfMod_serviceInstanceId')
 			def callbackUrl = (String) execution.getVariable('URN_mso_workflow_sdncadapter_callback')
@@ -730,6 +793,14 @@
 			def tenantId = execution.getVariable('DOUPVfMod_tenantId')
 			def aicCloudRegion = execution.getVariable('DOUPVfMod_aicCloudRegion')
 
+			boolean usePreload = execution.getVariable("DOUPVfMod_usePreload")
+			String usePreloadToSDNC = usePreload ? "Y" : "N"
+			def modelCustomizationUuid = execution.getVariable("DoUPVfMod_modelCustomizationUuid")
+			def modelCustomizationUuidString = ""
+			if (!usePreload) {
+				modelCustomizationUuidString = "<modelCustomizationUuid>" + modelCustomizationUuid + "</modelCustomizationUuid>"
+			}
+			
 			def vnfParamsXml = execution.getVariable('DOUPVfMod_vnfParams')
 			def vnfNetworks = transformNetworkParamsToVnfNetworks(vnfParamsXml)
 
@@ -738,7 +809,7 @@
 						xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
 						xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
 					<sdncadapter:RequestHeader>
-						<sdncadapter:RequestId>${requestId}</sdncadapter:RequestId>
+						<sdncadapter:RequestId>${uuid}</sdncadapter:RequestId>
 						<sdncadapter:SvcInstanceId>${serviceInstanceId}</sdncadapter:SvcInstanceId>
 						<sdncadapter:SvcAction>activate</sdncadapter:SvcAction>
 						<sdncadapter:SvcOperation>vnf-topology-operation</sdncadapter:SvcOperation>
@@ -767,6 +838,8 @@
 							 <generic-vnf-type>${vnfType}</generic-vnf-type>
 					         <tenant>${tenantId}</tenant>
 					         <aic-cloud-region>${aicCloudRegion}</aic-cloud-region>
+							 ${modelCustomizationUuidString}
+							<use-preload>${usePreloadToSDNC}</use-preload>
 					      </vnf-request-information>
  					</sdncadapterworkflow:SDNCRequestData>
 				</sdncadapterworkflow:SDNCAdapterWorkflowRequest>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy
new file mode 100644
index 0000000..7d7505f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateVnfAndModules.groovy
@@ -0,0 +1,391 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ * 

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import java.io.ObjectInputStream.BlockDataInputStream

+import java.util.UUID;

+

+import org.json.JSONObject;

+import org.json.JSONArray;

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.runtime.Execution;

+import org.hibernate.jpa.criteria.predicate.IsEmptyPredicate

+

+import static org.apache.commons.lang3.StringUtils.*;

+

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.rest.RESTClient

+import org.openecomp.mso.rest.RESTConfig

+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.core.domain.ModelInfo

+import org.openecomp.mso.bpmn.core.domain.ModuleResource

+import org.openecomp.mso.bpmn.core.domain.VnfResource

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.springframework.web.util.UriUtils;

+

+/**

+ * This class supports the VID Flow

+ * with the update of a generic vnf and related VF modules.

+ */

+class DoUpdateVnfAndModules extends AbstractServiceTaskProcessor {

+

+	String Prefix="DUVAM_"

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	JsonUtils jsonUtil = new JsonUtils()	

+

+	/**

+	 * This method gets and validates the incoming

+	 * request.

+	 *

+	 * @param - execution

+	 *	

+	 */

+	public void preProcessRequest(Execution execution) {

+		def isDebugEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix",Prefix)

+		utils.log("DEBUG", " *** STARTED DoUpdateVnfAndModules PreProcessRequest Process*** ", isDebugEnabled)

+

+		try{

+			// Get Variables				

+			

+			String requestId = execution.getVariable("msoRequestId")

+			execution.setVariable("requestId", requestId)			

+			execution.setVariable("mso-request-id", requestId)

+			utils.log("DEBUG", "Incoming Request Id is: " + requestId, isDebugEnabled)

+

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

+			utils.log("DEBUG", "Incoming Service Instance Id is: " + serviceInstanceId, isDebugEnabled)

+

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

+			utils.log("DEBUG", "Incoming Vnf Id is: " + vnfId, isDebugEnabled)			

+			

+			String source = "VID"

+			execution.setVariable("DUVAM_source", source)

+			utils.log("DEBUG", "Incoming Source is: " + source, isDebugEnabled)

+			

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

+			if (sdncVersion == null) {

+				sdncVersion = "1702"

+			}

+			execution.setVariable("DUVAM_sdncVersion", sdncVersion)

+			utils.log("DEBUG", "Incoming Sdnc Version is: " + sdncVersion, isDebugEnabled)

+			

+			VnfResource vnfResource = (VnfResource) execution.getVariable("vnfResourceDecomposition")			

+			

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

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

+				

+			String serviceId = execution.getVariable("productFamilyId")

+			execution.setVariable("DUVAM_serviceId", serviceId)

+			utils.log("DEBUG", "Incoming Service Id is: " + serviceId, isDebugEnabled)				

+			

+			String modelUuid = jsonUtil.getJsonValue(vnfModelInfo, "modelUuid")			

+			execution.setVariable("DUVAM_modelUuid", modelUuid)

+			utils.log("DEBUG", "Incoming modelUuid is: " + modelUuid, isDebugEnabled)				

+				

+			String modelCustomizationUuid = jsonUtil.getJsonValue(vnfModelInfo, "modelCustomizationUuid")			

+			execution.setVariable("DUVAM_modelCustomizationUuid", modelCustomizationUuid)

+			utils.log("DEBUG", "Incoming Model Customization Uuid is: " + modelCustomizationUuid, isDebugEnabled)

+					

+			String cloudSiteId = execution.getVariable("lcpCloudRegionId")

+			execution.setVariable("DUVAM_cloudSiteId", cloudSiteId)

+			utils.log("DEBUG", "Incoming Cloud Site Id is: " + cloudSiteId, isDebugEnabled)

+					

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

+			execution.setVariable("DUVAM_tenantId", tenantId)

+			utils.log("DEBUG", "Incoming Tenant Id is: " + tenantId, isDebugEnabled)

+				

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

+			if (globalSubscriberId == null) {

+				globalSubscriberId = ""

+			}

+			execution.setVariable("DUVAM_globalSubscriberId", globalSubscriberId)

+			utils.log("DEBUG", "Incoming Global Subscriber Id is: " + globalSubscriberId, isDebugEnabled)

+			

+			execution.setVariable("DUVAM_moduleCount", 0)

+			execution.setVariable("DUVAM_nextModule", 0)

+			

+			

+		}catch(BpmnError b){

+			utils.log("DEBUG", "Rethrowing MSOWorkflowException", isDebugEnabled)

+			throw b

+		}catch(Exception e){

+			utils.log("DEBUG", " Error Occured in DoUpdateVnfAndModules PreProcessRequest method!" + e.getMessage(), isDebugEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Internal Error - Occured in DoUpdateVnfAndModules PreProcessRequest")

+

+		}

+		utils.log("DEBUG", "*** COMPLETED DoUpdateVnfAndModules PreProcessRequest Process ***", isDebugEnabled)

+	}	

+	

+	/**

+	 * Using the received vnfId and vfModuleId, query AAI to get the corresponding VNF info.

+	 * A 200 response is expected with the VNF info in the response body. Will find out the base module info.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void queryAAIVfModule(Execution execution) {

+		def isDebugLogEnabled=execution.getVariable("isDebugLogEnabled")

+		def method = getClass().getSimpleName() + '.queryAAIVfModule(' +

+			'execution=' + execution.getId() +

+			')'

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def vnfId = execution.getVariable('vnfId')

+			

+			AaiUtil aaiUriUtil = new AaiUtil(this)

+			String  aai_uri = aaiUriUtil.getNetworkGenericVnfUri(execution)

+			logDebug('AAI URI is: ' + aai_uri, isDebugLogEnabled)

+

+			String endPoint = execution.getVariable("URN_aai_endpoint") + "${aai_uri}/" + UriUtils.encode(vnfId, "UTF-8") + "?depth=1"

+			utils.logAudit("AAI endPoint: " + endPoint)

+

+			try {

+				RESTConfig config = new RESTConfig(endPoint);

+				def responseData = ''

+				def aaiRequestId = UUID.randomUUID().toString()

+				RESTClient client = new RESTClient(config).

+					addHeader('X-TransactionId', aaiRequestId).

+					addHeader('X-FromAppId', 'MSO').

+					addHeader('Content-Type', 'application/xml').

+					addHeader('Accept','application/xml');

+				logDebug('sending GET to AAI endpoint \'' + endPoint + '\'', isDebugLogEnabled)

+				APIResponse response = client.httpGet()

+				utils.logAudit("createVfModule - invoking httpGet() to AAI")

+

+				responseData = response.getResponseBodyAsString()

+				if (responseData != null) {

+					logDebug("Received generic VNF data: " + responseData, isDebugLogEnabled)

+

+				}

+

+				utils.logAudit("createVfModule - queryAAIVfModule Response: " + responseData)

+				utils.logAudit("createVfModule - queryAAIVfModule ResponseCode: " + response.getStatusCode())

+

+				execution.setVariable('DUVAM_queryAAIVfModuleResponseCode', response.getStatusCode())

+				execution.setVariable('DUVAM_queryAAIVfModuleResponse', responseData)

+				logDebug('Response code:' + response.getStatusCode(), isDebugLogEnabled)

+				logDebug('Response:' + System.lineSeparator() + responseData, isDebugLogEnabled)

+				//Map<String, String>[] vfModules = new HashMap<String,String>[]

+				def vfModulesList = new ArrayList<Map<String,String>>()

+				def vfModules = null

+				def vfModuleBaseEntry = null

+				if (response.getStatusCode() == 200) {

+					// Parse the VNF record from A&AI to find base module info

+					logDebug('Parsing the VNF data to find base module info', isDebugLogEnabled)

+					if (responseData != null) {

+						def vfModulesText = utils.getNodeXml(responseData, "vf-modules")

+						logDebug("vModulesText: " + vfModulesText, isDebugLogEnabled)

+						if (vfModulesText != null && !vfModulesText.trim().isEmpty()) {

+							def xmlVfModules= new XmlSlurper().parseText(vfModulesText)

+							vfModules = xmlVfModules.'**'.findAll {it.name() == "vf-module"}

+							execution.setVariable("DUVAM_moduleCount", vfModules.size())

+							int vfModulesSize = 0

+							for (i in 0..vfModules.size()-1) {

+								def vfModuleXml = groovy.xml.XmlUtil.serialize(vfModules[i])

+							

+								Map<String, String> vfModuleEntry = new HashMap<String, String>()

+								def vfModuleId = utils.getNodeText1(vfModuleXml, "vf-module-id")

+								vfModuleEntry.put("vfModuleId", vfModuleId)

+								def vfModuleName = utils.getNodeText1(vfModuleXml, "vf-module-name")

+								vfModuleEntry.put("vfModuleName", vfModuleName)

+								def modelInvariantUuid = utils.getNodeText1(vfModuleXml, "model-invariant-id")

+								vfModuleEntry.put("modelInvariantUuid", modelInvariantUuid)

+								def modelUuid = utils.getNodeText1(vfModuleXml, "model-version-id")

+								vfModuleEntry.put("modelUuid", modelUuid)

+								def modelCustomizationUuid = utils.getNodeText1(vfModuleXml, "model-customization-id")

+								vfModuleEntry.put("modelCustomizationUuid", modelCustomizationUuid)

+														

+								def isBaseVfModule = utils.getNodeText(vfModuleXml, "is-base-vf-module")

+								vfModuleEntry.put("isBaseVfModule", isBaseVfModule)

+								// Save base vf module to add it to the start of the list later

+								if (isBaseVfModule == "true") {									

+									vfModuleBaseEntry = vfModuleEntry

+								}

+								else {						

+									vfModulesList.add(vfModuleEntry)

+								}

+							}

+							// Start the list with the base module if any

+							if (vfModuleBaseEntry != null) {

+								vfModulesList.add(0, vfModuleBaseEntry)

+							}					

+						}

+						

+					}					

+				}

+				else {

+					logDebug('Response code from AAI GET is: ' + response.getStatusCode(), isDebugLogEnabled)

+					exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Response code from AAI GET is: ' + response.getStatusCode())

+				}

+				execution.setVariable("DUVAM_vfModules", vfModulesList)

+			} catch (Exception ex) {

+				ex.printStackTrace()

+				logDebug('Exception occurred while executing AAI GET:' + ex.getMessage(),isDebugLogEnabled)

+				exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'AAI GET Failed:' + ex.getMessage())

+			}

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in queryAAIVfModule(): ' + e.getMessage())

+		}

+	}

+	

+	public void prepareNextModuleToUpdate(Execution execution){

+		def isDebugLogEnabled = execution.getVariable("isDebugLogEnabled")

+		execution.setVariable("prefix", Prefix)

+		logDebug(" ======== STARTED prepareNextModuleToUpdate ======== ", isDebugLogEnabled)

+		

+		try {

+			int i = execution.getVariable("DUVAM_nextModule")

+			def vfModules = execution.getVariable("DUVAM_vfModules")

+			def vfModule = vfModules[i]

+			

+			def vfModuleId = vfModule.get("vfModuleId")

+			execution.setVariable("DUVAM_vfModuleId", vfModuleId)

+			

+			def vfModuleName = vfModule.get("vfModuleName")

+			execution.setVariable("DUVAM_vfModuleName", vfModuleName)

+			

+			def isBaseVfModule = vfModule.get("isBaseVfModule")

+			execution.setVariable("DUVAM_isBaseVfModule", isBaseVfModule)

+			

+			String modelInvariantUuid = vfModule.get("modelInvariantUuid")

+			logDebug("ModelInvariantUuid: " + modelInvariantUuid, isDebugLogEnabled)			

+			

+			execution.setVariable("DUVAM_volumeGroupId", "")

+			execution.setVariable("DUVAM_volumeGroupName", "")

+			

+			VnfResource vnfResource = (VnfResource) execution.getVariable("vnfResourceDecomposition")

+			List<ModuleResource> moduleResources = vnfResource.getVfModules()

+			

+			for (j in 0..moduleResources.size()-1) {				

+				ModelInfo modelInfo = moduleResources[j].getModelInfo()

+				String modelInvariantUuidFromDecomposition = modelInfo.getModelInvariantUuid()

+				logDebug("modelInvariantUuidFromDecomposition: " + modelInvariantUuidFromDecomposition, isDebugLogEnabled)

+				

+				if (modelInvariantUuid.equals(modelInvariantUuidFromDecomposition)) {

+					String vfModuleModelInfo = modelInfo.toJsonString()

+					String vfModuleModelInfoValue = jsonUtil.getJsonValue(vfModuleModelInfo, "modelInfo")

+					execution.setVariable("DUVAM_vfModuleModelInfo", vfModuleModelInfoValue)

+					logDebug("vfModuleModelInfo: " + vfModuleModelInfoValue, isDebugLogEnabled)

+					break

+				}

+				

+			}			

+			

+		}catch(Exception e){

+			utils.log("ERROR", "Exception Occured Processing preProcessAddOnModule. Exception is:\n" + e, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, "Error Occurred during prepareNextModuleToUpdate Method:\n" + e.getMessage())

+		}

+		logDebug("======== COMPLETED prepareNextModuleToUpdate ======== ", isDebugLogEnabled)

+	}

+	

+	

+	/**

+	 * Prepare a Request for invoking the UpdateAAIGenericVnf subflow.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void prepUpdateAAIGenericVnf(Execution execution) {

+		def method = getClass().getSimpleName() + '.prepUpdateAAIGenericVnf(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+ 

+		try {			

+			def vnfId = execution.getVariable('vnfId')

+			VnfResource vnfResource = (VnfResource) execution.getVariable("vnfResourceDecomposition")

+			ModelInfo vnfDecompModelInfo = vnfResource.getModelInfo()

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

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

+			if (modelUuid == null || modelUuid.isEmpty()) {

+				modelUuid = vnfDecompModelInfo.getModelUuid()			

+			}

+			String modelCustomizationUuid = execution.getVariable("DUVAM_modelCustomizationUuid")

+			if (modelCustomizationUuid == null || modelCustomizationUuid.isEmpty()) {

+				modelCustomizationUuid = vnfDecompModelInfo.getModelCustomizationUuid()

+			}				

+			String nfType = vnfResource.getNfType()

+			String nfTypeString = ''

+			if (nfType != null && !nfType.isEmpty()) {

+				nfTypeString = "<nf-type>" + nfType + "</nf-type>"

+			}			

+			String nfRole = vnfResource.getNfRole()

+			String nfRoleString = ''

+			if (nfRole != null && !nfRole.isEmpty()) {

+				nfRoleString = "<nf-role>" + nfRole + "</nf-role>"

+			}

+			String nfFunction = vnfResource.getNfFunction()

+			String nfFunctionString = ''

+			if (nfFunction != null && !nfFunction.isEmpty()) {

+				nfFunctionString = "<nf-function>" + nfFunction + "</nf-function>"

+			}

+			String nfNamingCode = vnfResource.getNfNamingCode()

+			String nfNamingCodeString = ''

+			if (nfNamingCode != null && !nfNamingCode.isEmpty()) {

+				nfNamingCodeString = "<nf-naming-code>" + nfNamingCode + "</nf-naming-code>"

+			}			

+ 

+			String updateAAIGenericVnfRequest = """

+					<UpdateAAIGenericVnfRequest>

+						<vnf-id>${vnfId}</vnf-id>

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

+						<model-customization-id>${modelCustomizationUuid}</model-customization-id>

+						${nfTypeString}

+						${nfRoleString}

+						${nfFunctionString}

+						${nfNamingCodeString}

+					</UpdateAAIGenericVnfRequest>

+				"""

+				updateAAIGenericVnfRequest = utils.formatXml(updateAAIGenericVnfRequest)

+				execution.setVariable('DUVAM_updateAAIGenericVnfRequest', updateAAIGenericVnfRequest)

+				utils.logAudit("updateAAIGenericVnfRequest : " + updateAAIGenericVnfRequest)

+				logDebug('Request for UpdateAAIGenericVnf:\n' + updateAAIGenericVnfRequest, isDebugLogEnabled)

+ 

+ 

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in prepUpdateAAIGenericVnf(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * APP-C Call - placeholder.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void callAppCf(Execution execution) {

+		def method = getClass().getSimpleName() + '.callAppC(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)	

+	}

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ReplaceVnfInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ReplaceVnfInfra.groovy
new file mode 100644
index 0000000..7dbd7a9
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ReplaceVnfInfra.groovy
@@ -0,0 +1,694 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ * 

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+

+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import groovy.json.JsonOutput

+import groovy.json.JsonSlurper

+import groovy.util.Node

+import groovy.util.XmlParser;

+import groovy.xml.QName

+

+import java.io.Serializable;

+import java.util.UUID;

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.impl.cmd.AbstractSetVariableCmd

+import org.camunda.bpm.engine.runtime.Execution

+import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.rest.RESTClient

+import org.openecomp.mso.rest.RESTConfig

+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor;

+import org.openecomp.mso.bpmn.common.scripts.VidUtils;

+import org.openecomp.mso.bpmn.core.RollbackData

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.bpmn.core.domain.ModelInfo

+import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition

+import org.openecomp.mso.bpmn.core.domain.VnfResource

+import org.openecomp.mso.client.aai.*

+

+import org.openecomp.mso.client.appc.ApplicationControllerClient;

+import org.openecomp.mso.client.appc.ApplicationControllerSupport;

+import org.openecomp.appc.client.lcm.model.Action;

+import org.openecomp.appc.client.lcm.model.ActionIdentifiers;

+import org.openecomp.appc.client.lcm.model.LockInput

+import org.openecomp.appc.client.lcm.model.UnlockInput

+import org.openecomp.appc.client.lcm.model.HealthCheckInput

+import org.openecomp.appc.client.lcm.model.StartInput

+import org.openecomp.appc.client.lcm.model.StopInput

+import org.openecomp.appc.client.lcm.model.Flags

+import org.openecomp.appc.client.lcm.model.Status

+

+

+

+public class ReplaceVnfInfra extends AbstractServiceTaskProcessor {

+

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	JsonUtils jsonUtils = new JsonUtils()

+	ApplicationControllerClient appcClient = new ApplicationControllerClient()	

+	def prefix = "RPLVnfI_"

+

+	/**

+	 * Initialize the flow's variables.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void initProcessVariables(Execution execution) {

+		execution.setVariable('prefix', 'RPLVnfI_')

+		execution.setVariable('RPLVnfI_Request', null)

+		execution.setVariable('RPLVnfI_requestInfo', null)

+		execution.setVariable('RPLVnfI_requestId', null)

+		execution.setVariable('RPLVnfI_source', null)

+		execution.setVariable('RPLVnfI_vnfInputs', null)

+		execution.setVariable('RPLVnfI_vnfId', null)		

+		execution.setVariable('RPLVnfI_tenantId', null)		

+		execution.setVariable('RPLVnfI_vnfParams', null)

+		execution.setVariable('RPLVnfI_cloudConfiguration', null)		

+		execution.setVariable('ReplaceVnfSuccessIndicator', false)

+		execution.setVariable('RPLVnfI_serviceType', null)

+		execution.setVariable('RPLVnfI_nfRole', null)

+		execution.setVariable('RPLVnfI_currentActivity', 'RPLVnfI')

+		execution.setVariable('RPLVnfI_workStep', null)

+		execution.setVariable('RPLVnfI_failedActivity', null)

+		execution.setVariable('RPLVnfI_errorCode', "0")

+		execution.setVariable('RPLVnfI_errorText', null)

+		execution.setVariable('RPLVnfI_healthCheckIndex', 1)

+	}

+

+	/**

+	 * Check for missing elements in the received request.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void preProcessRequest(Execution execution) {

+		def method = getClass().getSimpleName() + '.preProcessRequest(' +

+		'execution=' + execution.getId() +

+		')'

+		initProcessVariables(execution)

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		initProcessVariables(execution)		

+

+		def incomingRequest = execution.getVariable('bpmnRequest')

+

+		utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)

+		try {

+			def jsonSlurper = new JsonSlurper()

+			def jsonOutput = new JsonOutput()

+			Map reqMap = jsonSlurper.parseText(incomingRequest)

+			utils.log("DEBUG", " Request is in JSON format.", isDebugLogEnabled)

+

+			def serviceInstanceId = execution.getVariable('serviceInstanceId')

+			def vnfId = execution.getVariable('vnfId')

+			

+			execution.setVariable(prefix + 'serviceInstanceId', serviceInstanceId)

+			execution.setVariable(prefix + 'vnfId', vnfId)

+			execution.setVariable("isVidRequest", "true")			

+			

+			def asdcServiceModelVersion = ''

+			def serviceModelInfo = null

+			

+			def relatedInstanceList = reqMap.requestDetails?.relatedInstanceList

+						

+			if (relatedInstanceList != null) {

+				relatedInstanceList.each {

+					if (it.relatedInstance.modelInfo?.modelType == 'service') {

+						utils.log("DEBUG", "PROCESSING SERVICE INFO", isDebugLogEnabled)

+						asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion

+						serviceModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)

+						utils.log("DEBUG", "ServiceModelInfo: " + serviceModelInfo, isDebugLogEnabled)

+						def modelInvariant = jsonUtils.getJsonValue(serviceModelInfo, "modelInvariantUuid")

+						utils.log("DEBUG", "modelInvariant: " + modelInvariant, isDebugLogEnabled)

+					}

+					

+				}

+			}		

+			

+			execution.setVariable(prefix + 'asdcServiceModelVersion', asdcServiceModelVersion)

+			execution.setVariable(prefix + 'serviceModelInfo', serviceModelInfo)

+			def vnfModelInfo = jsonOutput.toJson(reqMap.requestDetails?.modelInfo)

+			execution.setVariable(prefix + 'vnfModelInfo', vnfModelInfo)

+			def vnfModelInvariantUuid = jsonUtils.getJsonValue(vnfModelInfo, "modelInvariantUuid")

+			execution.setVariable(prefix + 'vnfModelInvariantUuid', vnfModelInvariantUuid)	

+			logDebug("vnfModelInvariantUuid: " + vnfModelInvariantUuid, isDebugLogEnabled)	

+			

+			def vnfType = execution.getVariable('vnfType')

+			execution.setVariable(prefix + 'vnfType', vnfType)	

+			

+			def userParams = reqMap.requestDetails?.requestParameters?.userParams					

+			

+			Map<String, String> userParamsMap = [:]

+			if (userParams != null) {

+				userParams.each { userParam ->

+					userParamsMap.put(userParam.name, userParam.value)

+				}							

+			}		

+						

+			utils.log("DEBUG", 'Processed user params: ' + userParamsMap, isDebugLogEnabled)		

+			

+			execution.setVariable(prefix + 'vfModuleInputParams', userParamsMap)			

+						

+			def requestId = execution.getVariable("mso-request-id")

+			execution.setVariable(prefix + 'requestId', requestId)

+			

+			

+			def vnfName = reqMap.requestDetails?.requestInfo?.instanceName ?: null

+			execution.setVariable(prefix + 'vnfName', vnfName)

+			

+			def requestorId = reqMap.requestDetails?.requestInfo?.requestorId ?: null

+			execution.setVariable(prefix + 'requestorId', requestorId)

+			

+			def usePreload = reqMap.requestDetails?.requestParameters?.usePreload

+			execution.setVariable(prefix + 'usePreload', usePreload)

+			

+			def cloudConfiguration = jsonOutput.toJson(reqMap.requestDetails?.cloudConfiguration)		

+			execution.setVariable(prefix + 'cloudConfiguration', cloudConfiguration)

+			def lcpCloudRegionId	= jsonUtils.getJsonValue(cloudConfiguration, "lcpCloudRegionId")

+			execution.setVariable(prefix + 'lcpCloudRegionId', lcpCloudRegionId)

+			def tenantId = jsonUtils.getJsonValue(cloudConfiguration, "tenantId")

+			execution.setVariable(prefix + 'tenantId', tenantId)

+			

+			def globalSubscriberId = reqMap.requestDetails?.subscriberInfo?.globalSubscriberId ?: ''

+			execution.setVariable(prefix + 'globalSubscriberId', globalSubscriberId)

+			

+			execution.setVariable(prefix + 'sdncVersion', '1702')

+

+			execution.setVariable("ReplaceVnfInfraSuccessIndicator", false)

+						

+			execution.setVariable("isDebugLogEnabled", isDebugLogEnabled)			

+			

+			def source = reqMap.requestDetails?.requestInfo?.source

+			execution.setVariable(prefix + "source", source)

+			

+			//For Completion Handler & Fallout Handler

+			String requestInfo =

+			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					<request-id>${requestId}</request-id>

+					<action>REPLACE</action>

+					<source>${source}</source>

+				   </request-info>"""

+			

+			execution.setVariable(prefix + "requestInfo", requestInfo)			

+			

+			logDebug('RequestInfo: ' + execution.getVariable(prefix + "requestInfo"), isDebugLogEnabled)		

+			

+			logDebug('Exited ' + method, isDebugLogEnabled)

+

+		}

+		catch(groovy.json.JsonException je) {

+			utils.log("DEBUG", " Request is not in JSON format.", isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, "Invalid request format")

+

+		}

+		catch(Exception e) {

+			String restFaultMessage = e.getMessage()

+			utils.log("ERROR", " Exception Encountered - " + "\n" + restFaultMessage, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, restFaultMessage)

+		}	

+	}

+

+	/**

+	 * Prepare and send the sychronous response for this flow.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void sendSynchResponse(Execution execution) {

+		def method = getClass().getSimpleName() + '.sendSynchResponse(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+

+		try {

+			def requestInfo = execution.getVariable('RPLVnfI_requestInfo')

+			def requestId = execution.getVariable('RPLVnfI_requestId')

+			def source = execution.getVariable('RPLVnfI_source')

+			def progress = getNodeTextForce(requestInfo, 'progress')

+			if (progress.isEmpty()) {

+				progress = '0'

+			}

+			def startTime = getNodeTextForce(requestInfo, 'start-time')

+			if (startTime.isEmpty()) {

+				startTime = System.currentTimeMillis()

+			}

+

+			// RESTResponse (for API Handler (APIH) Reply Task)

+			def vnfId = execution.getVariable("vnfId")

+			String synchResponse = """{"requestReferences":{"instanceId":"${vnfId}","requestId":"${requestId}"}}""".trim()

+

+			sendWorkflowResponse(execution, 200, synchResponse)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in sendResponse(): ' + e.getMessage())

+		}

+	}

+	

+	

+

+	/**

+	 * Get VnfResource decomposition object for this VNF.

+	 *	

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void getVnfResourceDecomposition(Execution execution) {

+		def method = getClass().getSimpleName() + '.getVnfResourceDecomposition(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")

+			String vnfModelInvariantUuid = execution.getVariable(prefix + 'vnfModelInvariantUuid')

+			logDebug("vnfModelInvariantUuid: " + vnfModelInvariantUuid, isDebugLogEnabled)

+			List<VnfResource> vnfResources = serviceDecomposition.getServiceVnfs()

+			

+			for (i in 0..vnfResources.size()-1) {

+				ModelInfo modelInfo = vnfResources[i].getModelInfo()

+				String modelInvariantUuidFromDecomposition = modelInfo.getModelInvariantUuid()

+				logDebug("modelInvariantUuidFromDecomposition: " + modelInvariantUuidFromDecomposition, isDebugLogEnabled)

+				

+				if (vnfModelInvariantUuid.equals(modelInvariantUuidFromDecomposition)) {

+					VnfResource vnfResourceDecomposition = vnfResources[i]

+					execution.setVariable(prefix + 'vnfResourceDecomposition', vnfResourceDecomposition)

+					def nfRole = vnfResourceDecomposition.getNfRole()					

+					execution.setVariable(prefix + 'nfRole', nfRole)

+					logDebug("vnfResourceDecomposition: " + vnfResourceDecomposition.toJsonString(), isDebugLogEnabled)					

+					break

+				}

+				else {

+					//exception!

+				}

+				

+			}

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in getVnfResourceDecomposition(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Check if this VNF is already in maintenance in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void checkIfVnfInMaintInAAI(Execution execution) {

+		def method = getClass().getSimpleName() + '.checkIfVnfInMaintInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		execution.setVariable(prefix + "workStep", "checkIfVnfInMaintInAAI")

+		execution.setVariable("failedActivity", "AAI")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIValidatorImpl aaiValidator = new AAIValidatorImpl()

+			aaiValidator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")

+			boolean isInMaint = aaiValidator.isVNFLocked(vnfId, transactionLoggingUuid)

+			logDebug("isInMaint result: " + isInMaint, isDebugLogEnabled)

+			execution.setVariable(prefix + 'isVnfInMaintenance', isInMaint)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in checkIfVnfInMaintInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	

+	/**

+	 * Check if this VNF's pservers are locked in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void checkIfPserversInMaintInAAI(Execution execution) {

+		def method = getClass().getSimpleName() + '.checkIfPserversInMaintInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable(prefix + "workStep", "checkIfPserversInMaintInAAI")

+		execution.setVariable("failedActivity", "AAI")

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIValidatorImpl aaiValidator = new AAIValidatorImpl()

+			aaiValidator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")			

+			boolean areLocked = aaiValidator.isPhysicalServerLocked(vnfId, transactionLoggingUuid)

+			logDebug("areLocked result: " + areLocked, isDebugLogEnabled)

+			execution.setVariable(prefix + 'arePserversLocked', areLocked)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in checkIfPserversInMaintInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Set inMaint flag for this VNF to the specified value in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 * @param inMaint The boolean value of the flag to set

+	 */

+	public void setVnfInMaintFlagInAAI(Execution execution, boolean inMaint) {

+		def method = getClass().getSimpleName() + '.setVnfInMaintFlagInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		if (inMaint) {

+			execution.setVariable(prefix + "workStep", "setVnfInMaintFlagInAAI")

+		}

+		else {

+			execution.setVariable(prefix + "workStep", "unsetVnfInMaintFlagInAAI")

+		}

+		execution.setVariable("failedActivity", "AAI")

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIUpdatorImpl aaiUpdator = new AAIUpdatorImpl()

+			aaiUpdator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")

+			if (inMaint) {

+				aaiUpdator.updateVnfToLocked(vnfId, transactionLoggingUuid)

+			}

+			else {

+				aaiUpdator.updateVnfToUnLocked(vnfId, transactionLoggingUuid)

+			}

+							

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in setVnfInMaintFlagInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Call APP-C client to execute specified APP-C command for this VNF.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 * @param action The action to take in APP-C.

+	 */

+	public void runAppcCommand(Execution execution, Action action) {

+		def method = getClass().getSimpleName() + '.runAppcCommand(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		try {

+			logDebug("Running APP-C action: " + action.toString(), isDebugLogEnabled)

+			String vnfId = execution.getVariable('vnfId')

+			String msoRequestId = execution.getVariable(prefix + 'requestId')

+			execution.setVariable('msoRequestId', msoRequestId)

+			execution.setVariable(prefix + "failedActivity", "APP-C")

+				

+			ApplicationControllerSupport support = new ApplicationControllerSupport()

+			appcClient.appCSupport=support

+			org.springframework.test.util.ReflectionTestUtils.setField(support, "lcmModelPackage", "org.openecomp.appc.client.lcm.model");

+			Flags flags = new Flags();

+			ActionIdentifiers actionIdentifiers = new ActionIdentifiers();

+			actionIdentifiers.setVnfId(vnfId);

+			Status appcStatus

+			switch(action) {

+				case Action.Lock:

+					execution.setVariable(prefix + 'workStep', "LockVNF")

+					appcStatus = appcClient.runCommand(Action.Lock,actionIdentifiers,flags,null,msoRequestId)

+					break

+				case Action.Unlock:

+					execution.setVariable(prefix + 'workStep', "UnlockVNF")

+					appcStatus = appcClient.runCommand(Action.Unlock,actionIdentifiers,flags,null,msoRequestId)

+					break

+				case Action.HealthCheck:

+					def healthCheckIndex = execution.getVariable(prefix + 'healthCheckIndex')

+					execution.setVariable(prefix + 'workStep', "HealthCheckVNF" + healthCheckIndex)

+					execution.setVariable(prefix + 'healthCheckIndex', healthCheckIndex + 1)

+					appcStatus = appcClient.runCommand(Action.HealthCheck,actionIdentifiers,flags,null,msoRequestId)

+					break

+				case Action.Start:

+					execution.setVariable(prefix + 'workStep', "StartVNF")

+					appcStatus = appcClient.runCommand(Action.Start,actionIdentifiers,flags,null,msoRequestId)

+					break

+				case Action.Stop:

+					execution.setVariable(prefix + 'workStep', "StopVNF")

+					appcStatus = appcClient.runCommand(Action.Stop,actionIdentifiers,flags,null,msoRequestId)

+					break

+				default:

+					break

+			}

+			logDebug("Completed AppC request", isDebugLogEnabled)

+			int appcCode = appcStatus.getCode()

+			logDebug("AppC status code is: " + appcCode, isDebugLogEnabled)

+			logDebug("AppC status message is: " + appcStatus.getMessage(), isDebugLogEnabled)

+			if (support.getCategoryOf(appcStatus) == ApplicationControllerSupport.StatusCategory.ERROR) {

+				execution.setVariable(prefix + "errorCode", Integer.toString(appcCode))

+				execution.setVariable(prefix + "errorText", appcStatus.getMessage())

+			}

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//throw e;

+		} catch (java.lang.NoSuchMethodError e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in ' + method + ': ' + e.getMessage())

+		}

+	}

+

+

+	

+

+	/**

+	 * Builds a "CompletionHandler" request and stores it in the specified execution variable.

+	 *

+	 * @param execution the execution

+	 * @param resultVar the execution variable in which the result will be stored

+	 */

+	public void completionHandlerPrep(Execution execution, String resultVar) {

+		def method = getClass().getSimpleName() + '.completionHandlerPrep(' +

+			'execution=' + execution.getId() +

+			', resultVar=' + resultVar +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def requestInfo = getVariable(execution, 'RPLVnfI_requestInfo')

+			

+			appcClient.shutdownclient()

+

+			String content = """

+				<sdncadapterworkflow:MsoCompletionRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+						xmlns:reqtype="http://org.openecomp/mso/request/types/v1">

+					${requestInfo}

+					<sdncadapterworkflow:mso-bpel-name>MSO_ACTIVATE_BPEL</sdncadapterworkflow:mso-bpel-name>

+				</sdncadapterworkflow:MsoCompletionRequest>

+			"""

+

+			content = utils.formatXml(content)

+			logDebug(resultVar + ' = ' + System.lineSeparator() + content, isDebugLogEnabled)

+			execution.setVariable(resultVar, content)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, 'Internal Error')

+		}

+	}

+	

+	/**

+	* Prepare DoDeleteVnfAndModules call.

+	*

+	*

+	* @param execution The flow's execution instance.

+	*/

+   public void prepDoDeleteVnfAndModules(Execution execution) {

+	   def method = getClass().getSimpleName() + '.prepDoDeleteVnfAndModules(' +

+		   'execution=' + execution.getId() +

+		   ')'

+	   def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled') 

+	   execution.setVariable(prefix + 'errorCode', "0")

+	   logDebug('Entered ' + method, isDebugLogEnabled)

+	   execution.setVariable(prefix + "workStep", "doDeleteVnfAndModules")

+	   execution.setVariable("failedActivity", "MSO Delete VNF")

+	   logDebug('Exited ' + method, isDebugLogEnabled)

+	   

+   }

+   

+   /**

+	* Prepare DoCreateVnfAndModules call.

+	*

+	*

+	* @param execution The flow's execution instance.

+	*/

+   public void prepDoCreateVnfAndModules(Execution execution) {

+	   def method = getClass().getSimpleName() + '.prepDoReplaceVnfAndModules(' +

+		   'execution=' + execution.getId() +

+		   ')'

+	   def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+	   execution.setVariable(prefix + 'errorCode', "0")

+	   logDebug('Entered ' + method, isDebugLogEnabled)

+	   execution.setVariable(prefix + "workStep", "doReplaceVnfAndModules")

+	   execution.setVariable("failedActivity", "MSO Replace VNF")

+	   logDebug('Exited ' + method, isDebugLogEnabled)

+	   

+   }

+	

+	/**

+	 * Builds a "FalloutHandler" request and stores it in the specified execution variable.

+	 *

+	 * @param execution the execution

+	 * @param resultVar the execution variable in which the result will be stored

+	 */

+	public void falloutHandlerPrep(Execution execution, String resultVar) {

+		def method = getClass().getSimpleName() + '.falloutHandlerPrep(' +

+			'execution=' + execution.getId() +

+			', resultVar=' + resultVar +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def prefix = execution.getVariable('prefix')

+			def request = getVariable(execution, prefix+'Request')

+			def requestInformation = execution.getVariable(prefix + "requestInfo")			

+			

+			appcClient.shutdownclient()

+

+			def WorkflowException workflowException = execution.getVariable("WorkflowException")

+			def errorResponseCode = workflowException.getErrorCode()

+			def errorResponseMsg = workflowException.getErrorMessage()

+			def encErrorResponseMsg = ""

+			if (errorResponseMsg != null) {

+				encErrorResponseMsg = errorResponseMsg.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")

+			}

+

+			String content = """

+				<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+						xmlns:reqtype="http://org.openecomp/mso/request/types/v1"

+						xmlns:msoservtypes="http://org.openecomp/mso/request/types/v1"

+						xmlns:structuredtypes="http://org.openecomp/mso/structured/types/v1">

+					${requestInformation}

+					<sdncadapterworkflow:WorkflowException>

+						<sdncadapterworkflow:ErrorMessage>${encErrorResponseMsg}</sdncadapterworkflow:ErrorMessage>

+						<sdncadapterworkflow:ErrorCode>${errorResponseCode}</sdncadapterworkflow:ErrorCode>

+					</sdncadapterworkflow:WorkflowException>

+				</sdncadapterworkflow:FalloutHandlerRequest>

+			"""

+			content = utils.formatXml(content)

+			logDebug(resultVar + ' = ' + System.lineSeparator() + content, isDebugLogEnabled)

+			execution.setVariable(resultVar, content)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildWorkflowException(execution, 2000, 'Internal Error')

+		}

+	}

+	

+	/**

+	 * Handle Abort disposition from RainyDayHandler

+	 *	 

+	 * @param execution The flow's execution instance.	

+	 */

+	public void abortProcessing(Execution execution) {

+		def method = getClass().getSimpleName() + '.abortProcessing(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		def errorText = execution.getVariable(prefix + "errorText")

+		def errorCode = execution.getVariable(prefix + "errorCode")

+		

+		exceptionUtil.buildAndThrowWorkflowException(execution, errorCode as Integer, errorText)

+	}

+	

+	/**

+	 * Handle Manual disposition from RainyDayHandler

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void manualProcessing(Execution execution) {

+		def method = getClass().getSimpleName() + '.manualProcessing(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		def taskId = execution.getVariable("RPLVnfI_taskId")

+		

+		exceptionUtil.buildAndThrowWorkflowException(execution, 2000, "Processing halted - manual task created: " + taskId)

+	}

+

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstance.groovy
index 68b0e58..c1a32c7 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstance.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstance.groovy
@@ -102,7 +102,6 @@
 			    utils.log("DEBUG", " 'disableRollback' : " + execution.getVariable("disableRollback") , isDebugEnabled)
 			}
 
-			// get/set 'msoRequestId' and 'mso-request-id'
 			String requestId = execution.getVariable("msoRequestId")
 			if (requestId != null) {
 				execution.setVariable("mso-request-id", requestId)
@@ -184,15 +183,12 @@
 
 		try {
 
-			// "networkModelInfo" is expected to be sent
-			String networkModelInfo = execution.getVariable("networkModelInfo")
-			utils.log("DEBUG", " networkModelInfo - " + networkModelInfo, isDebugEnabled)
-
-			// "serviceModelInfo" is expected to be sent
-			String serviceModelInfo = execution.getVariable("serviceModelInfo")
-			utils.log("DEBUG", " serviceModelInfo - " + serviceModelInfo, isDebugEnabled)
-
-
+			// For Ala-Carte (sdnc = 1610): 
+			// 1. the Network ModelInfo is expected to be sent 
+			//     via requestDetails.modelInfo (modelType = network), ex: modelCustomizationId
+			// 2. the Service ModelInfo is expected to be sent but will be IGNORE 
+			//     via requestDetails.relatedInstanceList.relatedInstance.modelInfo (modelType = service)
+			
 		} catch (Exception ex) {
 			sendSyncError(execution)
 		   String exceptionMessage = "Bpmn error encountered in UpdateNetworkInstance flow. getNetworkModelInfo() - " + ex.getMessage()
@@ -233,6 +229,9 @@
 		try {
 			utils.log("DEBUG", " ***** Inside prepareDBRequestError() of UpdateNetworkInstance ***** ", isDebugEnabled)
 
+			// set DB Header Authorization
+			setBasicDBAuthHeader(execution, isDebugEnabled)
+				
 			String statusMessage = ""
 			WorkflowException wfe = null
 			if (execution.getVariable("WorkflowException") instanceof WorkflowException) {
@@ -378,12 +377,16 @@
 		def isDebugEnabled=execution.getVariable("isDebugLogEnabled")
 		execution.setVariable("prefix", Prefix)
 
+		utils.log("DEBUG", "DB updateInfraRequest ResponseCode: " + execution.getVariable(Prefix + "dbReturnCode"), isDebugEnabled)
+		utils.log("DEBUG", "DB updateInfraRequest Response: " + execution.getVariable(Prefix + "createDBResponse"), isDebugEnabled)
+		
 		utils.log("DEBUG", " ***** Prepare for FalloutHandler. FAILURE - prepare request for sub-process FalloutHandler. *****", isDebugEnabled)
-
+		
 		String falloutHandlerRequest = ""
 		String requestId = execution.getVariable("mso-request-id")
 
 		try {
+			
 			WorkflowException wfe = execution.getVariable("WorkflowException")
 			String errorCode = String.valueOf(wfe.getErrorCode())
 			String errorMessage = wfe.getErrorMessage()
@@ -407,8 +410,8 @@
 			utils.log("DEBUG", "  Overall Error Response going to FalloutHandler: " + "\n" + falloutHandlerRequest, isDebugEnabled)
 
 		} catch (Exception ex) {
-			String errorException = "  Bpmn error encountered in UpdateNetworkInstance flow. FalloutHandlerRequest,  buildErrorResponse() - " + ex.getMessage()
-			utils.log("DEBUG", errorException, isDebugEnabled)
+			String errorException = "  Bpmn error encountered in UpdateNetworkInstance flow. FalloutHandlerRequest,  buildErrorResponse() - "
+			utils.log("DEBUG", "Exception error in UpdateNetworkInstance flow,  buildErrorResponse(): " +  ex.getMessage(), isDebugEnabled)
 			falloutHandlerRequest =
 			"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
 					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfra.groovy
index d0949ae..7389ff0 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfra.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfra.groovy
@@ -20,6 +20,7 @@
 
 package org.openecomp.mso.bpmn.infrastructure.scripts
 
+import groovy.json.JsonOutput
 import groovy.json.JsonSlurper
 import groovy.util.Node
 import groovy.util.XmlParser;
@@ -69,40 +70,148 @@
 	 * @param execution The flow's execution instance.
 	 */
 	public void preProcessRequest(Execution execution) {
+		
 		def method = getClass().getSimpleName() + '.preProcessRequest(' +
-			'execution=' + execution.getId() +
-			')'
+		'execution=' + execution.getId() +
+		')'
 		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')
 		logDebug('Entered ' + method, isDebugLogEnabled)
 
 		initProcessVariables(execution)
 
-		def prefix = "UPDVfModI_"
-
-		execution.setVariable("isVidRequest", "false")
+		def prefix = "UPDVfModI_"		
 
 		def incomingRequest = execution.getVariable('bpmnRequest')
 
 		utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)
-
-		// check if request is xml or json
 		try {
 			def jsonSlurper = new JsonSlurper()
+			def jsonOutput = new JsonOutput()
 			Map reqMap = jsonSlurper.parseText(incomingRequest)
 			utils.log("DEBUG", " Request is in JSON format.", isDebugLogEnabled)
 
 			def serviceInstanceId = execution.getVariable('serviceInstanceId')
 			def vnfId = execution.getVariable('vnfId')
-
-			def vidUtils = new VidUtils(this)
-
-			String requestInXmlFormat = vidUtils.createXmlVfModuleRequest(execution, reqMap, 'UPDATE_VF_MODULE', serviceInstanceId)
-
-			utils.log("DEBUG", " Request in XML format: " + requestInXmlFormat, isDebugLogEnabled)
-
-			execution.setVariable(prefix + 'Request', requestInXmlFormat)
+			
+			execution.setVariable(prefix + 'serviceInstanceId', serviceInstanceId)
 			execution.setVariable(prefix+'vnfId', vnfId)
 			execution.setVariable("isVidRequest", "true")
+			
+			def vnfName = ''
+			def asdcServiceModelVersion = ''
+			def serviceModelInfo = null
+			def vnfModelInfo = null
+			
+			def relatedInstanceList = reqMap.requestDetails?.relatedInstanceList
+						
+			if (relatedInstanceList != null) {
+				relatedInstanceList.each {
+					if (it.relatedInstance.modelInfo?.modelType == 'service') {
+						asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion
+						serviceModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)
+						
+					}
+					if (it.relatedInstance.modelInfo.modelType == 'vnf') {
+						vnfName = it.relatedInstance.instanceName ?: ''
+						vnfModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)
+					}
+				}
+			}
+			
+			execution.setVariable(prefix + 'vnfName', vnfName)
+			execution.setVariable(prefix + 'asdcServiceModelVersion', asdcServiceModelVersion)
+			execution.setVariable(prefix + 'serviceModelInfo', serviceModelInfo)
+			execution.setVariable(prefix + 'vnfModelInfo', vnfModelInfo)			
+			
+			def vnfType = execution.getVariable('vnfType')
+			execution.setVariable(prefix + 'vnfType', vnfType)	
+			def vfModuleId = execution.getVariable('vfModuleId')
+			execution.setVariable(prefix + 'vfModuleId', vfModuleId)
+			def volumeGroupId = execution.getVariable('volumeGroupId')
+			execution.setVariable(prefix + 'volumeGroupId', volumeGroupId)
+			def userParams = reqMap.requestDetails?.requestParameters?.userParams					
+			
+			Map<String, String> userParamsMap = [:]
+			if (userParams != null) {
+				userParams.each { userParam ->
+					userParamsMap.put(userParam.name, userParam.value)
+				}							
+			}		
+						
+			utils.log("DEBUG", 'Processed user params: ' + userParamsMap, isDebugLogEnabled)		
+			
+			execution.setVariable(prefix + 'vfModuleInputParams', userParamsMap)
+			
+			def isBaseVfModule = "false"
+			if (execution.getVariable('isBaseVfModule') == true) {
+				isBaseVfModule = "true"
+			}			
+			
+			execution.setVariable(prefix + 'isBaseVfModule', isBaseVfModule)
+						
+			def requestId = execution.getVariable("mso-request-id")
+			execution.setVariable(prefix + 'requestId', requestId)
+			
+			def vfModuleModelInfo = jsonOutput.toJson(reqMap.requestDetails?.modelInfo)
+			execution.setVariable(prefix + 'vfModuleModelInfo', vfModuleModelInfo)
+			
+			def suppressRollback = reqMap.requestDetails?.requestInfo?.suppressRollback
+			
+			
+			def backoutOnFailure = ""
+			if(suppressRollback != null){
+				if ( suppressRollback == true) {
+					backoutOnFailure = "false"
+				} else if ( suppressRollback == false) {
+					backoutOnFailure = "true"
+				}
+			}
+			
+			execution.setVariable('disableRollback', suppressRollback)
+			
+			def vfModuleName = reqMap.requestDetails?.requestInfo?.instanceName ?: null
+			execution.setVariable(prefix + 'vfModuleName', vfModuleName)
+			
+			def serviceId = reqMap.requestDetails?.requestParameters?.serviceId ?: ''
+			execution.setVariable(prefix + 'serviceId', serviceId)
+			
+			def usePreload = reqMap.requestDetails?.requestParameters?.usePreload
+			execution.setVariable(prefix + 'usePreload', usePreload)
+			
+			def cloudConfiguration = reqMap.requestDetails?.cloudConfiguration
+			def lcpCloudRegionId	= cloudConfiguration.lcpCloudRegionId
+			execution.setVariable(prefix + 'lcpCloudRegionId', lcpCloudRegionId)
+			def tenantId = cloudConfiguration.tenantId
+			execution.setVariable(prefix + 'tenantId', tenantId)
+			
+			def globalSubscriberId = reqMap.requestDetails?.subscriberInfo?.globalSubscriberId ?: ''
+			execution.setVariable(prefix + 'globalSubscriberId', globalSubscriberId)
+			
+			execution.setVariable(prefix + 'sdncVersion', '1702')
+
+			execution.setVariable("UpdateVfModuleInfraSuccessIndicator", false)
+						
+			execution.setVariable("isDebugLogEnabled", isDebugLogEnabled)
+			
+			
+			def source = reqMap.requestDetails?.requestInfo?.source
+			execution.setVariable(prefix + "source", source)
+			
+			//For Completion Handler & Fallout Handler
+			String requestInfo =
+			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+					<request-id>${requestId}</request-id>
+					<action>UPDATE</action>
+					<source>${source}</source>
+				   </request-info>"""
+			
+			execution.setVariable(prefix + "requestInfo", requestInfo)
+			
+			//backoutOnFailure			
+
+			logDebug('RequestInfo: ' + execution.getVariable(prefix + "requestInfo"), isDebugLogEnabled)			
+						
+			logDebug('Exited ' + method, isDebugLogEnabled)
 
 		}
 		catch(groovy.json.JsonException je) {
@@ -114,35 +223,7 @@
 			String restFaultMessage = e.getMessage()
 			utils.log("ERROR", " Exception Encountered - " + "\n" + restFaultMessage, isDebugLogEnabled)
 			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, restFaultMessage)
-		}
-
-
-		try {
-
-			String request = validateInfraRequest(execution)
-
-			def requestInfo = getRequiredNodeXml(execution, request, 'request-info')
-			execution.setVariable('UPDVfModI_requestInfo', requestInfo)
-			execution.setVariable('UPDVfModI_requestId', getRequiredNodeText(execution, requestInfo, 'request-id'))
-			execution.setVariable('UPDVfModI_source', getNodeTextForce(requestInfo, 'source'))
-
-			def vnfInputs = getRequiredNodeXml(execution, request, 'vnf-inputs')
-			execution.setVariable('UPDVfModI_vnfInputs', vnfInputs)
-			execution.setVariable('UPDVfModI_vnfId', getRequiredNodeText(execution, vnfInputs, 'vnf-id'))
-			execution.setVariable('UPDVfModI_vfModuleId', getRequiredNodeText(execution, vnfInputs, 'vf-module-id'))
-			execution.setVariable('UPDVfModI_tenantId', getRequiredNodeText(execution, vnfInputs, 'tenant-id'))
-			execution.setVariable('UPDVfModI_volumeGroupId', getNodeTextForce(vnfInputs, 'volume-group-id'))
-
-			def vnfParams = utils.getNodeXml(request, 'vnf-params')
-			execution.setVariable('UPDVfModI_vnfParams', vnfParams)
-
-			logDebug('Exited ' + method, isDebugLogEnabled)
-		} catch (BpmnError e) {
-			throw e;
-		} catch (Exception e) {
-			logError('Caught exception in ' + method, e)
-			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in preProcessRequest(): ' + e.getMessage())
-		}
+		}	
 	}
 
 	/**
@@ -322,7 +403,7 @@
 		try {
 			def prefix = execution.getVariable('prefix')
 			def request = getVariable(execution, prefix+'Request')
-			def requestInformation = utils.getNodeXml(request, 'request-info', false)
+			def requestInformation = execution.getVariable(prefix + "requestInfo")
 
 			def WorkflowException workflowException = execution.getVariable("WorkflowException")
 			def errorResponseCode = workflowException.getErrorCode()
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfraV2.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfraV2.groovy
new file mode 100644
index 0000000..eefe33d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleInfraV2.groovy
@@ -0,0 +1,473 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ * 

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+

+package org.openecomp.mso.bpmn.infrastructure.scripts

+ 

+

+import groovy.json.JsonOutput

+import groovy.json.JsonSlurper

+import groovy.util.Node

+import groovy.util.XmlParser;

+import groovy.xml.QName

+import inventory.aai.att.com.v10.GenericVnf

+import inventory.aai.att.com.v10.GenericVnfs

+import inventory.aai.att.com.v10.Pserver

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.impl.cmd.AbstractSetVariableCmd

+import org.camunda.bpm.engine.runtime.Execution

+

+import java.io.Serializable;

+import java.util.List

+

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.rest.RESTClient

+import org.openecomp.mso.rest.RESTConfig

+import org.springframework.beans.factory.annotation.Autowired

+

+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor

+import org.openecomp.mso.bpmn.common.scripts.VidUtils

+import org.openecomp.mso.bpmn.core.RollbackData

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.client.aai.AAIValidatorImpl

+import org.openecomp.mso.client.aai.AAIUpdatorImpl

+import org.openecomp.mso.client.appc.ApplicationControllerClient

+import org.openecomp.mso.client.sdno.SDNOValidatorImpl

+

+

+

+public class UpdateVfModuleInfraV2 {

+

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+

+	boolean preProcessRequestCheck = true;

+	boolean sendSynchResponseCheck = true;

+	boolean checkPserverFlagCheck = true;

+	boolean vfFlagCheckSetCheck = true;

+	boolean lockAppCCheck = true;

+	boolean healthDiagnosticSDNOCheck = true;

+	boolean healthCheckAppCCheck = true;

+	boolean stopVfModuleControllerCheck = true;

+	boolean healthCheckControllerCheck = true;

+	boolean doUpdateVfModulePrepCheck = true;

+	boolean completionHandlerPrepCheck = true;

+	boolean startVfModuleControllerCheck = true;

+	boolean vFFlagUnsetCheck = true;

+	boolean unlockAppCCheck = true;

+	boolean postUpgradeHealthCheckControllerCheck = true;

+

+

+

+	public void initProcessVariables(Execution execution) {

+		execution.setVariable('prefix', 'UPDVfModI_')

+		execution.setVariable('UPDVfModI_Request', null)

+		execution.setVariable('UPDVfModI_requestInfo', null)

+		execution.setVariable('UPDVfModI_requestId', null)

+		execution.setVariable('UPDVfModI_source', null)

+		execution.setVariable('UPDVfModI_vnfInputs', null)

+		execution.setVariable('UPDVfModI_vnfId', null)

+		execution.setVariable('UPDVFModI_moduleUuid', null)

+		execution.setVariable('UPDVfModI_vfModuleId', null)

+		execution.setVariable('UPDVfModI_tenantId', null)

+		execution.setVariable('UPDVfModI_volumeGroupId', null)

+		execution.setVariable('UPDVfModI_vnfParams', null)

+		execution.setVariable('UPDVfModI_updateInfraRequest', null)

+		execution.setVariable('UpdateVfModuleSuccessIndicator', false)

+	}

+

+	/**

+	 * Check for missing elements in the received request.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void preProcessRequest(Execution execution) {

+		System.out.print("*****************************PreProcessRequest**************************")

+

+		def method = getClass().getSimpleName() + '.preProcessRequest(' +

+				'execution=' + execution.getId() +

+				')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		//logDebug('Entered ' + method, isDebugLogEnabled)

+

+		initProcessVariables(execution)

+

+		def prefix = "UPDVfModI_"

+

+		def incomingRequest = execution.getVariable('bpmnRequest')

+

+		//utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)

+		try {

+			def jsonSlurper = new JsonSlurper()

+			def jsonOutput = new JsonOutput()

+			Map reqMap = jsonSlurper.parseText(incomingRequest)

+			//utils.log("DEBUG", " Request is in JSON format.", isDebugLogEnabled)

+

+			def serviceInstanceId = execution.getVariable('serviceInstanceId')

+			def vnfId = execution.getVariable('vnfId')

+			def moduleUuid = execution.getVariable('moduleUuid')

+			execution.setVariable(prefix + 'moduleUuid',moduleUuid)

+			execution.setVariable(prefix + 'serviceInstanceId', serviceInstanceId)

+			execution.setVariable(prefix+'vnfId', vnfId)

+			execution.setVariable("isVidRequest", "true")

+

+			def vnfName = ''

+			def asdcServiceModelVersion = ''

+			def serviceModelInfo = null

+			def vnfModelInfo = null

+

+			def relatedInstanceList = reqMap.requestDetails?.relatedInstanceList

+

+			if (relatedInstanceList != null) {

+				relatedInstanceList.each {

+					if (it.relatedInstance.modelInfo?.modelType == 'service') {

+						asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion

+						serviceModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)

+					}

+					if (it.relatedInstance.modelInfo.modelType == 'vnf') {

+						vnfName = it.relatedInstance.instanceName ?: ''

+						vnfModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)

+					}

+				}

+			}

+

+			execution.setVariable(prefix + 'vnfName', vnfName)

+			execution.setVariable(prefix + 'asdcServiceModelVersion', asdcServiceModelVersion)

+			execution.setVariable(prefix + 'serviceModelInfo', serviceModelInfo)

+			execution.setVariable(prefix + 'vnfModelInfo', vnfModelInfo)

+

+			def vnfType = execution.getVariable('vnfType')

+			execution.setVariable(prefix + 'vnfType', vnfType)

+			def vfModuleId = execution.getVariable('vfModuleId')

+			execution.setVariable(prefix + 'vfModuleId', vfModuleId)

+			def volumeGroupId = execution.getVariable('volumeGroupId')

+			execution.setVariable(prefix + 'volumeGroupId', volumeGroupId)

+			def userParams = reqMap.requestDetails?.requestParameters?.userParams

+

+			Map<String, String> userParamsMap = [:]

+			if (userParams != null) {

+				userParams.each { userParam ->

+					userParamsMap.put(userParam.name, userParam.value)

+				}

+			}

+

+			//utils.log("DEBUG", 'Processed user params: ' + userParamsMap, isDebugLogEnabled)

+

+			execution.setVariable(prefix + 'vfModuleInputParams', userParamsMap)

+

+			def isBaseVfModule = "false"

+			if (execution.getVariable('isBaseVfModule') == true) {

+				isBaseVfModule = "true"

+			}

+

+			execution.setVariable(prefix + 'isBaseVfModule', isBaseVfModule)

+

+			def requestId = execution.getVariable("mso-request-id")

+			execution.setVariable(prefix + 'requestId', requestId)

+

+			def vfModuleModelInfo = jsonOutput.toJson(reqMap.requestDetails?.modelInfo)

+			execution.setVariable(prefix + 'vfModuleModelInfo', vfModuleModelInfo)

+

+			def suppressRollback = reqMap.requestDetails?.requestInfo?.suppressRollback

+

+

+			def backoutOnFailure = ""

+			if(suppressRollback != null){

+				if ( suppressRollback == true) {

+					backoutOnFailure = "false"

+				} else if ( suppressRollback == false) {

+					backoutOnFailure = "true"

+				}

+			}

+

+			execution.setVariable('disableRollback', suppressRollback)

+

+			def vfModuleName = reqMap.requestDetails?.requestInfo?.instanceName ?: null

+			execution.setVariable(prefix + 'vfModuleName', vfModuleName)

+

+			def serviceId = reqMap.requestDetails?.requestParameters?.serviceId ?: ''

+			execution.setVariable(prefix + 'serviceId', serviceId)

+

+			def usePreload = reqMap.requestDetails?.requestParameters?.usePreload

+			execution.setVariable(prefix + 'usePreload', usePreload)

+

+			def cloudConfiguration = reqMap.requestDetails?.cloudConfiguration

+			def lcpCloudRegionId	= cloudConfiguration.lcpCloudRegionId

+			execution.setVariable(prefix + 'lcpCloudRegionId', lcpCloudRegionId)

+			def tenantId = cloudConfiguration.tenantId

+			execution.setVariable(prefix + 'tenantId', tenantId)

+

+			def globalSubscriberId = reqMap.requestDetails?.subscriberInfo?.globalSubscriberId ?: ''

+			execution.setVariable(prefix + 'globalSubscriberId', globalSubscriberId)

+

+			execution.setVariable(prefix + 'sdncVersion', '1702')

+

+			execution.setVariable("UpdateVfModuleInfraSuccessIndicator", false)

+

+			execution.setVariable("isDebugLogEnabled", isDebugLogEnabled)

+

+

+			def source = reqMap.requestDetails?.requestInfo?.source

+			execution.setVariable(prefix + "source", source)

+

+			//For Completion Handler & Fallout Handler

+			String requestInfo =

+					"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					<request-id>${requestId}</request-id>

+					<action>UPDATE</action>

+					<source>${source}</source>

+				   </request-info>"""

+

+			execution.setVariable(prefix + "requestInfo", requestInfo)

+

+			//backoutOnFailure

+

+			//logDebug('RequestInfo: ' + execution.getVariable(prefix + "requestInfo"), isDebugLogEnabled)

+

+			//logDebug('Exited ' + method, isDebugLogEnabled)

+

+		}

+		catch(groovy.json.JsonException je) {

+			//utils.log("DEBUG", " Request is not in JSON format.", isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, "Invalid request format")

+		}

+		catch(Exception e) {

+			String restFaultMessage = e.getMessage()

+			//utils.log("ERROR", " Exception Encountered - " + "\n" + restFaultMessage, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, restFaultMessage)

+		}

+	}

+

+	/**

+	 * Prepare and send the synchronous response for this flow.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void sendSynchResponse(Execution execution) {

+		System.out.print("*****************************SendSynchResponse**************************")

+

+		def method = getClass().getSimpleName() + '.sendSynchResponse(' +

+				'execution=' + execution.getId() +

+				')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		//logDebug('Entered ' + method, isDebugLogEnabled)

+

+

+		try {

+			def requestInfo = execution.getVariable('UPDVfModI_requestInfo')

+			def requestId = execution.getVariable('UPDVfModI_requestId')

+			def source = execution.getVariable('UPDVfModI_source')

+			

+			def progress = getNodeTextForce(requestInfo, 'progress')

+			if (progress.isEmpty()) {

+				progress = '0'

+			}

+			def startTime = getNodeTextForce(requestInfo, 'start-time')

+			if (startTime.isEmpty()) {

+				startTime = System.currentTimeMillis()

+			}

+			// RESTResponse (for API Handler (APIH) Reply Task)

+			def vfModuleId = execution.getVariable("vfModuleId")

+			String synchResponse = """{"requestReferences":{"instanceId":"${vfModuleId}","requestId":"${requestId}"}}""".trim()

+			sendWorkflowResponse(execution, 200, synchResponse)

+			//logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			//logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in sendResponse(): ' + e.getMessage())

+		}

+	}

+

+	//check to see if the Pserver Flag is locked

+	public void checkPserverFlag(Execution execution) {

+

+		System.out.println("*****************************CheckingPserverFlag*************************")

+		String vnfId = (String)execution.getVariable('vnfId')

+		String uuid = (String)execution.getVariable('moduleUuid')

+		AAIValidatorImpl aaiVI = new AAIValidatorImpl()

+		boolean flag = aaiVI.isPhysicalServerLocked(vnfId, uuid)

+	}

+

+	//check to see if the VFFlag is locked

+	public void vfFlagCheck(Execution execution) {

+

+		System.out.print("*****************************VfFlagCheck*************************")

+		String vnfId = (String)execution.getVariable('vnfId')

+		String uuid = (String)execution.getVariable('moduleUuid')

+		AAIValidatorImpl aaiVI = new AAIValidatorImpl()

+		boolean flag = aaiVI.isVNFLocked(vnfId, uuid)

+

+	}

+	//lock the VF Flag

+	public void vfFlagSet(Execution execution) {

+

+		System.out.print("*****************************VfFlagSet*************************")

+		String vnfId = (String)execution.getVariable('vnfId')

+		String uuid = (String)execution.getVariable('moduleUuid')

+		AAIValidatorImpl aaiVI = new AAIValidatorImpl()

+		aaiVI.updateVnfToLocked(vnfId,uuid);

+		

+	}

+

+	//Lock AppC

+	public void lockAppC(Execution execution) {

+

+		System.out.print("*****************************lockAppC*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("Lock",vfModuleId)

+

+

+	}

+	//run health check

+	public void healthCheckAppC(Execution execution) {

+

+		System.out.print("*****************************healthCheckAppC*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("HealthCheck",vfModuleId)

+

+	}

+	//SDNO health diagnostic

+	public void healthDiagnosticSDNO(Execution execution) {

+

+		System.out.print("*****************************healthDiagnosticSDNO is currently ignored*************************")

+		//SDNOValidatorImpl.healthDiagnostic("","");

+

+	}

+	//stop VF module controller

+	public void stopVfModuleController(Execution execution) {

+

+		System.out.print("*****************************stopVfModuleController*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("Stop",vfModuleId)

+

+

+	}

+

+	public void doUpdateVfModulePrep(Execution execution) {

+

+		System.out.print("*****************************doUpdateVfModulePrep*************************")

+		def method = getClass().getSimpleName() + '.prepDoUpdateVfModule(' +

+				'execution=' + execution.getId() +

+				')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		//logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+

+			//logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			//logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in prepDoUpdateVfModule(): ' + e.getMessage())

+

+		}

+

+	}

+

+	public void completionHandlerPrep(Execution execution,String resultVar) {

+

+		System.out.print("*****************************completionHandlerPrep*************************")

+		def method = getClass().getSimpleName() + '.completionHandlerPrep(' +

+				'execution=' + execution.getId() +

+				', resultVar=' + resultVar +

+				')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		//logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def requestInfo = getVariable(execution, 'UPDVfModI_requestInfo')

+

+			String content = """

+					<sdncadapterworkflow:MsoCompletionRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+							xmlns:reqtype="http://org.openecomp/mso/request/types/v1">

+						${requestInfo}

+						<sdncadapterworkflow:mso-bpel-name>MSO_ACTIVATE_BPEL</sdncadapterworkflow:mso-bpel-name>

+					</sdncadapterworkflow:MsoCompletionRequest>

+				"""

+

+			content = utils.formatXml(content)

+			//logDebug(resultVar + ' = ' + System.lineSeparator() + content, isDebugLogEnabled)

+			execution.setVariable(resultVar, content)

+

+			//logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			//logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, 'Internal Error')

+

+		}

+

+	}

+

+	public void healthCheckController(Execution execution) {

+

+		System.out.print("*****************************healthCheckController*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("HealthCheck",vfModuleId)

+

+	}

+

+	public void startVfModuleController(Execution execution) {

+

+		System.out.print("*****************************startVfModuleController*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("Start",vfModuleId)

+

+	}

+

+	public void vFFlagUnset(Execution execution) {

+

+		System.out.print("*****************************vFFlagUnset*************************")

+		String vnfId = (String)execution.getVariable('vnfId')

+		String uuid = (String)execution.getVariable('moduleUuid')

+		AAIValidatorImpl aaiVI = new AAIValidatorImpl()

+		aaiVI.updateVnfToUnLocked(vnfId,uuid);

+

+

+	}

+

+	public void unlockAppC(Execution execution) {

+

+		System.out.print("*****************************unlockAppC*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("Unlock",vfModuleId)

+

+	}

+

+	public void postUpgradeHealthCheckController(Execution execution) {

+

+		System.out.print("*****************************postUpgradeHealthCheckController*************************")

+		def vfModuleId = ""

+		ApplicationControllerClient aCC = new ApplicationControllerClient();

+		def status = aCC.runCommand("HealthCheck",vfModuleId)

+

+	}

+

+}

+

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1.groovy
index ffe122a..e1d567a 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1.groovy
@@ -95,9 +95,10 @@
 			

 			//need to get persona-model-id aka model-invariantId to use later to validate vf-module relation in AAI

 			

-			def modelInvariantId = reqMap.requestDetails.modelInfo.modelInvariantId ?: ''

+			def modelInvariantId = reqMap.requestDetails.modelInfo.modelInvariantUuid ?: ''

 			execution.setVariable('UPDVfModVol_modelInvariantId', modelInvariantId)

 		

+			utils.log("DEBUG", "modelInvariantId from request: " + modelInvariantId, isDebugLogEnabled)

 			utils.log("DEBUG", "XML request:\n" + request, isDebugLogEnabled)

 		}

 		catch(groovy.json.JsonException je) {

@@ -123,18 +124,8 @@
 		execution.setVariable('UPDVfModVol_tenantId', getRequiredNodeText(execution, volumeInputs, 'tenant-id'))

 		//execution.setVariable('UPDVfModVol_modelCustomizationId', getRequiredNodeText(execution, volumeInputs, 'model-customization-id'))

 

-		try {

-			// Catalog DB headers Authorization

-			String basicAuthValueDB = execution.getVariable("URN_mso_adapters_db_auth")

-			utils.log("DEBUG", " Obtained BasicAuth userid password for Catalog DB adapter: " + basicAuthValueDB, isDebugLogEnabled)

-			

-			def encodedString = utils.getBasicAuth(basicAuthValueDB, execution.getVariable("URN_mso_msoKey"))

-			execution.setVariable("BasicAuthHeaderValueDB",encodedString)

-		} catch (IOException ex) {

-			String dataErrorMessage = " Unable to encode Catalog DB user/password string - " + ex.getMessage()

-			utils.log("DEBUG", dataErrorMessage, isDebugLogEnabled)

-			exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)

-		}

+		setBasicDBAuthHeader(execution, isDebugLogEnabled)

+		

 		def volumeParams = utils.getNodeXml(request, 'volume-params')

 		execution.setVariable('UPDVfModVol_volumeParams', volumeParams)

 	}

@@ -303,7 +294,13 @@
 			utils.logAudit('Query AAI VF Module: ' + queryAAIVfModuleRequest)

 			logDebug('Query AAI VF Module: ' + queryAAIVfModuleRequest, isDebugLogEnabled)

 			

-			APIResponse response = aaiUtil.executeAAIGetCall(execution, queryAAIVfModuleRequest)

+			def aaiUrl = execution.getVariable("URN_aai_endpoint")

+			logDebug('A&AI URL: ' + aaiUrl, isDebugLogEnabled)

+			

+			def requestEndpoint = aaiUrl + queryAAIVfModuleRequest

+			logDebug('A&AI request endpoint: ' + requestEndpoint, isDebugLogEnabled)

+			

+			APIResponse response = aaiUtil.executeAAIGetCall(execution, requestEndpoint)

 			

 			String returnCode = response.getStatusCode()

 			String aaiResponseAsString = response.getResponseBodyAsString()

@@ -318,7 +315,12 @@
 			ExceptionUtil exceptionUtil = new ExceptionUtil()

 			

 			if ((returnCode == '200') || (returnCode == '204')) {

-				def personaModelId =  utils.getNodeText1(aaiResponseAsString, 'persona-model-id')

+				def personaModelId =  utils.getNodeText1(aaiResponseAsString, 'model-invariant-id')

+				if(personaModelId == null) {

+					//check old attribute name

+					personaModelId =  utils.getNodeText1(aaiResponseAsString, 'persona-model-id')

+				}

+				logDebug("vfModule personaModelId: " + personaModelId, isDebugLogEnabled)

 				execution.setVariable('UPDVfModVol_personaModelId', personaModelId)

 			}

 			else if (returnCode == '404') {

@@ -353,7 +355,11 @@
 		def aaiVolumeGroupResponse = execution.getVariable('UPDVfModVol_aaiVolumeGroupResponse')

 		def volumeGroupHeatStackId = getNodeTextForce(aaiVolumeGroupResponse, 'heat-stack-id')

 		def volumeGroupName = getNodeTextForce(aaiVolumeGroupResponse, 'volume-group-name')

-		def modelCustomizationId = getNodeTextForce(aaiVolumeGroupResponse, 'vf-module-persona-model-customization-id')

+		def modelCustomizationId = getNodeTextForce(aaiVolumeGroupResponse, 'vf-module-model-customization-id')

+		if(modelCustomizationId == null) {

+			// Check old attribute name

+			modelCustomizationId = getNodeTextForce(aaiVolumeGroupResponse, 'vf-module-persona-model-customization-id')

+		}

 		

 		def vnfType = execution.getVariable('UPDVfModVol_vnfType')

 		def vnfVersion = execution.getVariable('UPDVfModVol_vnfVersion')

@@ -430,6 +436,7 @@
 	public void prepDbInfraDbRequest(Execution execution, isDebugLogEnabled) {

 

 		def requestId = execution.getVariable('UPDVfModVol_requestId')

+		ExceptionUtil exceptionUtil = new ExceptionUtil();

 		

 		String updateInfraRequest = """

 			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

@@ -462,7 +469,7 @@
 					xmlns:ns="http://org.openecomp/mso/request/types/v1">

 			<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

 				<request-id>${requestId}</request-id>

-				<action>CREATE</action>

+				<action>UPDATE</action>

 				<source>${source}</source>

    			</request-info>

    			<aetgt:mso-bpel-name>BPMN VF Module Volume action: UPDATE</aetgt:mso-bpel-name>

@@ -480,8 +487,15 @@
 	 * @param execution The flow's execution instance.

 	 */

 	public void prepFalloutHandler(Execution execution, isDebugLogEnabled) {

+		def requestId = execution.getVariable('UPDVfModVol_requestId')

+		def source = execution.getVariable('UPDVfModVol_source')

 		

-		def requestInfo = execution.getVariable('UPDVfModVol_requestInfo')

+		String requestInfo = """

+		<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+		<request-id>${requestId}</request-id>

+		<action>UPDATE</action>

+		<source>${source}</source>

+	   </request-info>"""

 		

 		def WorkflowException workflowException = execution.getVariable("WorkflowException")

 		def errorResponseCode = workflowException.getErrorCode()

@@ -495,7 +509,7 @@
 			<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

 					xmlns:reqtype="http://org.openecomp/mso/request/types/v1"

 					xmlns:msoservtypes="http://org.openecomp/mso/request/types/v1"

-					xmlns:structuredtypes="http://org.openecomp/mso/structured/types/v1">

+					xmlns:structuredtypes="http://org.openecomp/mso/structured/types/v1">				

 				${requestInfo}

 				<sdncadapterworkflow:WorkflowException>

 					<sdncadapterworkflow:ErrorMessage>${encErrorResponseMsg}</sdncadapterworkflow:ErrorMessage>

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVnfInfra.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVnfInfra.groovy
new file mode 100644
index 0000000..47121a3
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVnfInfra.groovy
@@ -0,0 +1,676 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ * 

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+

+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import groovy.json.JsonOutput

+import groovy.json.JsonSlurper

+import groovy.util.Node

+import groovy.util.XmlParser;

+import groovy.xml.QName

+

+import java.beans.MetaData.java_lang_Class_PersistenceDelegate

+import java.io.Serializable;

+import java.util.UUID;

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.impl.cmd.AbstractSetVariableCmd

+import org.camunda.bpm.engine.runtime.Execution

+import org.openecomp.mso.rest.APIResponse

+import org.openecomp.mso.rest.RESTClient

+import org.openecomp.mso.rest.RESTConfig

+import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor;

+import org.openecomp.mso.bpmn.common.scripts.VidUtils;

+import org.openecomp.mso.bpmn.core.RollbackData

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil

+import org.openecomp.mso.bpmn.core.json.JsonUtils

+import org.openecomp.mso.bpmn.core.domain.ModelInfo

+import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition

+import org.openecomp.mso.bpmn.core.domain.VnfResource

+import org.openecomp.mso.client.aai.*

+

+import org.openecomp.mso.client.appc.ApplicationControllerClient;

+import org.openecomp.mso.client.appc.ApplicationControllerSupport;

+import org.openecomp.appc.client.lcm.model.Action;

+import org.openecomp.appc.client.lcm.model.ActionIdentifiers;

+import org.openecomp.appc.client.lcm.model.LockInput

+import org.openecomp.appc.client.lcm.model.UnlockInput

+import org.openecomp.appc.client.lcm.model.HealthCheckInput

+import org.openecomp.appc.client.lcm.model.StartInput

+import org.openecomp.appc.client.lcm.model.StopInput

+import org.openecomp.appc.client.lcm.model.Flags

+import org.openecomp.appc.client.lcm.model.Status

+

+

+

+public class UpdateVnfInfra extends AbstractServiceTaskProcessor {

+

+	ExceptionUtil exceptionUtil = new ExceptionUtil()

+	JsonUtils jsonUtils = new JsonUtils()

+	ApplicationControllerClient appcClient = new ApplicationControllerClient()

+	def prefix = "UPDVnfI_"

+

+	/**

+	 * Initialize the flow's variables.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void initProcessVariables(Execution execution) {

+		execution.setVariable('prefix', 'UPDVnfI_')

+		execution.setVariable('UPDVnfI_Request', null)

+		execution.setVariable('UPDVnfI_requestInfo', null)

+		execution.setVariable('UPDVnfI_requestId', null)

+		execution.setVariable('UPDVnfI_source', null)

+		execution.setVariable('UPDVnfI_vnfInputs', null)

+		execution.setVariable('UPDVnfI_vnfId', null)		

+		execution.setVariable('UPDVnfI_tenantId', null)		

+		execution.setVariable('UPDVnfI_vnfParams', null)		

+		execution.setVariable('UpdateVnfSuccessIndicator', false)

+		execution.setVariable('UPDVnfI_serviceType', null)

+		execution.setVariable('UPDVnfI_nfRole', null)

+		execution.setVariable('UPDVnfI_currentActivity', 'UPDVnfI')

+		execution.setVariable('UPDVnfI_workStep', null)

+		execution.setVariable('UPDVnfI_failedActivity', null)

+		execution.setVariable('UPDVnfI_errorCode', "0")

+		execution.setVariable('UPDVnfI_errorText', null)

+		execution.setVariable('UPDVnfI_healthCheckIndex', 1)

+	}

+

+	/**

+	 * Check for missing elements in the received request.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void preProcessRequest(Execution execution) {

+		def method = getClass().getSimpleName() + '.preProcessRequest(' +

+		'execution=' + execution.getId() +

+		')'

+		initProcessVariables(execution)

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		initProcessVariables(execution)		

+

+		def incomingRequest = execution.getVariable('bpmnRequest')

+

+		utils.log("DEBUG", "Incoming Infra Request: " + incomingRequest, isDebugLogEnabled)

+		try {

+			def jsonSlurper = new JsonSlurper()

+			def jsonOutput = new JsonOutput()

+			Map reqMap = jsonSlurper.parseText(incomingRequest)

+			utils.log("DEBUG", " Request is in JSON format.", isDebugLogEnabled)

+

+			def serviceInstanceId = execution.getVariable('serviceInstanceId')

+			def vnfId = execution.getVariable('vnfId')

+			

+			execution.setVariable(prefix + 'serviceInstanceId', serviceInstanceId)

+			execution.setVariable(prefix + 'vnfId', vnfId)

+			execution.setVariable("isVidRequest", "true")			

+			

+			def asdcServiceModelVersion = ''

+			def serviceModelInfo = null

+			

+			def relatedInstanceList = reqMap.requestDetails?.relatedInstanceList

+						

+			if (relatedInstanceList != null) {

+				relatedInstanceList.each {

+					if (it.relatedInstance.modelInfo?.modelType == 'service') {

+						utils.log("DEBUG", "PROCESSING SERVICE INFO", isDebugLogEnabled)

+						asdcServiceModelVersion = it.relatedInstance.modelInfo?.modelVersion

+						serviceModelInfo = jsonOutput.toJson(it.relatedInstance.modelInfo)

+						utils.log("DEBUG", "ServiceModelInfo: " + serviceModelInfo, isDebugLogEnabled)

+						def modelInvariant = jsonUtils.getJsonValue(serviceModelInfo, "modelInvariantUuid")

+						utils.log("DEBUG", "modelInvariant: " + modelInvariant, isDebugLogEnabled)

+					}

+					

+				}

+			}		

+			

+			execution.setVariable(prefix + 'asdcServiceModelVersion', asdcServiceModelVersion)

+			execution.setVariable(prefix + 'serviceModelInfo', serviceModelInfo)

+			def vnfModelInfo = jsonOutput.toJson(reqMap.requestDetails?.modelInfo)

+			execution.setVariable(prefix + 'vnfModelInfo', vnfModelInfo)

+			def vnfModelInvariantUuid = jsonUtils.getJsonValue(vnfModelInfo, "modelInvariantUuid")

+			execution.setVariable(prefix + 'vnfModelInvariantUuid', vnfModelInvariantUuid)	

+			logDebug("vnfModelInvariantUuid: " + vnfModelInvariantUuid, isDebugLogEnabled)	

+			

+			def vnfType = execution.getVariable('vnfType')

+			execution.setVariable(prefix + 'vnfType', vnfType)

+			

+			def userParams = reqMap.requestDetails?.requestParameters?.userParams					

+			

+			Map<String, String> userParamsMap = [:]

+			if (userParams != null) {

+				userParams.each { userParam ->

+					userParamsMap.put(userParam.name, userParam.value)

+				}							

+			}		

+						

+			utils.log("DEBUG", 'Processed user params: ' + userParamsMap, isDebugLogEnabled)		

+			

+			execution.setVariable(prefix + 'vfModuleInputParams', userParamsMap)			

+						

+			def requestId = execution.getVariable("mso-request-id")

+			execution.setVariable(prefix + 'requestId', requestId)

+			execution.setVariable('msoRequestId', requestId)

+			

+			

+			def vnfName = reqMap.requestDetails?.requestInfo?.instanceName ?: null

+			execution.setVariable(prefix + 'vnfName', vnfName)

+			

+			def requestorId = reqMap.requestDetails?.requestInfo?.requestorId ?: null

+			execution.setVariable(prefix + 'requestorId', requestorId)

+			

+			def usePreload = reqMap.requestDetails?.requestParameters?.usePreload

+			execution.setVariable(prefix + 'usePreload', usePreload)

+			

+			def cloudConfiguration = reqMap.requestDetails?.cloudConfiguration

+			def lcpCloudRegionId	= cloudConfiguration.lcpCloudRegionId

+			execution.setVariable(prefix + 'lcpCloudRegionId', lcpCloudRegionId)

+			def tenantId = cloudConfiguration.tenantId

+			execution.setVariable(prefix + 'tenantId', tenantId)

+			

+			def globalSubscriberId = reqMap.requestDetails?.subscriberInfo?.globalSubscriberId ?: ''

+			execution.setVariable(prefix + 'globalSubscriberId', globalSubscriberId)

+			

+			execution.setVariable(prefix + 'sdncVersion', '1702')

+

+			execution.setVariable("UpdateVnfInfraSuccessIndicator", false)

+						

+			execution.setVariable("isDebugLogEnabled", isDebugLogEnabled)			

+			

+			def source = reqMap.requestDetails?.requestInfo?.source

+			execution.setVariable(prefix + "source", source)

+			

+			//For Completion Handler & Fallout Handler

+			String requestInfo =

+			"""<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					<request-id>${requestId}</request-id>

+					<action>UPDATE</action>

+					<source>${source}</source>

+				   </request-info>"""

+			

+			execution.setVariable(prefix + "requestInfo", requestInfo)			

+			

+			logDebug('RequestInfo: ' + execution.getVariable(prefix + "requestInfo"), isDebugLogEnabled)		

+			

+			logDebug('Exited ' + method, isDebugLogEnabled)

+

+		}

+		catch(groovy.json.JsonException je) {

+			utils.log("DEBUG", " Request is not in JSON format.", isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, "Invalid request format")

+

+		}

+		catch(Exception e) {

+			String restFaultMessage = e.getMessage()

+			utils.log("ERROR", " Exception Encountered - " + "\n" + restFaultMessage, isDebugLogEnabled)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 5000, restFaultMessage)

+		}	

+	}

+

+	/**

+	 * Prepare and send the sychronous response for this flow.

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void sendSynchResponse(Execution execution) {

+		def method = getClass().getSimpleName() + '.sendSynchResponse(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+

+		try {

+			def requestInfo = execution.getVariable('UPDVnfI_requestInfo')

+			def requestId = execution.getVariable('UPDVnfI_requestId')

+			def source = execution.getVariable('UPDVnfI_source')

+			def progress = getNodeTextForce(requestInfo, 'progress')

+			if (progress.isEmpty()) {

+				progress = '0'

+			}

+			def startTime = getNodeTextForce(requestInfo, 'start-time')

+			if (startTime.isEmpty()) {

+				startTime = System.currentTimeMillis()

+			}

+

+			// RESTResponse (for API Handler (APIH) Reply Task)

+			def vnfId = execution.getVariable("vnfId")

+			String synchResponse = """{"requestReferences":{"instanceId":"${vnfId}","requestId":"${requestId}"}}""".trim()

+

+			sendWorkflowResponse(execution, 200, synchResponse)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in sendResponse(): ' + e.getMessage())

+		}

+	}

+	

+	

+

+	/**

+	 * Get VnfResource decomposition object for this VNF.

+	 *	

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void getVnfResourceDecomposition(Execution execution) {

+		def method = getClass().getSimpleName() + '.getVnfResourceDecomposition(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			ServiceDecomposition serviceDecomposition = execution.getVariable("serviceDecomposition")

+			String vnfModelInvariantUuid = execution.getVariable(prefix + 'vnfModelInvariantUuid')

+			logDebug("vnfModelInvariantUuid: " + vnfModelInvariantUuid, isDebugLogEnabled)

+			List<VnfResource> vnfResources = serviceDecomposition.getServiceVnfs()

+			

+			for (i in 0..vnfResources.size()-1) {

+				ModelInfo modelInfo = vnfResources[i].getModelInfo()

+				String modelInvariantUuidFromDecomposition = modelInfo.getModelInvariantUuid()

+				logDebug("modelInvariantUuidFromDecomposition: " + modelInvariantUuidFromDecomposition, isDebugLogEnabled)

+				

+				if (vnfModelInvariantUuid.equals(modelInvariantUuidFromDecomposition)) {

+					VnfResource vnfResourceDecomposition = vnfResources[i]

+					execution.setVariable(prefix + 'vnfResourceDecomposition', vnfResourceDecomposition)

+					def nfRole = vnfResourceDecomposition.getNfRole()					

+					execution.setVariable(prefix + 'nfRole', nfRole)

+					logDebug("vnfResourceDecomposition: " + vnfResourceDecomposition.toJsonString(), isDebugLogEnabled)					

+					break

+				}

+				else {

+					//exception!

+				}

+				

+			}

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in getVnfResourceDecomposition(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Check if this VNF is already in maintenance in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void checkIfVnfInMaintInAAI(Execution execution) {

+		def method = getClass().getSimpleName() + '.checkIfVnfInMaintInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		execution.setVariable(prefix + "workStep", "checkIfVnfInMaintInAAI")

+		execution.setVariable(prefix + "failedActivity", "AAI")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIValidatorImpl aaiValidator = new AAIValidatorImpl()

+			aaiValidator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")

+			boolean isInMaint = aaiValidator.isVNFLocked(vnfId, transactionLoggingUuid)

+			logDebug("isInMaint result: " + isInMaint, isDebugLogEnabled)

+			execution.setVariable(prefix + 'isVnfInMaintenance', isInMaint)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)			

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in checkIfVnfInMaintInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	

+	/**

+	 * Check if this VNF's pservers are locked in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 */

+	public void checkIfPserversInMaintInAAI(Execution execution) {

+		def method = getClass().getSimpleName() + '.checkIfPserversInMaintInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		execution.setVariable(prefix + "workStep", "checkIfPserversInMaintInAAI")

+		execution.setVariable(prefix + "failedActivity", "AAI")

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIValidatorImpl aaiValidator = new AAIValidatorImpl()

+			aaiValidator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")			

+			boolean areLocked = aaiValidator.isPhysicalServerLocked(vnfId, transactionLoggingUuid)

+			logDebug("areLocked result: " + areLocked, isDebugLogEnabled)

+			execution.setVariable(prefix + 'arePserversLocked', areLocked)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in checkIfPserversInMaintInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Set inMaint flag for this VNF to the specified value in A&AI.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 * @param inMaint The boolean value of the flag to set

+	 */

+	public void setVnfInMaintFlagInAAI(Execution execution, boolean inMaint) {

+		def method = getClass().getSimpleName() + '.setVnfInMaintFlagInAAI(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		if (inMaint) {

+			execution.setVariable(prefix + "workStep", "setVnfInMaintFlagInAAI")

+		}

+		else {

+			execution.setVariable(prefix + "workStep", "unsetVnfInMaintFlagInAAI")

+		}

+		execution.setVariable(prefix + "failedActivity", "AAI")

+

+		try {

+			def transactionLoggingUuid = UUID.randomUUID().toString()

+			AAIRestClientImpl client = new AAIRestClientImpl()

+			AAIUpdatorImpl aaiUpdator = new AAIUpdatorImpl()

+			aaiUpdator.setClient(client)

+			def vnfId = execution.getVariable("vnfId")

+			if (inMaint) {

+				aaiUpdator.updateVnfToLocked(vnfId, transactionLoggingUuid)

+			}

+			else {

+				aaiUpdator.updateVnfToUnLocked(vnfId, transactionLoggingUuid)

+			}

+							

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in setVnfInMaintFlagInAAI(): ' + e.getMessage())

+		}

+	}

+	

+	/**

+	 * Call APP-C client to execute specified APP-C command for this VNF.

+	 *

+	 *

+	 * @param execution The flow's execution instance.

+	 * @param action The action to take in APP-C.

+	 */

+	public void runAppcCommand(Execution execution, Action action) {

+		def method = getClass().getSimpleName() + '.runAppcCommand(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		execution.setVariable(prefix + 'errorCode', "0")

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		try {

+			logDebug("Running APP-C action: " + action.toString(), isDebugLogEnabled)

+			String vnfId = execution.getVariable('vnfId')

+			String msoRequestId = execution.getVariable(prefix + 'requestId')

+			execution.setVariable('msoRequestId', msoRequestId)			

+			execution.setVariable(prefix + "failedActivity", "APP-C")			

+				

+			ApplicationControllerSupport support = new ApplicationControllerSupport()			

+			appcClient.appCSupport=support			

+			org.springframework.test.util.ReflectionTestUtils.setField(support, "lcmModelPackage", "org.openecomp.appc.client.lcm.model");			

+			Flags flags = new Flags();			

+			ActionIdentifiers actionIdentifiers = new ActionIdentifiers();			

+			actionIdentifiers.setVnfId(vnfId);

+			Status appcStatus

+			switch(action) {

+				case Action.Lock:

+					execution.setVariable(prefix + 'workStep', "LockVNF")

+					appcStatus = appcClient.runCommand(Action.Lock,actionIdentifiers,flags,null,msoRequestId)					

+					break

+				case Action.Unlock:

+					execution.setVariable(prefix + 'workStep', "UnlockVNF")

+					appcStatus = appcClient.runCommand(Action.Unlock,actionIdentifiers,flags,null,msoRequestId)					

+					break

+				case Action.HealthCheck:

+					def healthCheckIndex = execution.getVariable(prefix + 'healthCheckIndex')

+					execution.setVariable(prefix + 'workStep', "HealthCheckVNF" + healthCheckIndex)

+					execution.setVariable(prefix + 'healthCheckIndex', healthCheckIndex + 1)

+					appcStatus = appcClient.runCommand(Action.HealthCheck,actionIdentifiers,flags,null,msoRequestId)					

+					break

+				case Action.Start:

+					execution.setVariable(prefix + 'workStep', "StartVNF")

+					appcStatus = appcClient.runCommand(Action.Start,actionIdentifiers,flags,null,msoRequestId)					

+					break

+				case Action.Stop:

+					execution.setVariable(prefix + 'workStep', "StopVNF")

+					appcStatus = appcClient.runCommand(Action.Stop,actionIdentifiers,flags,null,msoRequestId)					

+					break

+				default:

+					break

+			}

+			logDebug("Completed AppC request", isDebugLogEnabled)			

+			int appcCode = appcStatus.getCode()

+			logDebug("AppC status code is: " + appcCode, isDebugLogEnabled)

+			logDebug("AppC status message is: " + appcStatus.getMessage(), isDebugLogEnabled)

+			if (support.getCategoryOf(appcStatus) == ApplicationControllerSupport.StatusCategory.ERROR) {

+				execution.setVariable(prefix + "errorCode", Integer.toString(appcCode))

+				execution.setVariable(prefix + "errorText", appcStatus.getMessage())				

+			}		

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//throw e;

+		} catch (java.lang.NoSuchMethodError e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			//throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			execution.setVariable(prefix + "errorCode", "1002")

+			execution.setVariable(prefix + "errorText", e.getMessage())

+			

+			//exceptionUtil.buildAndThrowWorkflowException(execution, 1002, 'Error in ' + method + ': ' + e.getMessage())

+		}

+	}

+

+

+

+	

+

+	/**

+	 * Builds a "CompletionHandler" request and stores it in the specified execution variable.

+	 *

+	 * @param execution the execution

+	 * @param resultVar the execution variable in which the result will be stored

+	 */

+	public void completionHandlerPrep(Execution execution, String resultVar) {

+		def method = getClass().getSimpleName() + '.completionHandlerPrep(' +

+			'execution=' + execution.getId() +

+			', resultVar=' + resultVar +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)		

+		

+

+		try {

+			appcClient.shutdownclient()

+			def requestInfo = getVariable(execution, 'UPDVnfI_requestInfo')

+

+			String content = """

+				<sdncadapterworkflow:MsoCompletionRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+						xmlns:reqtype="http://org.openecomp/mso/request/types/v1">

+					${requestInfo}

+					<sdncadapterworkflow:mso-bpel-name>MSO_ACTIVATE_BPEL</sdncadapterworkflow:mso-bpel-name>

+				</sdncadapterworkflow:MsoCompletionRequest>

+			"""

+

+			content = utils.formatXml(content)

+			logDebug(resultVar + ' = ' + System.lineSeparator() + content, isDebugLogEnabled)

+			execution.setVariable(resultVar, content)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildAndThrowWorkflowException(execution, 2000, 'Internal Error')

+		}

+	}

+	

+	/**

+	* Prepare DoUpdateVnfAndModules call.

+	*

+	*

+	* @param execution The flow's execution instance.

+	*/

+   public void prepDoUpdateVnfAndModules(Execution execution) {

+	   def method = getClass().getSimpleName() + '.prepDoUpdateVnfAndModules(' +

+		   'execution=' + execution.getId() +

+		   ')'

+	   def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+	   execution.setVariable(prefix + 'errorCode', "0")

+	   logDebug('Entered ' + method, isDebugLogEnabled)

+	   execution.setVariable(prefix + "workStep", "doUpdateVnfAndModules")

+	   execution.setVariable(prefix + "failedActivity", "MSO Update VNF")

+	   logDebug('Exited ' + method, isDebugLogEnabled)

+	   

+   }

+	

+	/**

+	 * Builds a "FalloutHandler" request and stores it in the specified execution variable.

+	 *

+	 * @param execution the execution

+	 * @param resultVar the execution variable in which the result will be stored

+	 */

+	public void falloutHandlerPrep(Execution execution, String resultVar) {

+		def method = getClass().getSimpleName() + '.falloutHandlerPrep(' +

+			'execution=' + execution.getId() +

+			', resultVar=' + resultVar +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+

+		try {

+			def prefix = execution.getVariable('prefix')

+			def request = getVariable(execution, prefix+'Request')

+			def requestInformation = execution.getVariable(prefix + "requestInfo")		

+			

+			appcClient.shutdownclient()

+

+			def WorkflowException workflowException = execution.getVariable("WorkflowException")

+			def errorResponseCode = workflowException.getErrorCode()

+			def errorResponseMsg = workflowException.getErrorMessage()

+			def encErrorResponseMsg = ""

+			if (errorResponseMsg != null) {

+				encErrorResponseMsg = errorResponseMsg.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")

+			}

+

+			String content = """

+				<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+						xmlns:reqtype="http://org.openecomp/mso/request/types/v1"

+						xmlns:msoservtypes="http://org.openecomp/mso/request/types/v1"

+						xmlns:structuredtypes="http://org.openecomp/mso/structured/types/v1">

+					${requestInformation}

+					<sdncadapterworkflow:WorkflowException>

+						<sdncadapterworkflow:ErrorMessage>${encErrorResponseMsg}</sdncadapterworkflow:ErrorMessage>

+						<sdncadapterworkflow:ErrorCode>${errorResponseCode}</sdncadapterworkflow:ErrorCode>

+					</sdncadapterworkflow:WorkflowException>

+				</sdncadapterworkflow:FalloutHandlerRequest>

+			"""

+			content = utils.formatXml(content)

+			logDebug(resultVar + ' = ' + System.lineSeparator() + content, isDebugLogEnabled)

+			execution.setVariable(resultVar, content)

+

+			logDebug('Exited ' + method, isDebugLogEnabled)

+		} catch (BpmnError e) {

+			throw e;

+		} catch (Exception e) {

+			logError('Caught exception in ' + method, e)

+			exceptionUtil.buildWorkflowException(execution, 2000, 'Internal Error')

+		}

+	}

+	

+	/**

+	 * Handle Abort disposition from RainyDayHandler

+	 *

+	 * @param execution The flow's execution instance.	 

+	 */

+	public void abortProcessing(Execution execution) {

+		def method = getClass().getSimpleName() + '.abortProcessing(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		def errorText = execution.getVariable(prefix + "errorText")

+		def errorCode = execution.getVariable(prefix + "errorCode")

+		

+		exceptionUtil.buildAndThrowWorkflowException(execution, errorCode as Integer, errorText)

+	}

+	

+	/**

+	 * Handle Manual disposition from RainyDayHandler

+	 *

+	 * @param execution The flow's execution instance. 

+	 */

+	public void manualProcessing(Execution execution) {

+		def method = getClass().getSimpleName() + '.manualProcessing(' +

+			'execution=' + execution.getId() +

+			')'

+		def isDebugLogEnabled = execution.getVariable('isDebugLogEnabled')

+		logDebug('Entered ' + method, isDebugLogEnabled)

+		

+		def taskId = execution.getVariable("UPDVnfI_taskId")		

+		

+		exceptionUtil.buildAndThrowWorkflowException(execution, 2000, "Processing halted - manual task created: " + taskId)

+	}

+

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/MSOInfrastructureApplication.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/MSOInfrastructureApplication.java
index 07ec8ff..9fc4940 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/MSOInfrastructureApplication.java
+++ b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/MSOInfrastructureApplication.java
@@ -35,7 +35,7 @@
  * @since Version 1.0

  *

  */

-@ProcessApplication("MSO Infrastructure Application")

+@ProcessApplication(name="MSO Infrastructure Application", deploymentDescriptors={"../processes.xml"})

 public class MSOInfrastructureApplication extends ServletProcessApplication {

 	

 	private MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowAsyncInfrastructureResource.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowAsyncInfrastructureResource.java
deleted file mode 100644
index 0cc81bf..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowAsyncInfrastructureResource.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-

- * ============LICENSE_START=======================================================

- * OPENECOMP - MSO

- * ================================================================================

- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

- * ================================================================================

- * Licensed under the Apache License, Version 2.0 (the "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- * 

- *      http://www.apache.org/licenses/LICENSE-2.0

- * 

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- * ============LICENSE_END=========================================================

- */

-

-package org.openecomp.mso.bpmn.infrastructure.workflow.service;

-

-import javax.ws.rs.Path;

-

-import org.camunda.bpm.engine.ProcessEngineServices;

-import org.camunda.bpm.engine.ProcessEngines;

-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncResource;

-

-

-/**

- * 

- * @version 1.0

- * Asynchronous Workflow processing using JAX RS RESTeasy implementation

- * Both Synchronous and Asynchronous BPMN process can benefit from this implementation since the workflow gets executed in the background

- * and the server thread is freed up, server scales better to process more incoming requests

- * 

- * Usage: For synchronous process, when you are ready to send the response invoke the callback to write the response

- * For asynchronous process - the activity may send a acknowledgement response and then proceed further on executing the process

- */

-@Path("/async")

-public class WorkflowAsyncInfrastructureResource extends WorkflowAsyncResource {

-	

-    protected ProcessEngineServices getProcessEngineServices() {

-        return pes4junit.orElse(ProcessEngines.getProcessEngine("infrastructure"));

-    }

-}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowResourceApplication.java b/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowResourceApplication.java
deleted file mode 100644
index 84a9bae..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/java/org/openecomp/mso/bpmn/infrastructure/workflow/service/WorkflowResourceApplication.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-

- * ============LICENSE_START=======================================================

- * OPENECOMP - MSO

- * ================================================================================

- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

- * ================================================================================

- * Licensed under the Apache License, Version 2.0 (the "License");

- * you may not use this file except in compliance with the License.

- * You may obtain a copy of the License at

- * 

- *      http://www.apache.org/licenses/LICENSE-2.0

- * 

- * Unless required by applicable law or agreed to in writing, software

- * distributed under the License is distributed on an "AS IS" BASIS,

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

- * See the License for the specific language governing permissions and

- * limitations under the License.

- * ============LICENSE_END=========================================================

- */

-

-package org.openecomp.mso.bpmn.infrastructure.workflow.service;

-

-import java.util.HashSet;

-import java.util.Set;

-

-import javax.ws.rs.ApplicationPath;

-import javax.ws.rs.core.Application;

-

-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowMessageResource;

-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResource;

-

-/**

- * @version 1.0

- * RESTeasy workflow application which wires synchronous and asynchronous response

- *

- */

-@ApplicationPath("/")

-public class WorkflowResourceApplication extends Application {

-    private Set<Object> singletons = new HashSet<Object>();

-    private Set<Class<?>> classes = new HashSet<Class<?>>();

-

-    public WorkflowResourceApplication() {

-        singletons.add(new WorkflowResource());

-        singletons.add(new WorkflowAsyncInfrastructureResource());

-        singletons.add(new WorkflowMessageResource());

-    }

-

-    @Override

-    public Set<Class<?>> getClasses() {

-        return classes;

-    }

-

-    @Override

-    public Set<Object> getSingletons() {

-        return singletons;

-    }

-}

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateGenericMacroServiceNetworkVnf.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateGenericMacroServiceNetworkVnf.bpmn
deleted file mode 100644
index a3a3652..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateGenericMacroServiceNetworkVnf.bpmn
+++ /dev/null
@@ -1,1243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
-  <bpmn2:process id="CreateGenericMacroServiceNetworkVnf" name="CreateGenericMacroServiceNetworkVnf" isExecutable="true">
-    <bpmn2:scriptTask id="sendSyncAckResponse_ScriptTask" name="Send Sync Ack Response" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.sendSyncResponse(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="sendSyncAckResponse_ScriptTask" targetRef="IntermediateThrowEvent_2" />
-    <bpmn2:startEvent id="createVIPR_startEvent" name="Start Flow">
-      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
-    </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="createVIPR_startEvent" targetRef="preProcessRequest_ScriptTask" />
-    <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.preProcessRequest(execution)
-]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="sendSyncAckResponse_ScriptTask" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_3" name="vIPR-ATM">
-      <bpmn2:outgoing>SequenceFlow_10o22u2</bpmn2:outgoing>

-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_37" name="vIPR-ATM" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:scriptTask id="postProcessAndCompletionRequest_ScriptTask" name="Post Process &#38; Completion Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0afe2pg</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.postProcessResponse(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="postProcessAndCompletionRequest_ScriptTask" targetRef="callCompleteMsoProcess_CallActivity" />
-    <bpmn2:callActivity id="callCompleteMsoProcess_CallActivity" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
-      <bpmn2:extensionElements>
-        <camunda:in variables="all" />
-        <camunda:out variables="all" />
-        <camunda:in source="CGMSNV_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest" />
-        <camunda:in source="mso-request-id" target="requestId" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode" />
-        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" />
-        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="callCompleteMsoProcess_CallActivity" targetRef="ScriptTask_2" />
-    <bpmn2:scriptTask id="ScriptTask_2" name="Set Success Indicator" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[// The following variable is checked by the unit test
-execution.setVariable("CreateGenericMacroServiceNetworkVnfSuccessIndicator", true)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_2" targetRef="CreateVIPR_EndEvent" />
-    <bpmn2:endEvent id="CreateVIPR_EndEvent" name="End">
-      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_13" />
-    </bpmn2:endEvent>
-    <bpmn2:subProcess id="UnexpectedError_SubProcess_1" name="Sub-process for UnexpectedErrors" triggeredByEvent="true">
-      <bpmn2:startEvent id="StartEvent_1">
-        <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="_ErrorEventDefinition_92" errorRef="Error_1" />
-      </bpmn2:startEvent>
-      <bpmn2:endEvent id="EndEvent_1">
-        <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
-      </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_1" />
-      <bpmn2:scriptTask id="ScriptTask_1" name="Log / Print Unexpected Error" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateServiceInstanceInfra = new CreateServiceInstanceInfra()
-CreateServiceInstanceInfra.processJavaException(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_1" targetRef="EndEvent_1" />
-    </bpmn2:subProcess>
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_4" name="FinishProcess">
-      <bpmn2:outgoing>SequenceFlow_12ilko1</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_39" name="FinishProcess" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:callActivity id="doCreateNetworkInstance_CallActivity" name="DoCreate&#10;Network&#10;Instance" calledElement="DoCreateNetworkInstance">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="networkModelInfo" target="networkModelInfo" />
-        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
-        <camunda:in source="tenantId" target="tenantId" />
-        <camunda:in source="productFamilyId" target="productFamilyId" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="networkInputParams" target="networkInputParams" />
-        <camunda:in source="failIfExists" target="failIfExists" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="rollbackData" target="DCRENI_rollbackData" />
-        <camunda:out source="rolledBack" target="DCRENI_rolledBack" />
-        <camunda:out source="networkId" target="networkId" />
-        <camunda:out source="networkName" target="networkName" />
-        <camunda:out source="networkOutputParams" target="networkOutputParams" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-        <camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
-        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
-        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_1bwbn7r</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_12ag2bk</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_PrepareNetworkCreate" name="Prepare for Network Create" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0cmebdc</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_0dfkfh1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1bwbn7r</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.prepareNetworkCreate(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:callActivity id="doCreateServiceInstance_CallActivity" name="DoCreate&#10;ServiceInstance&#10;" calledElement="DoCreateServiceInstance">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
-        <camunda:in sourceExpression="vIPR-ATM" target="subscriptionServiceType" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:out source="rollbackData" target="DCRESI_rollbackData" />
-        <camunda:in source="serviceInstanceName" target="serviceInstanceName" />
-        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
-        <camunda:in source="failIfExists" target="failIfExists" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:in source="serviceInputParams" target="serviceInputParams" />
-        <camunda:out source="rolledBack" target="DCRESI_rolledBack" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="serviceInstanceName" target="serviceInstanceName" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="subscriptionServiceType" target="subscriptionServiceType" />
-        <camunda:in source="productFamilyId" target="productFamilyId" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0j6sjye</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1ky2sv9</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:callActivity id="doCreateVNFandModules_CallActivity" name="DoCreate&#10;VNF and Modules&#10;" calledElement="DoCreateVnfAndModules">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="productFamilyId" target="productFamilyId" />
-        <camunda:in source="vnfModelInfo" target="vnfModelInfo" />
-        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
-        <camunda:in source="tenantId" target="tenantId" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-        <camunda:out source="rollbackData" target="DCVM_rollbackData" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="vnfId" target="vnfId" />
-        <camunda:out source="vnfName" target="vnfName" />
-        <camunda:out source="vnfOutputParams" target="vnfOutputParams" />
-        <camunda:out source="rolledBack" target="rolledBack" />
-        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
-        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
-        <camunda:in source="serviceDecomposition" target="serviceDecomposition" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_1h77psn</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0qi5uxg</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_3" name="Prepare to Create VNF" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0bvecvm</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1h77psn</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.prepareVnfAndModulesCreate(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_4" name="GoToFinishProcess">
-      <bpmn2:incoming>SequenceFlow_0xowenu</bpmn2:incoming>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_41" name="FinishProcess" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_2" name="GoTovIPR-ATM">
-      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_38" name="vIPR-ATM" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:subProcess id="SubProcess_0s6hpty" name="Subprocess For Exception / FalloutHandler " triggeredByEvent="true">
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_1vwgs6p" name="Is Rollback On?" default="SequenceFlow_0dhf2js">
-        <bpmn2:incoming>SequenceFlow_0zq7i3q</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0zpbskl</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_0dhf2js</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:startEvent id="StartEvent_1bwmffk" name="Fault Start">
-        <bpmn2:outgoing>SequenceFlow_0zq7i3q</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition />
-      </bpmn2:startEvent>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_0ydrtdx" name="isPONR?" default="SequenceFlow_02o4yqx">
-        <bpmn2:incoming>SequenceFlow_0zpbskl</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1sx5llu</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_02o4yqx</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_00rt5qa" name="is VNF Ok?" default="SequenceFlow_05lo85t">
-        <bpmn2:incoming>SequenceFlow_0sdb3on</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_05lo85t</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_0xtr1g5</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_1kvn1pz" name="Network Rollback present?" default="SequenceFlow_19mxskt">
-        <bpmn2:incoming>SequenceFlow_05lo85t</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_09xerwk</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_19mxskt</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_0tmepzk</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:callActivity id="CallActivity_0jw5tqa" name="Call FalloutHandlerV1" calledElement="FalloutHandler">
-        <bpmn2:extensionElements>
-          <camunda:in source="CGMSNV_falloutRequest" target="FalloutHandlerRequest" />
-          <camunda:in source="msoRequestId" target="mso-request-id" />
-          <camunda:in source="serviceInstanceId" target="mso-service-instance-id" />
-          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode" />
-          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" />
-          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_0807ukc</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_19yywk8</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:endEvent id="EndEvent_04xute7">
-        <bpmn2:incoming>SequenceFlow_19yywk8</bpmn2:incoming>
-      </bpmn2:endEvent>
-      <bpmn2:inclusiveGateway id="InclusiveGateway_1pqjttt">
-        <bpmn2:incoming>SequenceFlow_19mxskt</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_1brxd2r</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_08s0ew2</bpmn2:outgoing>
-      </bpmn2:inclusiveGateway>
-      <bpmn2:scriptTask id="ScriptTask_0yk02h3" name="Prepare FalloutHandler" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_0jg47xm</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0807ukc</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.prepareFalloutRequest(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_0zpbskl" name="Yes" sourceRef="ExclusiveGateway_1vwgs6p" targetRef="ExclusiveGateway_0ydrtdx">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("disableRollback") != true}]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_0dhf2js" name="No" sourceRef="ExclusiveGateway_1vwgs6p" targetRef="InclusiveGateway_0foywso" />
-      <bpmn2:sequenceFlow id="SequenceFlow_1sx5llu" name="Yes" sourceRef="ExclusiveGateway_0ydrtdx" targetRef="InclusiveGateway_0foywso">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("PONR") == true}]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_02o4yqx" name="No" sourceRef="ExclusiveGateway_0ydrtdx" targetRef="ScriptTask_17doerz" />
-      <bpmn2:sequenceFlow id="SequenceFlow_05lo85t" name="No" sourceRef="ExclusiveGateway_00rt5qa" targetRef="ExclusiveGateway_1kvn1pz" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0xtr1g5" name="Yes" sourceRef="ExclusiveGateway_00rt5qa" targetRef="DoRollbackVNFandModules_CallActivity">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVM_rollbackData") != null }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_19mxskt" name="No" sourceRef="ExclusiveGateway_1kvn1pz" targetRef="InclusiveGateway_1pqjttt" />
-      <bpmn2:callActivity id="DoRollbackVNFandModules_CallActivity" name="DoRollback&#10;VNF and Modules&#10;" calledElement="DoCreateVnfAndModulesRollback">
-        <bpmn2:extensionElements>
-          <camunda:in source="msoRequestId" target="msoRequestId" />
-          <camunda:in source="DCVAM_rollbackData" target="rollbackData" />
-          <camunda:out source="rollbackSuccessful" target="DCVAM_rollbackSuccessful" />
-          <camunda:out source="rollbackError" target="DCVAM_rollbackError" />
-          <camunda:in source="sdncVersion" target="sdncVersion" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_0xtr1g5</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_09xerwk</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:sequenceFlow id="SequenceFlow_09xerwk" sourceRef="DoRollbackVNFandModules_CallActivity" targetRef="ExclusiveGateway_1kvn1pz" />
-      <bpmn2:callActivity id="DoRollbackNetwork_CallActivity" name="DoRollback&#10;Network" calledElement="DoCreateNetworkInstanceRollback">
-        <bpmn2:extensionElements>
-          <camunda:in source="msoRequestId" target="msoRequestId" />
-          <camunda:in source="DCRENI_rollbackData" target="rollbackData" />
-          <camunda:out source="rollbackSuccessful" target="DCRENI_rollbackSuccessful" />
-          <camunda:out source="rollbackError" target="DCRENI_rollbackError" />
-          <camunda:in source="sdncVersion" target="sdncVersion" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_0136s37</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_1fqmrda</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1dmsx0d</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_09o09bu" name="Network rolled back OK?" default="SequenceFlow_0g7scsg">
-        <bpmn2:incoming>SequenceFlow_1ieiew4</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1os9x7w</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_0g7scsg</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:callActivity id="DoRollbackService_CallActivity" name="DoRollback&#10;Service&#10;" calledElement="DoCreateServiceInstanceRollback">
-        <bpmn2:extensionElements>
-          <camunda:in source="DCRESI_rollbackData" target="rollbackData" />
-          <camunda:in source="msoRequestId" target="msoRequestId" />
-          <camunda:out source="rollbackSuccessful" target="DCRESI_rollbackSuccessful" />
-          <camunda:out source="rollbackError" target="DCRESI_rollbackError" />
-          <camunda:in source="sdncVersion" target="sdncVersion" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_1os9x7w</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1f1hd3l</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:inclusiveGateway id="InclusiveGateway_0foywso">
-        <bpmn2:incoming>SequenceFlow_1sx5llu</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_0dhf2js</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_1rabks0</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0jg47xm</bpmn2:outgoing>
-      </bpmn2:inclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_1os9x7w" name="Yes" sourceRef="ExclusiveGateway_09o09bu" targetRef="DoRollbackService_CallActivity">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCRENI_rollbackSuccessful") == null  || execution.getVariable("DCRENI_rollbackSuccessful") == true  }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_1f1hd3l" sourceRef="DoRollbackService_CallActivity" targetRef="InclusiveGateway_0m9f5ka" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0g7scsg" name="No" sourceRef="ExclusiveGateway_09o09bu" targetRef="InclusiveGateway_0m9f5ka" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0jg47xm" sourceRef="InclusiveGateway_0foywso" targetRef="ScriptTask_0yk02h3" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0807ukc" sourceRef="ScriptTask_0yk02h3" targetRef="CallActivity_0jw5tqa" />
-      <bpmn2:sequenceFlow id="SequenceFlow_19yywk8" sourceRef="CallActivity_0jw5tqa" targetRef="EndEvent_04xute7" />
-      <bpmn2:scriptTask id="ScriptTask_184teky" name="Validate Network Rollback" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_1dmsx0d</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1otyild</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.validateNetworkRollback(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_1c386z9" name="Rollback Additional Networks?" default="SequenceFlow_12u8ufr">
-        <bpmn2:incoming>SequenceFlow_1otyild</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0136s37</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_12u8ufr</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_1dmsx0d" sourceRef="DoRollbackNetwork_CallActivity" targetRef="ScriptTask_184teky" />
-      <bpmn2:sequenceFlow id="SequenceFlow_1otyild" sourceRef="ScriptTask_184teky" targetRef="ExclusiveGateway_1c386z9" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0136s37" name="Yes" sourceRef="ExclusiveGateway_1c386z9" targetRef="DoRollbackNetwork_CallActivity">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CGMSNV_NetworksCreatedCount")  > 0 }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_12u8ufr" name="No" sourceRef="ExclusiveGateway_1c386z9" targetRef="ExclusiveGateway_05indeh" />
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_1bts0nw" name="VNF rolled back OK?" default="SequenceFlow_1brxd2r">
-        <bpmn2:incoming>SequenceFlow_0tmepzk</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1fqmrda</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_1brxd2r</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_0tmepzk" name="Yes" sourceRef="ExclusiveGateway_1kvn1pz" targetRef="ExclusiveGateway_1bts0nw">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCRENI_rollbackData") != null }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_1fqmrda" name="Yes" sourceRef="ExclusiveGateway_1bts0nw" targetRef="DoRollbackNetwork_CallActivity">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCVAM_rollbackSuccessful") == null || execution.getVariable("DCVAM_rollbackSuccessful") == true }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_1brxd2r" name="No" sourceRef="ExclusiveGateway_1bts0nw" targetRef="InclusiveGateway_1pqjttt" />
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_05indeh" name="Service Rollback present?" default="SequenceFlow_0sezboq">
-        <bpmn2:incoming>SequenceFlow_12u8ufr</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_08s0ew2</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1ieiew4</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_0sezboq</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_08s0ew2" sourceRef="InclusiveGateway_1pqjttt" targetRef="ExclusiveGateway_05indeh" />
-      <bpmn2:sequenceFlow id="SequenceFlow_1ieiew4" name="Yes" sourceRef="ExclusiveGateway_05indeh" targetRef="ExclusiveGateway_09o09bu">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("DCRESI_rollbackData") != null  }]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_0sezboq" name="No" sourceRef="ExclusiveGateway_05indeh" targetRef="InclusiveGateway_0m9f5ka" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0zq7i3q" name="" sourceRef="StartEvent_1bwmffk" targetRef="ExclusiveGateway_1vwgs6p" />
-      <bpmn2:inclusiveGateway id="InclusiveGateway_0m9f5ka">
-        <bpmn2:incoming>SequenceFlow_1f1hd3l</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_0g7scsg</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_0sezboq</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0f4u373</bpmn2:outgoing>
-      </bpmn2:inclusiveGateway>
-      <bpmn2:scriptTask id="ScriptTask_17doerz" name="Pre Process Rollback" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_02o4yqx</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0sdb3on</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.preProcessRollback(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:scriptTask id="ScriptTask_0wyub4x" name="Post Process Rollback" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_0f4u373</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_1rabks0</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.postProcessRollback(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_0sdb3on" sourceRef="ScriptTask_17doerz" targetRef="ExclusiveGateway_00rt5qa" />
-      <bpmn2:sequenceFlow id="SequenceFlow_0f4u373" sourceRef="InclusiveGateway_0m9f5ka" targetRef="ScriptTask_0wyub4x" />
-      <bpmn2:sequenceFlow id="SequenceFlow_1rabks0" sourceRef="ScriptTask_0wyub4x" targetRef="InclusiveGateway_0foywso" />
-    </bpmn2:subProcess>
-    <bpmn2:scriptTask id="callDbCatalog_scriptTask" name="Get Models Info&#10;for Service&#10;" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1vwssu7</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_19etqmx</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.getDataFromDecomposition(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:scriptTask id="prepareCreateService_scriptTask" name="Prepare&#10;Create&#10;Service&#10;" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0hvcwa1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0j6sjye</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.prepareCreateServiceInstance(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:scriptTask id="setPONR_ScriptTask" name="set PONR">
-      <bpmn2:incoming>SequenceFlow_12ilko1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0afe2pg</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[#{execution.setVariable("PONR", true)}]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12ilko1" sourceRef="IntermediateCatchEvent_4" targetRef="setPONR_ScriptTask" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0afe2pg" sourceRef="setPONR_ScriptTask" targetRef="postProcessAndCompletionRequest_ScriptTask" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1bwbn7r" sourceRef="ScriptTask_PrepareNetworkCreate" targetRef="doCreateNetworkInstance_CallActivity" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1n7r495" name="No" sourceRef="ExclusiveGateway_0fe690i" targetRef="ExclusiveGateway_1os8cm5" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1h77psn" sourceRef="ScriptTask_3" targetRef="doCreateVNFandModules_CallActivity" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1nh09nr" name="StartNetworks">
-      <bpmn2:outgoing>SequenceFlow_1vwssu7</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartNetworks" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0prlju0" name="GoTo StartNetworks">
-      <bpmn2:incoming>SequenceFlow_13uceka</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="StartNetworks" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_0b9wd4f" name="Create Network(s)?" default="SequenceFlow_1f26zbk">
-      <bpmn2:incoming>SequenceFlow_19etqmx</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0cmebdc</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_1f26zbk</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_0fe690i" name="Create Additional Networks?" default="SequenceFlow_1n7r495">
-      <bpmn2:incoming>SequenceFlow_04vlq8r</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1n7r495</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_0dfkfh1</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_0dfkfh1" name="Yes" sourceRef="ExclusiveGateway_0fe690i" targetRef="ScriptTask_PrepareNetworkCreate">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CGMSNV_NetworksCreatedCount") < execution.getVariable("CGMSNV_NetworksCount")}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0cmebdc" name="Yes" sourceRef="ExclusiveGateway_0b9wd4f" targetRef="ScriptTask_PrepareNetworkCreate">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CGMSNV_NetworksCount") > 0}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1os8cm5">
-      <bpmn2:incoming>SequenceFlow_1n7r495</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_1f26zbk</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1j7n6qx</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_1f26zbk" name="No" sourceRef="ExclusiveGateway_0b9wd4f" targetRef="ExclusiveGateway_1os8cm5" />
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0nreq15" name="GoTo StartVnfs">
-      <bpmn2:incoming>SequenceFlow_1j7n6qx</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="StartVnfs" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1vwssu7" sourceRef="IntermediateCatchEvent_1nh09nr" targetRef="callDbCatalog_scriptTask" />
-    <bpmn2:sequenceFlow id="SequenceFlow_19etqmx" sourceRef="callDbCatalog_scriptTask" targetRef="ExclusiveGateway_0b9wd4f" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1j7n6qx" sourceRef="ExclusiveGateway_1os8cm5" targetRef="IntermediateThrowEvent_0nreq15" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0rlqdvq" name="StartVnfs">
-      <bpmn2:outgoing>SequenceFlow_10tbv62</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartVnfs" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1nlocis" name="Create VNF?" default="SequenceFlow_0w7328u">
-      <bpmn2:incoming>SequenceFlow_10tbv62</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0bvecvm</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_0w7328u</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_04q1qud">
-      <bpmn2:incoming>SequenceFlow_0qi5uxg</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_0w7328u</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0xowenu</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_10tbv62" sourceRef="IntermediateCatchEvent_0rlqdvq" targetRef="ExclusiveGateway_1nlocis" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0bvecvm" name="Yes" sourceRef="ExclusiveGateway_1nlocis" targetRef="ScriptTask_3">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CGMSNV_VNFsCount") >0}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0qi5uxg" name="in 1702 scope only one VNF will be created - if needed" sourceRef="doCreateVNFandModules_CallActivity" targetRef="ExclusiveGateway_04q1qud">
-      <bpmn2:documentation>in 1702 scope only one VNF will be created</bpmn2:documentation>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0w7328u" name="No" sourceRef="ExclusiveGateway_1nlocis" targetRef="ExclusiveGateway_04q1qud" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0xowenu" sourceRef="ExclusiveGateway_04q1qud" targetRef="IntermediateThrowEvent_4" />
-    <bpmn2:scriptTask id="ScriptTask_04o8gb3" name="Validate Network Create" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_12ag2bk</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_04vlq8r</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf= new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.validateNetworkCreate(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12ag2bk" sourceRef="doCreateNetworkInstance_CallActivity" targetRef="ScriptTask_04o8gb3" />
-    <bpmn2:sequenceFlow id="SequenceFlow_04vlq8r" sourceRef="ScriptTask_04o8gb3" targetRef="ExclusiveGateway_0fe690i" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0j6sjye" sourceRef="prepareCreateService_scriptTask" targetRef="doCreateServiceInstance_CallActivity" />
-    <bpmn2:serviceTask id="updateInfraRequest" name="Update DB status to SUCCESS">
-      <bpmn2:extensionElements>
-        <camunda:connector>
-          <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
-            <camunda:inputParameter name="payload"><![CDATA[${execution.getVariable("CGMSNV_setUpdateDbInstancePayload")}]]></camunda:inputParameter>
-            <camunda:inputParameter name="headers">
-              <camunda:map>
-                <camunda:entry key="content-type">application/soap+xml</camunda:entry>
-              </camunda:map>
-            </camunda:inputParameter>
-            <camunda:inputParameter name="method">POST</camunda:inputParameter>
-          </camunda:inputOutput>
-          <camunda:connectorId>soap-http-connector</camunda:connectorId>
-        </camunda:connector>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0vj46ej</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_13uceka</bpmn2:outgoing>
-    </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_13uceka" sourceRef="updateInfraRequest" targetRef="IntermediateThrowEvent_0prlju0" />
-    <bpmn2:scriptTask id="ScriptTask_1qd3uwb" name="PostProcess&#10;Create&#10;Service&#10;" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1ky2sv9</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0vj46ej</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.postProcessServiceInstanceCreate(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1ky2sv9" sourceRef="doCreateServiceInstance_CallActivity" targetRef="ScriptTask_1qd3uwb" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0vj46ej" sourceRef="ScriptTask_1qd3uwb" targetRef="updateInfraRequest" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0hvcwa1" sourceRef="DecomposeService" targetRef="prepareCreateService_scriptTask" />
-    <bpmn2:callActivity id="DecomposeService" name="DecomposeService" calledElement="DecomposeService">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:out source="serviceDecomposition" target="serviceDecomposition" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_00h6hmd</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0hvcwa1</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_0cdtchu" name="Prepare&#10;Decompose&#10;Service&#10;" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1eu60rt</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_00h6hmd</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def CreateGenericMacroServiceNetworkVnf = new CreateGenericMacroServiceNetworkVnf()
-CreateGenericMacroServiceNetworkVnf.prepareDecomposeService(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1eu60rt" sourceRef="IntermediateCatchEvent_3" targetRef="ScriptTask_0cdtchu" />
-    <bpmn2:sequenceFlow id="SequenceFlow_00h6hmd" sourceRef="ScriptTask_0cdtchu" targetRef="DecomposeService" />
-  </bpmn2:process>
-  <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
-  <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
-  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateGenericMacroServiceNetworkVnf">
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="createVIPR_startEvent">
-        <dc:Bounds x="96" y="90" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="82" y="131" width="65" height="22" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
-        <dc:Bounds x="285" y="68" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
-        <di:waypoint xsi:type="dc:Point" x="132" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="285" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="171" y="108" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_4" bpmnElement="callCompleteMsoProcess_CallActivity">
-        <dc:Bounds x="787" y="1115" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_80" bpmnElement="postProcessAndCompletionRequest_ScriptTask">
-        <dc:Bounds x="514" y="1115" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_61" targetElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="385" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="476" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="271" y="69" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="sendSyncAckResponse_ScriptTask">
-        <dc:Bounds x="476" y="68" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_42" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ScriptTask_80" targetElement="_BPMNShape_CallActivity_4">
-        <di:waypoint xsi:type="dc:Point" x="614" y="1155" />
-        <di:waypoint xsi:type="dc:Point" x="787" y="1155" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="701" y="1140" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="CreateVIPR_EndEvent">
-        <dc:Bounds x="1286" y="1135" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1294" y="1176" width="20" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_CallActivity_4" targetElement="_BPMNShape_ScriptTask_337">
-        <di:waypoint xsi:type="dc:Point" x="887" y="1155" />
-        <di:waypoint xsi:type="dc:Point" x="1095" y="1154" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="991" y="1140" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_27" bpmnElement="UnexpectedError_SubProcess_1" isExpanded="true">
-        <dc:Bounds x="1281" y="1385" width="409" height="232" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_70" bpmnElement="StartEvent_1">
-        <dc:Bounds x="1349" y="1490" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1367" y="1531" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_269" bpmnElement="ScriptTask_1">
-        <dc:Bounds x="1424" y="1468" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_219" bpmnElement="EndEvent_1">
-        <dc:Bounds x="1577" y="1490" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1595" y="1531" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_70" targetElement="_BPMNShape_ScriptTask_269">
-        <di:waypoint xsi:type="dc:Point" x="1385" y="1508" />
-        <di:waypoint xsi:type="dc:Point" x="1424" y="1508" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1413" y="1508" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_269" targetElement="_BPMNShape_EndEvent_219">
-        <di:waypoint xsi:type="dc:Point" x="1524" y="1508" />
-        <di:waypoint xsi:type="dc:Point" x="1557" y="1508" />
-        <di:waypoint xsi:type="dc:Point" x="1557" y="1508" />
-        <di:waypoint xsi:type="dc:Point" x="1577" y="1508" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1572" y="1508" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_75" bpmnElement="doCreateServiceInstance_CallActivity">
-        <dc:Bounds x="610" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="576" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="728" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="652" y="93" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_337" bpmnElement="ScriptTask_2">
-        <dc:Bounds x="1095" y="1114" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_337" targetElement="_BPMNShape_EndEvent_177">
-        <di:waypoint xsi:type="dc:Point" x="1195" y="1153" />
-        <di:waypoint xsi:type="dc:Point" x="1286" y="1153" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1241" y="1138" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_76" bpmnElement="doCreateNetworkInstance_CallActivity">
-        <dc:Bounds x="542" y="491" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_35" bpmnElement="IntermediateCatchEvent_3">
-        <dc:Bounds x="96" y="245" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="88" y="281" width="51" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_36" bpmnElement="IntermediateCatchEvent_4">
-        <dc:Bounds x="84" y="1137" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="66" y="1173" width="71" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_51" bpmnElement="IntermediateThrowEvent_4">
-        <dc:Bounds x="1033" y="854" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1008" y="895" width="85" height="26" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_341" bpmnElement="ScriptTask_PrepareNetworkCreate">
-        <dc:Bounds x="400" y="488" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_342" bpmnElement="ScriptTask_3">
-        <dc:Bounds x="456" y="765" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_81" bpmnElement="doCreateVNFandModules_CallActivity">
-        <dc:Bounds x="623" y="765" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_49" bpmnElement="IntermediateThrowEvent_2">
-        <dc:Bounds x="728" y="90" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="707" y="131" width="77" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="SubProcess_0s6hpty_di" bpmnElement="SubProcess_0s6hpty" isExpanded="true">
-        <dc:Bounds x="-75" y="1333" width="1324" height="837" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1vwgs6p_di" bpmnElement="ExclusiveGateway_1vwgs6p" isMarkerVisible="true">
-        <dc:Bounds x="79" y="2042" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="66" y="2102" width="80" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="StartEvent_1bwmffk_di" bpmnElement="StartEvent_1bwmffk">
-        <dc:Bounds x="-34" y="2050" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="-40" y="2091" width="50" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0ydrtdx_di" bpmnElement="ExclusiveGateway_0ydrtdx" isMarkerVisible="true">
-        <dc:Bounds x="79" y="1935" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="13" y="1950" width="47" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_00rt5qa_di" bpmnElement="ExclusiveGateway_00rt5qa" isMarkerVisible="true">
-        <dc:Bounds x="79" y="1625" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="5" y="1640" width="57" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1kvn1pz_di" bpmnElement="ExclusiveGateway_1kvn1pz" isMarkerVisible="true">
-        <dc:Bounds x="206" y="1505" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="188" y="1471" width="89" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_0jw5tqa_di" bpmnElement="CallActivity_0jw5tqa">
-        <dc:Bounds x="1052" y="2016" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="EndEvent_04xute7_di" bpmnElement="EndEvent_04xute7">
-        <dc:Bounds x="1189" y="2038" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1207" y="2079" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="InclusiveGateway_1pqjttt_di" bpmnElement="InclusiveGateway_1pqjttt">
-        <dc:Bounds x="303" y="1625" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="328" y="1680" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0yk02h3_di" bpmnElement="ScriptTask_0yk02h3">
-        <dc:Bounds x="920" y="2016" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0zpbskl_di" bpmnElement="SequenceFlow_0zpbskl">
-        <di:waypoint xsi:type="dc:Point" x="104" y="2042" />
-        <di:waypoint xsi:type="dc:Point" x="104" y="1985" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="110" y="2023.785849077779" width="19" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0dhf2js_di" bpmnElement="SequenceFlow_0dhf2js">
-        <di:waypoint xsi:type="dc:Point" x="129" y="2067" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="2067" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="1985" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="169" y="2072" width="14" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1sx5llu_di" bpmnElement="SequenceFlow_1sx5llu">
-        <di:waypoint xsi:type="dc:Point" x="129" y="1960" />
-        <di:waypoint xsi:type="dc:Point" x="434" y="1960" />
-        <di:waypoint xsi:type="dc:Point" x="434" y="1960" />
-        <di:waypoint xsi:type="dc:Point" x="738" y="1960" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="448" y="1964" width="19" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_02o4yqx_di" bpmnElement="SequenceFlow_02o4yqx">
-        <di:waypoint xsi:type="dc:Point" x="104" y="1935" />
-        <di:waypoint xsi:type="dc:Point" x="104" y="1851" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="115" y="1888.0011779924323" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_05lo85t_di" bpmnElement="SequenceFlow_05lo85t">
-        <di:waypoint xsi:type="dc:Point" x="129" y="1650" />
-        <di:waypoint xsi:type="dc:Point" x="231" y="1650" />
-        <di:waypoint xsi:type="dc:Point" x="231" y="1555" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="133" y="1654" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0xtr1g5_di" bpmnElement="SequenceFlow_0xtr1g5">
-        <di:waypoint xsi:type="dc:Point" x="104" y="1625" />
-        <di:waypoint xsi:type="dc:Point" x="104" y="1570" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="113" y="1565" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_19mxskt_di" bpmnElement="SequenceFlow_19mxskt">
-        <di:waypoint xsi:type="dc:Point" x="242" y="1544" />
-        <di:waypoint xsi:type="dc:Point" x="317" y="1636" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="281" y="1572" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_0r7telk_di" bpmnElement="callDbCatalog_scriptTask">
-        <dc:Bounds x="184" y="533" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1gacz45_di" bpmnElement="prepareCreateService_scriptTask">
-        <dc:Bounds x="456" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_11b4gmn_di" bpmnElement="setPONR_ScriptTask">
-        <dc:Bounds x="228" y="1115" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_12ilko1_di" bpmnElement="SequenceFlow_12ilko1">
-        <di:waypoint xsi:type="dc:Point" x="120" y="1155" />
-        <di:waypoint xsi:type="dc:Point" x="228" y="1155" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="174" y="1130" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0afe2pg_di" bpmnElement="SequenceFlow_0afe2pg">
-        <di:waypoint xsi:type="dc:Point" x="328" y="1155" />
-        <di:waypoint xsi:type="dc:Point" x="471" y="1155" />
-        <di:waypoint xsi:type="dc:Point" x="514" y="1155" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="400" y="1140" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="CallActivity_1cvt373_di" bpmnElement="DoRollbackVNFandModules_CallActivity">
-        <dc:Bounds x="54" y="1490" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_09xerwk_di" bpmnElement="SequenceFlow_09xerwk">
-        <di:waypoint xsi:type="dc:Point" x="154" y="1530" />
-        <di:waypoint xsi:type="dc:Point" x="206" y="1530" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="180" y="1515" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="CallActivity_0zl1ald_di" bpmnElement="DoRollbackNetwork_CallActivity">
-        <dc:Bounds x="404" y="1490" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_09o09bu_di" bpmnElement="ExclusiveGateway_09o09bu" isMarkerVisible="true">
-        <dc:Bounds x="608" y="1625" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="596" y="1596" width="73" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_0oh7wzu_di" bpmnElement="DoRollbackService_CallActivity">
-        <dc:Bounds x="713" y="1610" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="InclusiveGateway_0foywso_di" bpmnElement="InclusiveGateway_0foywso">
-        <dc:Bounds x="738" y="1935" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="763" y="1990" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1os9x7w_di" bpmnElement="SequenceFlow_1os9x7w">
-        <di:waypoint xsi:type="dc:Point" x="658" y="1650" />
-        <di:waypoint xsi:type="dc:Point" x="713" y="1650" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="678" y="1635" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1f1hd3l_di" bpmnElement="SequenceFlow_1f1hd3l">
-        <di:waypoint xsi:type="dc:Point" x="763" y="1690" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="1743" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="778" y="1716.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0g7scsg_di" bpmnElement="SequenceFlow_0g7scsg">
-        <di:waypoint xsi:type="dc:Point" x="633" y="1675" />
-        <di:waypoint xsi:type="dc:Point" x="633" y="1768" />
-        <di:waypoint xsi:type="dc:Point" x="738" y="1768" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="641" y="1710.0295234297107" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0jg47xm_di" bpmnElement="SequenceFlow_0jg47xm">
-        <di:waypoint xsi:type="dc:Point" x="788" y="1960" />
-        <di:waypoint xsi:type="dc:Point" x="970" y="1960" />
-        <di:waypoint xsi:type="dc:Point" x="970" y="2016" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="879" y="1945" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0807ukc_di" bpmnElement="SequenceFlow_0807ukc">
-        <di:waypoint xsi:type="dc:Point" x="1020" y="2056" />
-        <di:waypoint xsi:type="dc:Point" x="1052" y="2056" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1036" y="2041" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_19yywk8_di" bpmnElement="SequenceFlow_19yywk8">
-        <di:waypoint xsi:type="dc:Point" x="1152" y="2056" />
-        <di:waypoint xsi:type="dc:Point" x="1189" y="2056" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1171" y="2041" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1bwbn7r_di" bpmnElement="SequenceFlow_1bwbn7r">
-        <di:waypoint xsi:type="dc:Point" x="500" y="530" />
-        <di:waypoint xsi:type="dc:Point" x="542" y="529" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="521" y="514.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1n7r495_di" bpmnElement="SequenceFlow_1n7r495">
-        <di:waypoint xsi:type="dc:Point" x="882" y="528" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="528" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="561" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="896" y="513" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1h77psn_di" bpmnElement="SequenceFlow_1h77psn">
-        <di:waypoint xsi:type="dc:Point" x="556" y="806" />
-        <di:waypoint xsi:type="dc:Point" x="586" y="806" />
-        <di:waypoint xsi:type="dc:Point" x="586" y="804" />
-        <di:waypoint xsi:type="dc:Point" x="623" y="804" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="601" y="805" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_1nh09nr_di" bpmnElement="IntermediateCatchEvent_1nh09nr">
-        <dc:Bounds x="83" y="555" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="66" y="591" width="70" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0prlju0_di" bpmnElement="IntermediateThrowEvent_0prlju0">
-        <dc:Bounds x="1065" y="245" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1048" y="286" width="70" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0b9wd4f_di" bpmnElement="ExclusiveGateway_0b9wd4f" isMarkerVisible="true">
-        <dc:Bounds x="332" y="548" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="393" y="580" width="61" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0fe690i_di" bpmnElement="ExclusiveGateway_0fe690i" isMarkerVisible="true">
-        <dc:Bounds x="828" y="503" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="796" y="561" width="82" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0dfkfh1_di" bpmnElement="SequenceFlow_0dfkfh1">
-        <di:waypoint xsi:type="dc:Point" x="853" y="503" />
-        <di:waypoint xsi:type="dc:Point" x="853" y="426" />
-        <di:waypoint xsi:type="dc:Point" x="450" y="426" />
-        <di:waypoint xsi:type="dc:Point" x="450" y="486" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="644" y="411" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0cmebdc_di" bpmnElement="SequenceFlow_0cmebdc">
-        <di:waypoint xsi:type="dc:Point" x="357" y="548" />
-        <di:waypoint xsi:type="dc:Point" x="357" y="528" />
-        <di:waypoint xsi:type="dc:Point" x="400" y="528" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="363" y="538" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1os8cm5_di" bpmnElement="ExclusiveGateway_1os8cm5" isMarkerVisible="true">
-        <dc:Bounds x="898" y="561" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="923" y="616" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1f26zbk_di" bpmnElement="SequenceFlow_1f26zbk">
-        <di:waypoint xsi:type="dc:Point" x="357" y="598" />
-        <di:waypoint xsi:type="dc:Point" x="357" y="665" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="665" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="611" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="633" y="650" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0nreq15_di" bpmnElement="IntermediateThrowEvent_0nreq15">
-        <dc:Bounds x="1033" y="568" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1013" y="609" width="75" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1vwssu7_di" bpmnElement="SequenceFlow_1vwssu7">
-        <di:waypoint xsi:type="dc:Point" x="119" y="573" />
-        <di:waypoint xsi:type="dc:Point" x="184" y="573" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="152" y="548" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_19etqmx_di" bpmnElement="SequenceFlow_19etqmx">
-        <di:waypoint xsi:type="dc:Point" x="284" y="573" />
-        <di:waypoint xsi:type="dc:Point" x="332" y="573" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="308" y="548" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1j7n6qx_di" bpmnElement="SequenceFlow_1j7n6qx">
-        <di:waypoint xsi:type="dc:Point" x="948" y="586" />
-        <di:waypoint xsi:type="dc:Point" x="1033" y="586" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="991" y="561" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_0rlqdvq_di" bpmnElement="IntermediateCatchEvent_0rlqdvq">
-        <dc:Bounds x="83" y="870" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="77" y="906" width="45" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1nlocis_di" bpmnElement="ExclusiveGateway_1nlocis" isMarkerVisible="true">
-        <dc:Bounds x="332" y="863" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="396" y="882" width="62" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_04q1qud_di" bpmnElement="ExclusiveGateway_04q1qud" isMarkerVisible="true">
-        <dc:Bounds x="898" y="847" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="923" y="902" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_10tbv62_di" bpmnElement="SequenceFlow_10tbv62">
-        <di:waypoint xsi:type="dc:Point" x="119" y="888" />
-        <di:waypoint xsi:type="dc:Point" x="332" y="888" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="226" y="863" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0bvecvm_di" bpmnElement="SequenceFlow_0bvecvm">
-        <di:waypoint xsi:type="dc:Point" x="357" y="863" />
-        <di:waypoint xsi:type="dc:Point" x="357" y="805" />
-        <di:waypoint xsi:type="dc:Point" x="456" y="805" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="368" y="838" width="19" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0qi5uxg_di" bpmnElement="SequenceFlow_0qi5uxg">
-        <di:waypoint xsi:type="dc:Point" x="723" y="805" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="805" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="847" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="808" y="752" width="89" height="50" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0w7328u_di" bpmnElement="SequenceFlow_0w7328u">
-        <di:waypoint xsi:type="dc:Point" x="357" y="914" />
-        <di:waypoint xsi:type="dc:Point" x="357" y="937" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="937" />
-        <di:waypoint xsi:type="dc:Point" x="923" y="898" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="603" y="913" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0xowenu_di" bpmnElement="SequenceFlow_0xowenu">
-        <di:waypoint xsi:type="dc:Point" x="948" y="872" />
-        <di:waypoint xsi:type="dc:Point" x="1033" y="872" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="991" y="847" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_04o8gb3_di" bpmnElement="ScriptTask_04o8gb3">
-        <dc:Bounds x="686" y="491" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_12ag2bk_di" bpmnElement="SequenceFlow_12ag2bk">
-        <di:waypoint xsi:type="dc:Point" x="642" y="531" />
-        <di:waypoint xsi:type="dc:Point" x="686" y="531" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="664" y="506" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_04vlq8r_di" bpmnElement="SequenceFlow_04vlq8r">
-        <di:waypoint xsi:type="dc:Point" x="786" y="531" />
-        <di:waypoint xsi:type="dc:Point" x="807" y="531" />
-        <di:waypoint xsi:type="dc:Point" x="807" y="528" />
-        <di:waypoint xsi:type="dc:Point" x="828" y="528" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="822" y="519.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0j6sjye_di" bpmnElement="SequenceFlow_0j6sjye">
-        <di:waypoint xsi:type="dc:Point" x="556" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="610" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="583" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_184teky_di" bpmnElement="ScriptTask_184teky">
-        <dc:Bounds x="546" y="1490" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1c386z9_di" bpmnElement="ExclusiveGateway_1c386z9" isMarkerVisible="true">
-        <dc:Bounds x="685" y="1505" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="758" y="1512" width="53" height="36" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1dmsx0d_di" bpmnElement="SequenceFlow_1dmsx0d">
-        <di:waypoint xsi:type="dc:Point" x="504" y="1530" />
-        <di:waypoint xsi:type="dc:Point" x="546" y="1530" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="525" y="1515" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1otyild_di" bpmnElement="SequenceFlow_1otyild">
-        <di:waypoint xsi:type="dc:Point" x="646" y="1530" />
-        <di:waypoint xsi:type="dc:Point" x="685" y="1530" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="666" y="1515" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0136s37_di" bpmnElement="SequenceFlow_0136s37">
-        <di:waypoint xsi:type="dc:Point" x="710" y="1505" />
-        <di:waypoint xsi:type="dc:Point" x="710" y="1414" />
-        <di:waypoint xsi:type="dc:Point" x="454" y="1414" />
-        <di:waypoint xsi:type="dc:Point" x="454" y="1490" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="574" y="1399" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_12u8ufr_di" bpmnElement="SequenceFlow_12u8ufr">
-        <di:waypoint xsi:type="dc:Point" x="710" y="1555" />
-        <di:waypoint xsi:type="dc:Point" x="710" y="1586" />
-        <di:waypoint xsi:type="dc:Point" x="530" y="1586" />
-        <di:waypoint xsi:type="dc:Point" x="530" y="1625" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="615" y="1571" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1bts0nw_di" bpmnElement="ExclusiveGateway_1bts0nw" isMarkerVisible="true">
-        <dc:Bounds x="303" y="1505" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="289" y="1471" width="81" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0tmepzk_di" bpmnElement="SequenceFlow_0tmepzk">
-        <di:waypoint xsi:type="dc:Point" x="256" y="1530" />
-        <di:waypoint xsi:type="dc:Point" x="303" y="1530" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="271" y="1505" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1fqmrda_di" bpmnElement="SequenceFlow_1fqmrda">
-        <di:waypoint xsi:type="dc:Point" x="353" y="1530" />
-        <di:waypoint xsi:type="dc:Point" x="404" y="1530" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="370" y="1505" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1brxd2r_di" bpmnElement="SequenceFlow_1brxd2r">
-        <di:waypoint xsi:type="dc:Point" x="328" y="1555" />
-        <di:waypoint xsi:type="dc:Point" x="328" y="1625" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="336" y="1580" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ExclusiveGateway_05indeh_di" bpmnElement="ExclusiveGateway_05indeh" isMarkerVisible="true">
-        <dc:Bounds x="505" y="1625" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="430" y="1593" width="85" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_08s0ew2_di" bpmnElement="SequenceFlow_08s0ew2">
-        <di:waypoint xsi:type="dc:Point" x="353" y="1650" />
-        <di:waypoint xsi:type="dc:Point" x="505" y="1650" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="429" y="1625" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1ieiew4_di" bpmnElement="SequenceFlow_1ieiew4">
-        <di:waypoint xsi:type="dc:Point" x="555" y="1650" />
-        <di:waypoint xsi:type="dc:Point" x="608" y="1650" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="573" y="1625" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0sezboq_di" bpmnElement="SequenceFlow_0sezboq">
-        <di:waypoint xsi:type="dc:Point" x="530" y="1675" />
-        <di:waypoint xsi:type="dc:Point" x="530" y="1768" />
-        <di:waypoint xsi:type="dc:Point" x="738" y="1768" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="538" y="1710.0295234297107" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ServiceTask_16yhzej_di" bpmnElement="updateInfraRequest">
-        <dc:Bounds x="921" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_13uceka_di" bpmnElement="SequenceFlow_13uceka">
-        <di:waypoint xsi:type="dc:Point" x="1021" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="1065" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1043" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_1qd3uwb_di" bpmnElement="ScriptTask_1qd3uwb">
-        <dc:Bounds x="772" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1ky2sv9_di" bpmnElement="SequenceFlow_1ky2sv9">
-        <di:waypoint xsi:type="dc:Point" x="710" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="772" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="741" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0vj46ej_di" bpmnElement="SequenceFlow_0vj46ej">
-        <di:waypoint xsi:type="dc:Point" x="872" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="921" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="897" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_17doerz_di" bpmnElement="ScriptTask_17doerz">
-        <dc:Bounds x="54" y="1771" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0zq7i3q_di" bpmnElement="SequenceFlow_0zq7i3q">
-        <di:waypoint xsi:type="dc:Point" x="2" y="2068" />
-        <di:waypoint xsi:type="dc:Point" x="49" y="2068" />
-        <di:waypoint xsi:type="dc:Point" x="49" y="2067" />
-        <di:waypoint xsi:type="dc:Point" x="79" y="2067" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="18" y="2069" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="InclusiveGateway_0m9f5ka_di" bpmnElement="InclusiveGateway_0m9f5ka">
-        <dc:Bounds x="738" y="1743" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="763" y="1798" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0wyub4x_di" bpmnElement="ScriptTask_0wyub4x">
-        <dc:Bounds x="713" y="1827" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0sdb3on_di" bpmnElement="SequenceFlow_0sdb3on">
-        <di:waypoint xsi:type="dc:Point" x="104" y="1771" />
-        <di:waypoint xsi:type="dc:Point" x="104" y="1675" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="119" y="1713" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0f4u373_di" bpmnElement="SequenceFlow_0f4u373">
-        <di:waypoint xsi:type="dc:Point" x="763" y="1793" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="1827" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="778" y="1800" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1rabks0_di" bpmnElement="SequenceFlow_1rabks0">
-        <di:waypoint xsi:type="dc:Point" x="763" y="1907" />
-        <di:waypoint xsi:type="dc:Point" x="763" y="1935" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="778" y="1911" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0hvcwa1_di" bpmnElement="SequenceFlow_0hvcwa1">
-        <di:waypoint xsi:type="dc:Point" x="407" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="456" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="432" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="CallActivity_0w2alah_di" bpmnElement="DecomposeService">
-        <dc:Bounds x="307" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0cdtchu_di" bpmnElement="ScriptTask_0cdtchu">
-        <dc:Bounds x="171" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1eu60rt_di" bpmnElement="SequenceFlow_1eu60rt">
-        <di:waypoint xsi:type="dc:Point" x="132" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="171" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="152" y="238" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_00h6hmd_di" bpmnElement="SequenceFlow_00h6hmd">
-        <di:waypoint xsi:type="dc:Point" x="271" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="307" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="289" y="238" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateNetworkInstance.bpmn
index 52627a5..24a9a6d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateNetworkInstance.bpmn
@@ -116,7 +116,7 @@
         <bpmn2:extensionElements>
           <camunda:connector>
             <camunda:inputOutput>
-              <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+              <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
               <camunda:inputParameter name="payload">${CRENI_createDBRequest}</camunda:inputParameter>
               <camunda:inputParameter name="headers">
                 <camunda:map>
@@ -273,10 +273,10 @@
         <dc:Bounds x="1071" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1akfe0b_di" bpmnElement="ScriptTask_1akfe0b">
-        <dc:Bounds x="189" y="525" width="100" height="80" />
+        <dc:Bounds x="258" y="520" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ServiceTask_0sztuly_di" bpmnElement="ServiceTask_0sztuly">
-        <dc:Bounds x="384" y="525" width="100" height="80" />
+        <dc:Bounds x="453" y="520" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0xxvjxq_di" bpmnElement="SequenceFlow_0xxvjxq">
         <di:waypoint xsi:type="dc:Point" x="1007" y="97" />
@@ -286,52 +286,52 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_1hql91g_di" bpmnElement="ScriptTask_1hql91g">
-        <dc:Bounds x="563" y="525" width="100" height="80" />
+        <dc:Bounds x="632" y="520" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="CallActivity_1ksm1dz_di" bpmnElement="CallActivity_1ksm1dz">
-        <dc:Bounds x="738" y="525" width="100" height="80" />
+        <dc:Bounds x="807" y="520" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="SubProcess_1k2112i_di" bpmnElement="SubProcess_1k2112i" isExpanded="true">
-        <dc:Bounds x="-13" y="353" width="1021" height="404" />
+        <dc:Bounds x="56" y="348" width="1021" height="404" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="StartEvent_110xxgx_di" bpmnElement="StartEvent_110xxgx">
-        <dc:Bounds x="83" y="547" width="36" height="36" />
+        <dc:Bounds x="152" y="542" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="101" y="588" width="0" height="0" />
+          <dc:Bounds x="170" y="583" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_1rqikib_di" bpmnElement="EndEvent_1rqikib">
-        <dc:Bounds x="913" y="547" width="36" height="36" />
+        <dc:Bounds x="982" y="542" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="931" y="588" width="0" height="0" />
+          <dc:Bounds x="1000" y="583" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1s5niqb_di" bpmnElement="SequenceFlow_1s5niqb">
-        <di:waypoint xsi:type="dc:Point" x="289" y="565" />
-        <di:waypoint xsi:type="dc:Point" x="384" y="565" />
+        <di:waypoint xsi:type="dc:Point" x="358" y="560" />
+        <di:waypoint xsi:type="dc:Point" x="453" y="560" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="337" y="550" width="0" height="0" />
+          <dc:Bounds x="406" y="545" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_06s5eu4_di" bpmnElement="SequenceFlow_06s5eu4">
-        <di:waypoint xsi:type="dc:Point" x="484" y="565" />
-        <di:waypoint xsi:type="dc:Point" x="563" y="565" />
+        <di:waypoint xsi:type="dc:Point" x="553" y="560" />
+        <di:waypoint xsi:type="dc:Point" x="632" y="560" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="524" y="550" width="0" height="0" />
+          <dc:Bounds x="593" y="545" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1reso2f_di" bpmnElement="SequenceFlow_1reso2f">
-        <di:waypoint xsi:type="dc:Point" x="663" y="565" />
-        <di:waypoint xsi:type="dc:Point" x="738" y="565" />
+        <di:waypoint xsi:type="dc:Point" x="732" y="560" />
+        <di:waypoint xsi:type="dc:Point" x="807" y="560" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="701" y="550" width="0" height="0" />
+          <dc:Bounds x="770" y="545" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1ghqolv_di" bpmnElement="SequenceFlow_1ghqolv">
-        <di:waypoint xsi:type="dc:Point" x="838" y="565" />
-        <di:waypoint xsi:type="dc:Point" x="913" y="565" />
+        <di:waypoint xsi:type="dc:Point" x="907" y="560" />
+        <di:waypoint xsi:type="dc:Point" x="982" y="560" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="876" y="550" width="0" height="0" />
+          <dc:Bounds x="945" y="545" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_095crcd_di" bpmnElement="SequenceFlow_095crcd">
@@ -342,10 +342,10 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0n4umjf_di" bpmnElement="SequenceFlow_0n4umjf">
-        <di:waypoint xsi:type="dc:Point" x="119" y="565" />
-        <di:waypoint xsi:type="dc:Point" x="189" y="565" />
+        <di:waypoint xsi:type="dc:Point" x="188" y="560" />
+        <di:waypoint xsi:type="dc:Point" x="258" y="560" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="154" y="550" width="0" height="0" />
+          <dc:Bounds x="223" y="545" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0rt8wax_di" bpmnElement="SequenceFlow_0rt8wax">
@@ -370,4 +370,4 @@
       </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleInfra.bpmn
index c58fec9..72c2753 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleInfra.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleInfra.bpmn
@@ -10,10 +10,10 @@
         <camunda:in source="CVFMI_requestId" target="msoRequestId" />
         <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
         <camunda:in source="isVidRequest" target="isVidRequest" />
-        <camunda:in source="CVFMI_disableRollback" target="disableRollback" />
+        <camunda:in source="disableRollback" target="disableRollback" />
         <camunda:out source="DCVFM_vnfId" target="CVFMI_vnfId" />
         <camunda:out source="DCVFM_vfModuleId" target="CVFMI_vfModuleId" />
-        <camunda:out source="RollbackData" target="RollbackData" />
+        <camunda:out source="rollbackData" target="rollbackData" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:out source="WorkflowResponse" target="CVFMI_WorkflowResponse" />
         <camunda:out source="DCVFM_vfModuleName" target="CVFMI_vfModuleName" />
@@ -70,10 +70,11 @@
       <bpmn2:extensionElements>
         <camunda:connector>
           <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
             <camunda:inputParameter name="headers">
               <camunda:map>
                 <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
               </camunda:map>
             </camunda:inputParameter>
             <camunda:inputParameter name="payload">${CVFMI_updateInfraRequest}</camunda:inputParameter>
@@ -123,30 +124,10 @@
       <bpmn2:errorEventDefinition id="_ErrorEventDefinition_2" errorRef="Error_1" />
     </bpmn2:endEvent>
     <bpmn2:subProcess id="ErrorHandler" name="Error Handler" triggeredByEvent="true">
-      <bpmn2:scriptTask id="ValidateRollbackResponse" name="Validate Rollback Response" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_21</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def createVfModule = new CreateVfModuleInfra()
-createVfModule.validateRollbackResponse(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ValidateRollbackResponse" targetRef="InclusiveGateway_1" />
-      <bpmn2:callActivity id="ScriptTask_1" name="Do CreateVfModule Rollback" calledElement="DoCreateVfModuleRollback">
-        <bpmn2:extensionElements>
-          <camunda:in source="RollbackData" target="RollbackData" />
-          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-          <camunda:in source="isVidRequest" target="isVidRequest" />
-          <camunda:out source="MSOWorkflowException" target="RollbackWorkflowException" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_1" targetRef="ValidateRollbackResponse" />
       <bpmn2:startEvent id="StartEvent_2" name="Catch All Errors">
-        <bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
+        <bpmn2:outgoing>SequenceFlow_0wsgnab</bpmn2:outgoing>
         <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />
       </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="StartEvent_2" targetRef="ExclusiveGateway_1" />
       <bpmn2:callActivity id="FalloutHandler" name="Fallout Handler" calledElement="FalloutHandler">
         <bpmn2:extensionElements>
           <camunda:in source="CVFMI_FalloutHandlerRequest" target="FalloutHandlerRequest" />
@@ -163,36 +144,22 @@
         <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_11" />
       </bpmn2:endEvent>
       <bpmn2:scriptTask id="PrepareFalloutHandler" name="Prepare Fallout Handler" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_018p5wf</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def cvfm = new CreateVfModuleInfra()
 cvfm.falloutHandlerPrep(execution, 'CVFMI_FalloutHandlerRequest')]]></bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="PrepareFalloutHandler" targetRef="FalloutHandler" />
-      <bpmn2:inclusiveGateway id="InclusiveGateway_1">
-        <bpmn2:incoming>SequenceFlow_21</bpmn2:incoming>
-        <bpmn2:incoming>isRollbackOnNoSequenceFlow</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
-      </bpmn2:inclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="InclusiveGateway_1" targetRef="PrepareFalloutHandler" />
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="Is Rollback On? " default="isRollbackOnNoSequenceFlow">
-        <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
-        <bpmn2:outgoing>isRollbackOnNoSequenceFlow</bpmn2:outgoing>
-        <bpmn2:outgoing>IsRollbackOnYesSequenceFlow</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="isRollbackOnNoSequenceFlow" name="no" sourceRef="ExclusiveGateway_1" targetRef="InclusiveGateway_1" />
-      <bpmn2:scriptTask id="LogAndSaveOriginalException" name="Log and Save Original Exception" scriptFormat="groovy">
-        <bpmn2:incoming>IsRollbackOnYesSequenceFlow</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
+      <bpmn2:sequenceFlow id="SequenceFlow_0wsgnab" sourceRef="StartEvent_2" targetRef="SendErrorResponse" />
+      <bpmn2:sequenceFlow id="SequenceFlow_018p5wf" sourceRef="SendErrorResponse" targetRef="PrepareFalloutHandler" />
+      <bpmn2:scriptTask id="SendErrorResponse" name="Send Error Response" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_0wsgnab</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_018p5wf</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def cvfm = new CreateVfModuleInfra()
-cvfm.logAndSaveOriginalException(execution)]]></bpmn2:script>
+def createVfModule = new CreateVfModuleInfra()
+createVfModule.sendErrorResponse(execution)]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="IsRollbackOnYesSequenceFlow" name="yes" sourceRef="ExclusiveGateway_1" targetRef="LogAndSaveOriginalException">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CVFMI_rollbackEnabled") == true}]]></bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="LogAndSaveOriginalException" targetRef="ScriptTask_1" />
     </bpmn2:subProcess>
     <bpmn2:scriptTask id="SetSuccessIndicator" name="Set Success Indicator" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
@@ -222,6 +189,24 @@
 createVfModule.preProcessRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="PreProcessRequest" targetRef="SendResponse" />
+    <bpmn2:subProcess id="SubProcess_0pgv3l6" name="Java Exception Handling Sub Process" triggeredByEvent="true">
+      <bpmn2:scriptTask id="ProcessError" name="Process Error" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_1qvgrvq</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_1jqizzo</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
+ExceptionUtil exceptionUtil = new ExceptionUtil()
+exceptionUtil.processJavaException(execution)]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:endEvent id="EndEvent_0100eju">
+        <bpmn2:incoming>SequenceFlow_1jqizzo</bpmn2:incoming>
+      </bpmn2:endEvent>
+      <bpmn2:startEvent id="StartEvent_1mov8he">
+        <bpmn2:outgoing>SequenceFlow_1qvgrvq</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition />
+      </bpmn2:startEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_1qvgrvq" name="" sourceRef="StartEvent_1mov8he" targetRef="ProcessError" />
+      <bpmn2:sequenceFlow id="SequenceFlow_1jqizzo" name="" sourceRef="ProcessError" targetRef="EndEvent_0100eju" />
+    </bpmn2:subProcess>
   </bpmn2:process>
   <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmn2:error id="Error_2" name="REST Fault" errorCode="RESTFault" />
@@ -349,57 +334,57 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_20" bpmnElement="ErrorHandler" isExpanded="true">
-        <dc:Bounds x="48" y="540" width="925" height="385" />
+        <dc:Bounds x="30" y="566" width="925" height="385" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_54" bpmnElement="StartEvent_2">
-        <dc:Bounds x="72" y="844" width="36" height="36" />
+        <dc:Bounds x="139" y="720" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="60" y="886" width="98" height="22" />
+          <dc:Bounds x="137" y="762" width="77" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_222" bpmnElement="PrepareFalloutHandler">
-        <dc:Bounds x="564" y="672" width="100" height="80" />
+        <dc:Bounds x="497" y="698" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_223" bpmnElement="FalloutHandler">
-        <dc:Bounds x="708" y="672" width="100" height="80" />
+        <dc:Bounds x="690" y="698" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_179" bpmnElement="EndEvent_3">
-        <dc:Bounds x="864" y="694" width="36" height="36" />
+        <dc:Bounds x="846" y="720" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="882" y="735" width="0" height="0" />
+          <dc:Bounds x="864" y="761" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_44" bpmnElement="BoundaryEvent_1">
-        <dc:Bounds x="955" y="690" width="36" height="36" />
+        <dc:Bounds x="937" y="716" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="970" y="731" width="6" height="6" />
+          <dc:Bounds x="955" y="757" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_180" bpmnElement="EndEvent_4">
-        <dc:Bounds x="1049" y="690" width="36" height="36" />
+        <dc:Bounds x="1066" y="716" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1067" y="731" width="0" height="0" />
+          <dc:Bounds x="1084" y="757" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ScriptTask_222" targetElement="_BPMNShape_ScriptTask_223">
-        <di:waypoint xsi:type="dc:Point" x="664" y="712" />
-        <di:waypoint xsi:type="dc:Point" x="708" y="712" />
+        <di:waypoint xsi:type="dc:Point" x="597" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="690" y="738" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="689" y="712" width="6" height="6" />
+          <dc:Bounds x="644" y="723" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_ScriptTask_223" targetElement="_BPMNShape_EndEvent_179">
-        <di:waypoint xsi:type="dc:Point" x="808" y="712" />
-        <di:waypoint xsi:type="dc:Point" x="864" y="712" />
+        <di:waypoint xsi:type="dc:Point" x="790" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="846" y="738" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="836" y="712" width="6" height="6" />
+          <dc:Bounds x="821" y="738" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_BoundaryEvent_44" targetElement="_BPMNShape_EndEvent_180">
-        <di:waypoint xsi:type="dc:Point" x="991" y="708" />
-        <di:waypoint xsi:type="dc:Point" x="1049" y="708" />
+        <di:waypoint xsi:type="dc:Point" x="973" y="734" />
+        <di:waypoint xsi:type="dc:Point" x="1066" y="734" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1015" y="708" width="6" height="6" />
+          <dc:Bounds x="1020" y="719" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_241" bpmnElement="SetSuccessIndicator">
@@ -413,80 +398,57 @@
         <di:waypoint xsi:type="dc:Point" x="960" y="367" />
         <di:waypoint xsi:type="dc:Point" x="1020" y="367" />
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_223" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
-        <dc:Bounds x="205" y="836" width="50" height="50" />
+      <bpmndi:BPMNShape id="SubProcess_0pgv3l6_di" bpmnElement="SubProcess_0pgv3l6" isExpanded="true">
+        <dc:Bounds x="160" y="1001" width="313" height="169" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_13ekvux_di" bpmnElement="ProcessError">
+        <dc:Bounds x="268" y="1047" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0100eju_di" bpmnElement="EndEvent_0100eju">
+        <dc:Bounds x="413" y="1069" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="193" y="901" width="102" height="22" />
+          <dc:Bounds x="431" y="1110" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_266" bpmnElement="ValidateRollbackResponse">
-        <dc:Bounds x="312" y="554" width="103" height="79" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_InclusiveGateway_25" bpmnElement="InclusiveGateway_1">
-        <dc:Bounds x="459" y="686" width="50" height="50" />
+      <bpmndi:BPMNShape id="StartEvent_1mov8he_di" bpmnElement="StartEvent_1mov8he">
+        <dc:Bounds x="185" y="1069" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="484" y="741" width="0" height="0" />
+          <dc:Bounds x="203" y="1110" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_StartEvent_54" targetElement="_BPMNShape_ExclusiveGateway_223">
-        <di:waypoint xsi:type="dc:Point" x="108" y="862" />
-        <di:waypoint xsi:type="dc:Point" x="156" y="862" />
-        <di:waypoint xsi:type="dc:Point" x="156" y="861" />
-        <di:waypoint xsi:type="dc:Point" x="205" y="861" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1qvgrvq_di" bpmnElement="SequenceFlow_1qvgrvq">
+        <di:waypoint xsi:type="dc:Point" x="221" y="1087" />
+        <di:waypoint xsi:type="dc:Point" x="268" y="1087" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="153" y="862" width="6" height="6" />
+          <dc:Bounds x="242" y="1087" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="isRollbackOnNoSequenceFlow" sourceElement="_BPMNShape_ExclusiveGateway_223" targetElement="_BPMNShape_InclusiveGateway_25">
-        <di:waypoint xsi:type="dc:Point" x="255" y="861" />
-        <di:waypoint xsi:type="dc:Point" x="354" y="861" />
-        <di:waypoint xsi:type="dc:Point" x="354" y="711" />
-        <di:waypoint xsi:type="dc:Point" x="459" y="711" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1jqizzo_di" bpmnElement="SequenceFlow_1jqizzo">
+        <di:waypoint xsi:type="dc:Point" x="368" y="1087" />
+        <di:waypoint xsi:type="dc:Point" x="413" y="1087" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="324" y="866" width="20" height="22" />
+          <dc:Bounds x="388" y="1087" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_21" sourceElement="_BPMNShape_ScriptTask_266" targetElement="_BPMNShape_InclusiveGateway_25">
-        <di:waypoint xsi:type="dc:Point" x="414" y="593" />
-        <di:waypoint xsi:type="dc:Point" x="484" y="593" />
-        <di:waypoint xsi:type="dc:Point" x="484" y="686" />
+      <bpmndi:BPMNEdge id="SequenceFlow_0wsgnab_di" bpmnElement="SequenceFlow_0wsgnab">
+        <di:waypoint xsi:type="dc:Point" x="175" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="235" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="235" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="296" y="738" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="462" y="593" width="6" height="6" />
+          <dc:Bounds x="250" y="738" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_24" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_InclusiveGateway_25" targetElement="_BPMNShape_ScriptTask_222">
-        <di:waypoint xsi:type="dc:Point" x="509" y="711" />
-        <di:waypoint xsi:type="dc:Point" x="527" y="711" />
-        <di:waypoint xsi:type="dc:Point" x="527" y="712" />
-        <di:waypoint xsi:type="dc:Point" x="564" y="712" />
+      <bpmndi:BPMNEdge id="SequenceFlow_018p5wf_di" bpmnElement="SequenceFlow_018p5wf">
+        <di:waypoint xsi:type="dc:Point" x="396" y="738" />
+        <di:waypoint xsi:type="dc:Point" x="497" y="738" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="533" y="712" width="6" height="6" />
+          <dc:Bounds x="447" y="723" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_267" bpmnElement="ScriptTask_1">
-        <dc:Bounds x="179" y="554" width="103" height="79" />
+      <bpmndi:BPMNShape id="ScriptTask_036ipyg_di" bpmnElement="SendErrorResponse">
+        <dc:Bounds x="296" y="698" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_267" targetElement="_BPMNShape_ScriptTask_266">
-        <di:waypoint xsi:type="dc:Point" x="281" y="593" />
-        <di:waypoint xsi:type="dc:Point" x="312" y="593" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="294" y="593" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_283" bpmnElement="LogAndSaveOriginalException">
-        <dc:Bounds x="179" y="693" width="103" height="79" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="IsRollbackOnYesSequenceFlow" sourceElement="_BPMNShape_ExclusiveGateway_223" targetElement="_BPMNShape_ScriptTask_283">
-        <di:waypoint xsi:type="dc:Point" x="230" y="836" />
-        <di:waypoint xsi:type="dc:Point" x="230" y="771" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="240" y="804" width="27" height="22" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_25" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_ScriptTask_283" targetElement="_BPMNShape_ScriptTask_267">
-        <di:waypoint xsi:type="dc:Point" x="230" y="693" />
-        <di:waypoint xsi:type="dc:Point" x="230" y="632" />
-      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleVolumeInfraV1.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleVolumeInfraV1.bpmn
index 0fc889b..ec4afa4 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleVolumeInfraV1.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVfModuleVolumeInfraV1.bpmn
@@ -1,61 +1,107 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_CyftwG_HEeaKe-v4u9MasA" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_CyftwG_HEeaKe-v4u9MasA" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="CreateVfModuleVolumeInfraV1" name="CreateVfModuleVolumeInfraV1" isExecutable="true">
     <bpmn2:startEvent id="StartEvent_createVfModuleVolumeInfraV1">
       <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
     </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_createVfModuleVolumeInfraV1" targetRef="ScriptTask_preProcessRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_createVfModuleVolumeInfraV1" targetRef="ScriptTask_preProcessRequest" />
     <bpmn2:subProcess id="SubProcess_exceptionHandler" name="Exception Handler" triggeredByEvent="true">
       <bpmn2:startEvent id="StartEvent_catchErrors" name="Catch Exceptions">
-        <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_2"/>
+        <bpmn2:outgoing>SequenceFlow_1tfi3sp</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" />
       </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="StartEvent_catchErrors" targetRef="ExclusiveGateway_isSyncResponseSent"/>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_isSyncResponseSent" name="Sync response sent?" default="SequenceFlow_syncResponseNotSent">
-        <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_syncResponseSent</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_syncResponseNotSent</bpmn2:outgoing>
+      <bpmn2:exclusiveGateway id="ExclusiveGateway_isSyncResponseSent" name="Sync response sent?" default="SequenceFlow_0x34g02">
+        <bpmn2:incoming>SequenceFlow_1tfi3sp</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_0x34g02</bpmn2:outgoing>
+        <bpmn2:outgoing>SequenceFlow_1q9kksk</bpmn2:outgoing>
       </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_syncResponseSent" name="Yes" sourceRef="ExclusiveGateway_isSyncResponseSent" targetRef="ScriptTask_prefalloutHandlerRequest">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{CVMVINFRAV1_syncResponseSent == true}</bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
       <bpmn2:scriptTask id="ScriptTask_sendSyncErrorResp" name="Send sync error response" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_syncResponseNotSent</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_0x34g02</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('sendSyncError', execution, isDebugLogEnabled)]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_syncResponseNotSent" name="No" sourceRef="ExclusiveGateway_isSyncResponseSent" targetRef="ScriptTask_sendSyncErrorResp"/>
-      <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_sendSyncErrorResp" targetRef="ScriptTask_prefalloutHandlerRequest"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_sendSyncErrorResp" targetRef="ExclusiveGateway_0of872x" />
       <bpmn2:scriptTask id="ScriptTask_prefalloutHandlerRequest" name="Prepare Fallout Handler Request" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_syncResponseSent</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_1v1jx7y</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_18</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('prepareFalloutHandlerRequest', execution, isDebugLogEnabled)
 ]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_18" name="" sourceRef="ScriptTask_prefalloutHandlerRequest" targetRef="CallActivity_callFalloutHandler"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_18" name="" sourceRef="ScriptTask_prefalloutHandlerRequest" targetRef="CallActivity_callFalloutHandler" />
       <bpmn2:callActivity id="CallActivity_callFalloutHandler" name="Call Fallout Handler" calledElement="FalloutHandler">
         <bpmn2:extensionElements>
-          <camunda:in source="CVMVINFRAV1_FalloutHandlerRequest" target="FalloutHandlerRequest"/>
-          <camunda:in source="mso-request-id" target="mso-request-id"/>
-          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode"/>
-          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse"/>
-          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse"/>
-          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
+          <camunda:in source="CVMVINFRAV1_FalloutHandlerRequest" target="FalloutHandlerRequest" />
+          <camunda:in source="mso-request-id" target="mso-request-id" />
+          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode" />
+          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" />
+          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" />
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
         </bpmn2:extensionElements>
         <bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
       </bpmn2:callActivity>
-      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_callFalloutHandler" targetRef="EndEvent_4"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_callFalloutHandler" targetRef="EndEvent_4" />
       <bpmn2:endEvent id="EndEvent_4" name="End">
         <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
-        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2"/>
+        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2" />
       </bpmn2:endEvent>
+      <bpmn2:exclusiveGateway id="ExclusiveGateway_09n39bk" name="Is rollback on?" default="SequenceFlow_1cu5t8k">
+        <bpmn2:incoming>SequenceFlow_1q9kksk</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_1cu5t8k</bpmn2:outgoing>
+        <bpmn2:outgoing>SequenceFlow_1tfh1vm</bpmn2:outgoing>
+      </bpmn2:exclusiveGateway>
+      <bpmn2:scriptTask id="Task_0nc3wxy" name="Log and save original exception" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_1tfh1vm</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_0b1nrfk</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
+createVfModuleVolumeInfraV1.executeMethod('logAndSaveOriginalException', execution, isDebugLogEnabled)]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:callActivity id="Task_1b9yx6k" name="DoCreateVfModuleVolumeRollback" calledElement="DoCreateVfModuleVolumeRollback">
+        <bpmn2:extensionElements>
+          <camunda:in source="requestId" target="mso-request-id" />
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+          <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+          <camunda:in source="rollbackData" target="rollbackData" />
+          <camunda:in source="workflowException" target="workflowException" />
+          <camunda:out source="wasDeleted" target="wasDeleted" />
+          <camunda:in source="rolledBack" target="rolledBack" />
+          <camunda:in source="workflowException" target="workflowException" />
+        </bpmn2:extensionElements>
+        <bpmn2:incoming>SequenceFlow_0b1nrfk</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_08vm13o</bpmn2:outgoing>
+      </bpmn2:callActivity>
+      <bpmn2:scriptTask id="Task_1lkduwj" name="Validate Rollback Response" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_08vm13o</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_097zy8w</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
+createVfModuleVolumeInfraV1.executeMethod('validateRollbackResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:inclusiveGateway id="ExclusiveGateway_0of872x">
+        <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_1cu5t8k</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_097zy8w</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_1v1jx7y</bpmn2:outgoing>
+      </bpmn2:inclusiveGateway>
+      <bpmn2:sequenceFlow id="SequenceFlow_1tfi3sp" sourceRef="StartEvent_catchErrors" targetRef="ExclusiveGateway_isSyncResponseSent" />
+      <bpmn2:sequenceFlow id="SequenceFlow_0x34g02" name="No" sourceRef="ExclusiveGateway_isSyncResponseSent" targetRef="ScriptTask_sendSyncErrorResp" />
+      <bpmn2:sequenceFlow id="SequenceFlow_1q9kksk" name="Yes" sourceRef="ExclusiveGateway_isSyncResponseSent" targetRef="ExclusiveGateway_09n39bk">
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CVMVINFRAV1_syncResponseSent") == true}]]></bpmn2:conditionExpression>
+      </bpmn2:sequenceFlow>
+      <bpmn2:sequenceFlow id="SequenceFlow_1cu5t8k" name="No" sourceRef="ExclusiveGateway_09n39bk" targetRef="ExclusiveGateway_0of872x" />
+      <bpmn2:sequenceFlow id="SequenceFlow_1tfh1vm" name="Yes" sourceRef="ExclusiveGateway_09n39bk" targetRef="Task_0nc3wxy">
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CVMVINFRAV1_backoutOnFailure") == true}]]></bpmn2:conditionExpression>
+      </bpmn2:sequenceFlow>
+      <bpmn2:sequenceFlow id="SequenceFlow_0b1nrfk" sourceRef="Task_0nc3wxy" targetRef="Task_1b9yx6k" />
+      <bpmn2:sequenceFlow id="SequenceFlow_08vm13o" sourceRef="Task_1b9yx6k" targetRef="Task_1lkduwj" />
+      <bpmn2:sequenceFlow id="SequenceFlow_097zy8w" sourceRef="Task_1lkduwj" targetRef="ExclusiveGateway_0of872x" />
+      <bpmn2:sequenceFlow id="SequenceFlow_1v1jx7y" sourceRef="ExclusiveGateway_0of872x" targetRef="ScriptTask_prefalloutHandlerRequest" />
     </bpmn2:subProcess>
     <bpmn2:scriptTask id="ScriptTask_preProcessRequest" name="Preprocess Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
@@ -64,7 +110,7 @@
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('preProcessRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_preProcessRequest" targetRef="ScriptTask_sendSyncAckResponse"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_preProcessRequest" targetRef="ScriptTask_sendSyncAckResponse" />
     <bpmn2:scriptTask id="ScriptTask_sendSyncAckResponse" name="Send Sync Ack Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
@@ -72,16 +118,16 @@
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('sendSyncResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_sendSyncAckResponse" targetRef="ExclusiveGateway_isVolGrpnamePresent"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_sendSyncAckResponse" targetRef="ExclusiveGateway_isVolGrpnamePresent" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_isVolGrpnamePresent" name="Is volume group name present?" default="SequenceFlow_volGrpNameMissing">
       <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_volGrpNamePresent</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_volGrpNameMissing</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_volGrpNamePresent" name="" sourceRef="ExclusiveGateway_isVolGrpnamePresent" targetRef="CallActivity_callGenericGetSI">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{CVMVINFRAV1_volumeGroupName != null  && CVMVINFRAV1_volumeGroupName != "" }]]></bpmn2:conditionExpression>
+    <bpmn2:sequenceFlow id="SequenceFlow_volGrpNamePresent" name="" sourceRef="ExclusiveGateway_isVolGrpnamePresent" targetRef="CallActivity_doCreateVfModuleVolumeV2">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{volumeGroupName != null  && volumeGroupName != "" }]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_volGrpNameMissing" name="" sourceRef="ExclusiveGateway_isVolGrpnamePresent" targetRef="ScriptTask_buildError"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_volGrpNameMissing" name="" sourceRef="ExclusiveGateway_isVolGrpnamePresent" targetRef="ScriptTask_buildError" />
     <bpmn2:scriptTask id="ScriptTask_buildError" name="Build Error" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_volGrpNameMissing</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
@@ -89,40 +135,38 @@
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('buildWorkflowException', execution, 2500, "Volume group name not present in request.", isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_buildError" targetRef="EndEvent_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_buildError" targetRef="EndEvent_2" />
     <bpmn2:endEvent id="EndEvent_2">
       <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" errorRef="Error_1" />
     </bpmn2:endEvent>
-    <bpmn2:callActivity id="CallActivity_callGenericGetSI" name="Call Generic Get Service Instance" calledElement="GenericGetService">
+    <bpmn2:callActivity id="CallActivity_doCreateVfModuleVolumeV2" name="Call DoCreateVfModuleVolumeV2" calledElement="DoCreateVfModuleVolumeV2">
       <bpmn2:extensionElements>
-        <camunda:in source="CVMVINFRAV1_serviceInstanceId" target="GENGS_serviceInstanceId"/>
-        <camunda:out source="GENGS_FoundIndicator" target="GENGSI_FoundIndicator"/>
-        <camunda:out source="GENGS_SuccessIndicator" target="GENGSI_SuccessIndicator"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:in source="CVMVINFRAV1_serviceType" target="GENGS_type"/>
+        <camunda:out source="DCVFMODVOLV1_SuccessIndicator" target="DCVFMODVOLV1_SuccessIndicator" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="requestId" target="msoRequestId" />
+        <camunda:in source="disableRollback" target="disableRollback" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="failIfExists" target="failIfExists" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="vnfId" target="vnfId" />
+        <camunda:in source="volumeGroupId" target="volumeGroupId" />
+        <camunda:in source="vnfName" target="vnfName" />
+        <camunda:in source="volumeGroupName" target="volumeGroupName" />
+        <camunda:in source="vfModuleModelInfo" target="vfModuleModelInfo" />
+        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
+        <camunda:in source="tenantId" target="tenantId" />
+        <camunda:in source="vnfType" target="vnfType" />
+        <camunda:in source="asdcServiceModelVersion" target="asdcServiceModelVersion" />
+        <camunda:in source="test-volume-group-name" target="test-volume-group-name" />
+        <camunda:in source="test-volume-group-id" target="test-volume-group-id" />
+        <camunda:out source="rollbackData" target="rollbackData" />
+        <camunda:in source="requestId" target="mso-request-id" />
+        <camunda:in source="vfModuleInputParams" target="vfModuleInputParams" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_volGrpNamePresent</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0djjra2</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:callActivity id="CallActivity_doCreateVfModuleVolumeV1" name="Call DoCreateVfModuleVolumeV1" calledElement="DoCreateVfModuleVolumeV1">
-      <bpmn2:extensionElements>
-        <camunda:in source="CVMVINFRAV1_Request" target="DoCreateVfModuleVolumeV1Request"/>
-        <camunda:in source="CVMVINFRAV1_vnfId" target="vnf-id"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="CVMVINFRAV1_volumeGroupId" target="volume-group-id"/>
-        <camunda:out source="DCVFMODVOLV1_SuccessIndicator" target="DCVFMODVOLV1_SuccessIndicator"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:in source="CVMVINFRAV1_isVidRequest" target="is-vid-request"/>
-        <camunda:in source="test-volume-group-name" target="test-volume-group-name"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:in source="WorkflowException" target="WorkflowException"/>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_serviceInstanceFound</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="CallActivity_doCreateVfModuleVolumeV1" targetRef="ScriptTask_prepareDbInfraRequest"/>
     <bpmn2:scriptTask id="ScriptTask_setSuccessIndicator" name="Set Success Indicator" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
@@ -130,20 +174,20 @@
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('setSuccessIndicator', execution, true)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_setSuccessIndicator" targetRef="EndEvent_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_setSuccessIndicator" targetRef="EndEvent_3" />
     <bpmn2:callActivity id="CallActivity_completeMsoProcess" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
       <bpmn2:extensionElements>
-        <camunda:in source="CVMVINFRAV1_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode"/>
-        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse"/>
-        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse"/>
+        <camunda:in source="CVMVINFRAV1_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode" />
+        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" />
+        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="CallActivity_completeMsoProcess" targetRef="ScriptTask_setSuccessIndicator"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="CallActivity_completeMsoProcess" targetRef="ScriptTask_setSuccessIndicator" />
     <bpmn2:scriptTask id="ScriptTask_postCompletionRequest" name="Post Completion Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
@@ -151,330 +195,320 @@
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('postProcessResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_postCompletionRequest" targetRef="CallActivity_completeMsoProcess"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_postCompletionRequest" targetRef="CallActivity_completeMsoProcess" />
     <bpmn2:serviceTask id="ServiceTask_callDbInfraUpdate" name="Call DB Infra Update">
       <bpmn2:extensionElements>
         <camunda:connector>
-          <camunda:connectorId>http-connector</camunda:connectorId>
           <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
             <camunda:inputParameter name="payload">${CVMVINFRAV1_createDBRequest}</camunda:inputParameter>
             <camunda:inputParameter name="headers">
               <camunda:map>
                 <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
               </camunda:map>
             </camunda:inputParameter>
             <camunda:inputParameter name="method">POST</camunda:inputParameter>
             <camunda:outputParameter name="CVMVINFRAV1_createDBResponse">${response}</camunda:outputParameter>
             <camunda:outputParameter name="CVMVINFRAV1_dbReturnCode">${statusCode}</camunda:outputParameter>
           </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
         </camunda:connector>
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
     </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ServiceTask_callDbInfraUpdate" targetRef="ScriptTask_postCompletionRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ServiceTask_callDbInfraUpdate" targetRef="ScriptTask_postCompletionRequest" />
     <bpmn2:endEvent id="EndEvent_3">
       <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1"/>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
     </bpmn2:endEvent>
     <bpmn2:scriptTask id="ScriptTask_prepareDbInfraRequest" name="Prepare DB Infra Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0djjra2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
       <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 createVfModuleVolumeInfraV1.executeMethod('prepareDbInfraSuccessRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_prepareDbInfraRequest" targetRef="ServiceTask_callDbInfraUpdate"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="Is service instance found?" default="SequenceFlow_serviceInstanceNotFound">
-      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_serviceInstanceFound</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_serviceInstanceNotFound</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="CallActivity_callGenericGetSI" targetRef="ExclusiveGateway_1"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_serviceInstanceFound" name="Yes" sourceRef="ExclusiveGateway_1" targetRef="CallActivity_doCreateVfModuleVolumeV1">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{GENGSI_SuccessIndicator == true && GENGSI_FoundIndicator == true}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_serviceInstanceNotFound" name="No" sourceRef="ExclusiveGateway_1" targetRef="ScriptTask_buildServiceInstanceNotFoundError"/>
-    <bpmn2:endEvent id="EndEvent_serviceInstanceNotFound">
-      <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_3" errorRef="Error_1"/>
-    </bpmn2:endEvent>
-    <bpmn2:scriptTask id="ScriptTask_buildServiceInstanceNotFoundError" name="Build Service Instance Not Found Error" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_serviceInstanceNotFound</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
-createVfModuleVolumeInfraV1.executeMethod('buildWorkflowException', execution, 2500, "Service instance id not found in AAI: $CVMVINFRAV1_serviceInstanceId.", isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_16" name="" sourceRef="ScriptTask_buildServiceInstanceNotFoundError" targetRef="EndEvent_serviceInstanceNotFound"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_prepareDbInfraRequest" targetRef="ServiceTask_callDbInfraUpdate" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0djjra2" sourceRef="CallActivity_doCreateVfModuleVolumeV2" targetRef="ScriptTask_prepareDbInfraRequest" />
   </bpmn2:process>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateVfModuleVolumeInfraV1">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_67" bpmnElement="StartEvent_createVfModuleVolumeInfraV1">
-        <dc:Bounds height="36.0" width="36.0" x="144.0" y="156.0"/>
+        <dc:Bounds x="201" y="156" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="162.0" y="197.0"/>
+          <dc:Bounds x="219" y="197" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_67" targetElement="_BPMNShape_ScriptTask_300">
-        <di:waypoint xsi:type="dc:Point" x="180.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="252.0" y="174.0"/>
+        <di:waypoint xsi:type="dc:Point" x="237" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="271" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="219.0" y="174.0"/>
+          <dc:Bounds x="254" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_300" bpmnElement="ScriptTask_preProcessRequest">
-        <dc:Bounds height="80.0" width="100.0" x="252.0" y="134.0"/>
+        <dc:Bounds x="271" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_301" bpmnElement="ScriptTask_sendSyncAckResponse">
-        <dc:Bounds height="80.0" width="100.0" x="408.0" y="134.0"/>
+        <dc:Bounds x="404" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_249" bpmnElement="ExclusiveGateway_isVolGrpnamePresent" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="589.0" y="148.0"/>
+        <dc:Bounds x="556" y="149" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="186.0" x="521.0" y="203.0"/>
+          <dc:Bounds x="540" y="204" width="81" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_302" bpmnElement="ScriptTask_buildError">
-        <dc:Bounds height="80.0" width="100.0" x="565.0" y="264.0"/>
+        <dc:Bounds x="531" y="253" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_36" bpmnElement="CallActivity_doCreateVfModuleVolumeV1">
-        <dc:Bounds height="80.0" width="100.0" x="996.0" y="134.0"/>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_36" bpmnElement="CallActivity_doCreateVfModuleVolumeV2">
+        <dc:Bounds x="705" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_volGrpNamePresent" sourceElement="_BPMNShape_ExclusiveGateway_249" targetElement="_BPMNShape_CallActivity_51">
-        <di:waypoint xsi:type="dc:Point" x="639.0" y="173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="685.0" y="173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="685.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="720.0" y="174.0"/>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_volGrpNamePresent" sourceElement="_BPMNShape_ExclusiveGateway_249">
+        <di:waypoint xsi:type="dc:Point" x="606" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="705" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="680.0" y="173.0"/>
+          <dc:Bounds x="656" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_301" targetElement="_BPMNShape_ExclusiveGateway_249">
-        <di:waypoint xsi:type="dc:Point" x="508.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="589.0" y="173.0"/>
+        <di:waypoint xsi:type="dc:Point" x="504" y="175" />
+        <di:waypoint xsi:type="dc:Point" x="556" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="547.0" y="173.0"/>
+          <dc:Bounds x="530" y="159.5" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ScriptTask_300" targetElement="_BPMNShape_ScriptTask_301">
-        <di:waypoint xsi:type="dc:Point" x="352.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="408.0" y="174.0"/>
+        <di:waypoint xsi:type="dc:Point" x="371" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="404" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="371.0" y="174.0"/>
+          <dc:Bounds x="388" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_volGrpNameMissing" sourceElement="_BPMNShape_ExclusiveGateway_249" targetElement="_BPMNShape_ScriptTask_302">
-        <di:waypoint xsi:type="dc:Point" x="614.0" y="198.0"/>
-        <di:waypoint xsi:type="dc:Point" x="615.0" y="264.0"/>
+        <di:waypoint xsi:type="dc:Point" x="581" y="199" />
+        <di:waypoint xsi:type="dc:Point" x="582" y="253" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="612.0" y="234.0"/>
+          <dc:Bounds x="582" y="211" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_233" bpmnElement="EndEvent_2">
-        <dc:Bounds height="36.0" width="36.0" x="598.0" y="389.0"/>
+        <dc:Bounds x="563" y="379" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="616.0" y="430.0"/>
+          <dc:Bounds x="581" y="420" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_302" targetElement="_BPMNShape_EndEvent_233">
-        <di:waypoint xsi:type="dc:Point" x="615.0" y="344.0"/>
-        <di:waypoint xsi:type="dc:Point" x="616.0" y="389.0"/>
+        <di:waypoint xsi:type="dc:Point" x="580" y="333" />
+        <di:waypoint xsi:type="dc:Point" x="581" y="379" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="613.0" y="370.0"/>
+          <dc:Bounds x="581" y="341" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_234" bpmnElement="EndEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="1898.0" y="156.0"/>
+        <dc:Bounds x="1456" y="156" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="1916.0" y="197.0"/>
+          <dc:Bounds x="1474" y="197" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_22" bpmnElement="SubProcess_exceptionHandler" isExpanded="true">
-        <dc:Bounds height="337.0" width="856.0" x="133.0" y="471.0"/>
+        <dc:Bounds x="213" y="461" width="895" height="549" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_68" bpmnElement="StartEvent_catchErrors">
-        <dc:Bounds height="36.0" width="36.0" x="204.0" y="555.0"/>
+        <dc:Bounds x="263" y="771" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="109.0" x="168.0" y="596.0"/>
+          <dc:Bounds x="239" y="812" width="86" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_235" bpmnElement="EndEvent_4">
-        <dc:Bounds height="36.0" width="36.0" x="876.0" y="555.0"/>
+        <dc:Bounds x="989" y="771" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="924.0" y="562.0"/>
+          <dc:Bounds x="1042" y="778" width="19" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_304" bpmnElement="ScriptTask_prepareDbInfraRequest">
-        <dc:Bounds height="80.0" width="100.0" x="1160.0" y="134.0"/>
+        <dc:Bounds x="835" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_103" bpmnElement="ServiceTask_callDbInfraUpdate">
-        <dc:Bounds height="80.0" width="100.0" x="1298.0" y="135.0"/>
+        <dc:Bounds x="963" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_305" bpmnElement="ScriptTask_postCompletionRequest">
-        <dc:Bounds height="80.0" width="100.0" x="1442.0" y="136.0"/>
+        <dc:Bounds x="1086" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_37" bpmnElement="CallActivity_completeMsoProcess">
-        <dc:Bounds height="80.0" width="100.0" x="1598.0" y="135.0"/>
+        <dc:Bounds x="1211" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_CallActivity_36" targetElement="_BPMNShape_ScriptTask_304">
-        <di:waypoint xsi:type="dc:Point" x="1096.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1160.0" y="174.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1115.0" y="174.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_304" targetElement="_BPMNShape_ServiceTask_103">
-        <di:waypoint xsi:type="dc:Point" x="1260.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1298.0" y="175.0"/>
+        <di:waypoint xsi:type="dc:Point" x="935" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="963" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1374.0" y="175.0"/>
+          <dc:Bounds x="949" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ServiceTask_103" targetElement="_BPMNShape_ScriptTask_305">
-        <di:waypoint xsi:type="dc:Point" x="1398.0" y="175.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1442.0" y="176.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1063" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="1086" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1417.0" y="176.0"/>
+          <dc:Bounds x="1075" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_ScriptTask_305" targetElement="_BPMNShape_CallActivity_37">
-        <di:waypoint xsi:type="dc:Point" x="1542.0" y="176.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1598.0" y="175.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1186" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="1211" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1653.0" y="176.0"/>
+          <dc:Bounds x="1199" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_306" bpmnElement="ScriptTask_setSuccessIndicator">
-        <dc:Bounds height="80.0" width="100.0" x="1742.0" y="134.0"/>
+        <dc:Bounds x="1337" y="134" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_CallActivity_37" targetElement="_BPMNShape_ScriptTask_306">
-        <di:waypoint xsi:type="dc:Point" x="1698.0" y="175.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1742.0" y="174.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1311" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="1337" y="174" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1767.0" y="174.0"/>
+          <dc:Bounds x="1324" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_ScriptTask_306" targetElement="_BPMNShape_EndEvent_234">
-        <di:waypoint xsi:type="dc:Point" x="1842.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1866.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1866.0" y="175.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1898.0" y="174.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1437" y="173" />
+        <di:waypoint xsi:type="dc:Point" x="1456" y="173" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1963.0" y="175.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_StartEvent_68" targetElement="_BPMNShape_ExclusiveGateway_251">
-        <di:waypoint xsi:type="dc:Point" x="240.0" y="573.0"/>
-        <di:waypoint xsi:type="dc:Point" x="286.0" y="573.0"/>
-        <di:waypoint xsi:type="dc:Point" x="286.0" y="572.0"/>
-        <di:waypoint xsi:type="dc:Point" x="348.0" y="572.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="286.0" y="572.0"/>
+          <dc:Bounds x="1447" y="158" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_307" bpmnElement="ScriptTask_prefalloutHandlerRequest">
-        <dc:Bounds height="80.0" width="100.0" x="576.0" y="533.0"/>
+        <dc:Bounds x="725" y="749" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_50" bpmnElement="CallActivity_callFalloutHandler">
-        <dc:Bounds height="80.0" width="100.0" x="720.0" y="533.0"/>
+        <dc:Bounds x="858" y="749" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_18" sourceElement="_BPMNShape_ScriptTask_307" targetElement="_BPMNShape_CallActivity_50">
-        <di:waypoint xsi:type="dc:Point" x="676.0" y="573.0"/>
-        <di:waypoint xsi:type="dc:Point" x="720.0" y="573.0"/>
+        <di:waypoint xsi:type="dc:Point" x="825" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="858" y="789" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="694.0" y="573.0"/>
+          <dc:Bounds x="842" y="774" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_50" targetElement="_BPMNShape_EndEvent_235">
-        <di:waypoint xsi:type="dc:Point" x="820.0" y="573.0"/>
-        <di:waypoint xsi:type="dc:Point" x="876.0" y="573.0"/>
+        <di:waypoint xsi:type="dc:Point" x="958" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="989" y="789" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="842.0" y="573.0"/>
+          <dc:Bounds x="974" y="774" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_251" bpmnElement="ExclusiveGateway_isSyncResponseSent" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="348.0" y="547.0"/>
+        <dc:Bounds x="380" y="764" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="129.0" x="309.0" y="602.0"/>
+          <dc:Bounds x="367" y="819" width="77" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_syncResponseSent" sourceElement="_BPMNShape_ExclusiveGateway_251" targetElement="_BPMNShape_ScriptTask_307">
-        <di:waypoint xsi:type="dc:Point" x="398.0" y="572.0"/>
-        <di:waypoint xsi:type="dc:Point" x="493.0" y="572.0"/>
-        <di:waypoint xsi:type="dc:Point" x="493.0" y="573.0"/>
-        <di:waypoint xsi:type="dc:Point" x="576.0" y="573.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="450.0" y="572.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_308" bpmnElement="ScriptTask_sendSyncErrorResp">
-        <dc:Bounds height="80.0" width="100.0" x="324.0" y="672.0"/>
+        <dc:Bounds x="355" y="879" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_syncResponseNotSent" sourceElement="_BPMNShape_ExclusiveGateway_251" targetElement="_BPMNShape_ScriptTask_308">
-        <di:waypoint xsi:type="dc:Point" x="373.0" y="597.0"/>
-        <di:waypoint xsi:type="dc:Point" x="373.0" y="634.0"/>
-        <di:waypoint xsi:type="dc:Point" x="374.0" y="634.0"/>
-        <di:waypoint xsi:type="dc:Point" x="374.0" y="672.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="363.0" y="634.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_24" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ScriptTask_308" targetElement="_BPMNShape_ScriptTask_307">
-        <di:waypoint xsi:type="dc:Point" x="424.0" y="712.0"/>
-        <di:waypoint xsi:type="dc:Point" x="608.0" y="712.0"/>
-        <di:waypoint xsi:type="dc:Point" x="626.0" y="712.0"/>
-        <di:waypoint xsi:type="dc:Point" x="626.0" y="613.0"/>
+        <di:waypoint xsi:type="dc:Point" x="455" y="919" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="919" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="814" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="530.0" y="712.0"/>
+          <dc:Bounds x="560" y="904" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_51" bpmnElement="CallActivity_callGenericGetSI">
-        <dc:Bounds height="80.0" width="100.0" x="720.0" y="134.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_254" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="887.0" y="148.0"/>
+      <bpmndi:BPMNShape id="ExclusiveGateway_09n39bk_di" bpmnElement="ExclusiveGateway_09n39bk" isMarkerVisible="true">
+        <dc:Bounds x="492.646" y="764" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="912.0" y="203.0"/>
+          <dc:Bounds x="482" y="814" width="71" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_CallActivity_51" targetElement="_BPMNShape_ExclusiveGateway_254">
-        <di:waypoint xsi:type="dc:Point" x="820.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="853.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="853.0" y="173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="887.0" y="173.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_serviceInstanceFound" sourceElement="_BPMNShape_ExclusiveGateway_254" targetElement="_BPMNShape_CallActivity_36">
-        <di:waypoint xsi:type="dc:Point" x="937.0" y="173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="966.0" y="173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="966.0" y="174.0"/>
-        <di:waypoint xsi:type="dc:Point" x="996.0" y="174.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_237" bpmnElement="EndEvent_serviceInstanceNotFound">
-        <dc:Bounds height="36.0" width="36.0" x="895.0" y="389.0"/>
+      <bpmndi:BPMNShape id="ScriptTask_0z3e4ts_di" bpmnElement="Task_0nc3wxy">
+        <dc:Bounds x="468" y="644" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1td0fj3_di" bpmnElement="Task_1b9yx6k">
+        <dc:Bounds x="468" y="530" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0mld0ou_di" bpmnElement="Task_1lkduwj">
+        <dc:Bounds x="614" y="530" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="InclusiveGateway_1gkubx4_di" bpmnElement="ExclusiveGateway_0of872x">
+        <dc:Bounds x="639" y="764" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="913.0" y="430.0"/>
+          <dc:Bounds x="664" y="814" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_serviceInstanceNotFound" sourceElement="_BPMNShape_ExclusiveGateway_254" targetElement="_BPMNShape_ScriptTask_312">
-        <di:waypoint xsi:type="dc:Point" x="912.0" y="198.0"/>
-        <di:waypoint xsi:type="dc:Point" x="912.0" y="264.0"/>
+      <bpmndi:BPMNEdge id="SequenceFlow_1tfi3sp_di" bpmnElement="SequenceFlow_1tfi3sp">
+        <di:waypoint xsi:type="dc:Point" x="299" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="380" y="789" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="919.0" y="226.0"/>
+          <dc:Bounds x="340" y="764" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_312" bpmnElement="ScriptTask_buildServiceInstanceNotFoundError">
-        <dc:Bounds height="80.0" width="100.0" x="862.0" y="264.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_ScriptTask_312" targetElement="_BPMNShape_EndEvent_237">
-        <di:waypoint xsi:type="dc:Point" x="912.0" y="344.0"/>
-        <di:waypoint xsi:type="dc:Point" x="913.0" y="389.0"/>
+      <bpmndi:BPMNEdge id="SequenceFlow_0x34g02_di" bpmnElement="SequenceFlow_0x34g02">
+        <di:waypoint xsi:type="dc:Point" x="405" y="814" />
+        <di:waypoint xsi:type="dc:Point" x="405" y="879" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="910.0" y="370.0"/>
+          <dc:Bounds x="413" y="847" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1q9kksk_di" bpmnElement="SequenceFlow_1q9kksk">
+        <di:waypoint xsi:type="dc:Point" x="430" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="493" y="789" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="453" y="764" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1cu5t8k_di" bpmnElement="SequenceFlow_1cu5t8k">
+        <di:waypoint xsi:type="dc:Point" x="543" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="639" y="789" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="584" y="764" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1tfh1vm_di" bpmnElement="SequenceFlow_1tfh1vm">
+        <di:waypoint xsi:type="dc:Point" x="518" y="764" />
+        <di:waypoint xsi:type="dc:Point" x="518" y="724" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="524" y="734" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0b1nrfk_di" bpmnElement="SequenceFlow_0b1nrfk">
+        <di:waypoint xsi:type="dc:Point" x="518" y="644" />
+        <di:waypoint xsi:type="dc:Point" x="518" y="610" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="533" y="627" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_08vm13o_di" bpmnElement="SequenceFlow_08vm13o">
+        <di:waypoint xsi:type="dc:Point" x="568" y="570" />
+        <di:waypoint xsi:type="dc:Point" x="591" y="570" />
+        <di:waypoint xsi:type="dc:Point" x="591" y="570" />
+        <di:waypoint xsi:type="dc:Point" x="614" y="570" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="606" y="570" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_097zy8w_di" bpmnElement="SequenceFlow_097zy8w">
+        <di:waypoint xsi:type="dc:Point" x="664" y="610" />
+        <di:waypoint xsi:type="dc:Point" x="664" y="764" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="679" y="687" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1v1jx7y_di" bpmnElement="SequenceFlow_1v1jx7y">
+        <di:waypoint xsi:type="dc:Point" x="689" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="725" y="789" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="707" y="774" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0djjra2_di" bpmnElement="SequenceFlow_0djjra2">
+        <di:waypoint xsi:type="dc:Point" x="805" y="174" />
+        <di:waypoint xsi:type="dc:Point" x="835" y="174" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="820" y="159" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVnfInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVnfInfra.bpmn
index b10e98b..e78bde6 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVnfInfra.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVnfInfra.bpmn
Binary files differ
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteGenericMacroServiceNetworkVnf.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteGenericMacroServiceNetworkVnf.bpmn
deleted file mode 100644
index bb2c487..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteGenericMacroServiceNetworkVnf.bpmn
+++ /dev/null
@@ -1,773 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
-  <bpmn2:process id="DeleteGenericMacroServiceNetworkVnf" name="DeleteGenericMacroServiceNetworkVnf" isExecutable="true">
-    <bpmn2:scriptTask id="sendSyncAckResponse_ScriptTask" name="Send Sync Ack Response" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf = new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.sendSyncResponse(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="sendSyncAckResponse_ScriptTask" targetRef="IntermediateThrowEvent_2" />
-    <bpmn2:startEvent id="createVIPR_startEvent" name="Start Flow">
-      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
-    </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="createVIPR_startEvent" targetRef="preProcessRequest_ScriptTask" />
-    <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf = new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.preProcessRequest(execution)
-]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="sendSyncAckResponse_ScriptTask" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_3" name="vIPR-ATM">
-      <bpmn2:outgoing>SequenceFlow_10o22u2</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_37" name="vIPR-ATM" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:scriptTask id="postProcessAndCompletionRequest_ScriptTask" name="Post Process &#38; Completion Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_12ilko1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf = new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.postProcessResponse(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="postProcessAndCompletionRequest_ScriptTask" targetRef="callCompleteMsoProcess_CallActivity" />
-    <bpmn2:callActivity id="callCompleteMsoProcess_CallActivity" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
-      <bpmn2:extensionElements>
-        <camunda:in variables="all" />
-        <camunda:out variables="all" />
-        <camunda:in source="DELVAS_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest" />
-        <camunda:in source="requestId" target="requestId" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode" />
-        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" />
-        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="callCompleteMsoProcess_CallActivity" targetRef="ScriptTask_2" />
-    <bpmn2:scriptTask id="ScriptTask_2" name="Set Success Indicator" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[// The following variable is checked by the unit test
-execution.setVariable("DeleteGenericMacroServiceNetworkVnfSuccessIndicator", true)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_2" targetRef="DeleteVIPR_EndEvent" />
-    <bpmn2:endEvent id="DeleteVIPR_EndEvent" name="End">
-      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_13" />
-    </bpmn2:endEvent>
-    <bpmn2:subProcess id="UnexpectedError_SubProcess_1" name="Sub-process for UnexpectedErrors" triggeredByEvent="true">
-      <bpmn2:startEvent id="StartEvent_1">
-        <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="_ErrorEventDefinition_92" errorRef="Error_1" />
-      </bpmn2:startEvent>
-      <bpmn2:endEvent id="EndEvent_1">
-        <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
-      </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_1" />
-      <bpmn2:scriptTask id="ScriptTask_1" name="Log / Print Unexpected Error" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteServiceInstanceInfra = new DeleteServiceInstanceInfra()
-DeleteServiceInstanceInfra.processJavaException(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_1" targetRef="EndEvent_1" />
-    </bpmn2:subProcess>
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_4" name="FinishProcess">
-      <bpmn2:outgoing>SequenceFlow_12ilko1</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_39" name="FinishProcess" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:callActivity id="doDeleteNetworkInstance_CallActivity" name="DoDelete&#10;Network&#10;Instance" calledElement="DoDeleteNetworkInstance">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
-        <camunda:in source="tenantId" target="tenantId" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="failIfExists" target="failIfExists" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="rollbackData" target="DELNWKI_rollbackData" />
-        <camunda:out source="rolledBack" target="DELNWKI_rolledBack" />
-        <camunda:out source="wasDeleted" target="wasDeleted" />
-        <camunda:in source="networkId" target="networkId" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_1bwbn7r</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_12ag2bk</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_PrepareNetworkDelete" name="Prepare for Network Delete" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0cmebdc</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_0dfkfh1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1bwbn7r</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf= new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.prepareNetworkDelete(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:callActivity id="doDeleteServiceInstance_CallActivity" name="DoDelete&#10;ServiceInstance&#10;" calledElement="DoDeleteServiceInstance">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:out source="rollbackData" target="DCRESI_rollbackData" />
-        <camunda:in source="failExists" target="failExists" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:out source="rolledBack" target="DCRESI_rolledBack" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_10o22u2</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_04ao07f</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:callActivity id="doDeleteVNFandModules_CallActivity" name="DoDelete&#10;VNF and Modules&#10;" calledElement="DoDeleteVnfAndModules">
-      <bpmn2:extensionElements>
-        <camunda:in source="msoRequestId" target="msoRequestId" />
-        <camunda:in source="disableRollback" target="disableRollback" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
-        <camunda:in source="vnfId" target="vnfId" />
-        <camunda:in source="sdncVersion" target="sdncVersion" />
-        <camunda:out source="rollbackData" target="rollbackData" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="rolledBack" target="rolledBack" />
-        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
-        <camunda:in source="tenantId" target="tenantId" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_1h77psn</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1dmn40p</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_3" name="Prepare to Delete VNF" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_0bvecvm</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_0mr8jgt</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1h77psn</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf= new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.prepareVnfAndModulesDelete(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_4" name="GoToStartNetworks">
-      <bpmn2:incoming>SequenceFlow_0xowenu</bpmn2:incoming>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_41" name="StartNetworks" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_2" name="GoQueryServiceInstance">
-      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
-      <bpmn2:linkEventDefinition id="_LinkEventDefinition_38" name="QueryServiceInstance" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:subProcess id="SubProcess_0s6hpty" name="Subprocess For Exception / FalloutHandler " triggeredByEvent="true">
-      <bpmn2:startEvent id="StartEvent_1bwmffk" name="Fault Start">
-        <bpmn2:outgoing>SequenceFlow_06llof4</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition />
-      </bpmn2:startEvent>
-      <bpmn2:callActivity id="CallActivity_0jw5tqa" name="Call FalloutHandlerV1" calledElement="FalloutHandler">
-        <bpmn2:extensionElements>
-          <camunda:in source="DELVAS_falloutRequest" target="FalloutHandlerRequest" />
-          <camunda:in source="msoRequestId" target="mso-request-id" />
-          <camunda:in source="serviceInstanceId" target="mso-service-instance-id" />
-          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode" />
-          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" />
-          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" />
-        </bpmn2:extensionElements>
-        <bpmn2:incoming>SequenceFlow_0807ukc</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_19yywk8</bpmn2:outgoing>
-      </bpmn2:callActivity>
-      <bpmn2:endEvent id="EndEvent_04xute7">
-        <bpmn2:incoming>SequenceFlow_19yywk8</bpmn2:incoming>
-      </bpmn2:endEvent>
-      <bpmn2:scriptTask id="ScriptTask_0yk02h3" name="Prepare FalloutHandler" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_06llof4</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_0807ukc</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf = new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.prepareFalloutRequest(execution)]]></bpmn2:script>
-      </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_0807ukc" sourceRef="ScriptTask_0yk02h3" targetRef="CallActivity_0jw5tqa" />
-      <bpmn2:sequenceFlow id="SequenceFlow_19yywk8" sourceRef="CallActivity_0jw5tqa" targetRef="EndEvent_04xute7" />
-      <bpmn2:sequenceFlow id="SequenceFlow_06llof4" sourceRef="StartEvent_1bwmffk" targetRef="ScriptTask_0yk02h3" />
-    </bpmn2:subProcess>
-    <bpmn2:sequenceFlow id="SequenceFlow_10o22u2" sourceRef="IntermediateCatchEvent_3" targetRef="doDeleteServiceInstance_CallActivity" />
-    <bpmn2:sequenceFlow id="SequenceFlow_12ilko1" sourceRef="IntermediateCatchEvent_4" targetRef="postProcessAndCompletionRequest_ScriptTask" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1bwbn7r" sourceRef="ScriptTask_PrepareNetworkDelete" targetRef="doDeleteNetworkInstance_CallActivity" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1n7r495" name="No" sourceRef="ExclusiveGateway_0fe690i" targetRef="ExclusiveGateway_1os8cm5" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1h77psn" sourceRef="ScriptTask_3" targetRef="doDeleteVNFandModules_CallActivity" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1nh09nr" name="StartNetworks">
-      <bpmn2:outgoing>SequenceFlow_1vwssu7</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartNetworks" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0prlju0" name="GoTo FinishProcess">
-      <bpmn2:incoming>SequenceFlow_04ao07f</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="FinishProcess" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_0b9wd4f" name="Delete Network(s)?" default="SequenceFlow_1f26zbk">
-      <bpmn2:incoming>SequenceFlow_1vwssu7</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0cmebdc</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_1f26zbk</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_0fe690i" name="Delete Additional Networks?" default="SequenceFlow_1n7r495">
-      <bpmn2:incoming>SequenceFlow_04vlq8r</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1n7r495</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_0dfkfh1</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_0dfkfh1" name="Yes" sourceRef="ExclusiveGateway_0fe690i" targetRef="ScriptTask_PrepareNetworkDelete">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVAS_networksDeletedCount") < execution.getVariable("DELVAS_networksCount")}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0cmebdc" name="Yes" sourceRef="ExclusiveGateway_0b9wd4f" targetRef="ScriptTask_PrepareNetworkDelete">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVAS_networksCount") > 0}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1os8cm5">
-      <bpmn2:incoming>SequenceFlow_1n7r495</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_1f26zbk</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1j7n6qx</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_1f26zbk" name="No" sourceRef="ExclusiveGateway_0b9wd4f" targetRef="ExclusiveGateway_1os8cm5" />
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_0nreq15" name="GoTo vIPR-ATM">
-      <bpmn2:incoming>SequenceFlow_1j7n6qx</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="vIPR-ATM" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1vwssu7" sourceRef="IntermediateCatchEvent_1nh09nr" targetRef="ExclusiveGateway_0b9wd4f" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1j7n6qx" sourceRef="ExclusiveGateway_1os8cm5" targetRef="IntermediateThrowEvent_0nreq15" />
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_0rlqdvq" name="StartVnfs">
-      <bpmn2:outgoing>SequenceFlow_10tbv62</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="StartVnfs" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1nlocis" name="Delete VNF?" default="SequenceFlow_0w7328u">
-      <bpmn2:incoming>SequenceFlow_10tbv62</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0bvecvm</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_0w7328u</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_04q1qud">
-      <bpmn2:incoming>SequenceFlow_0w7328u</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_1wc8h5g</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0xowenu</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_10tbv62" sourceRef="IntermediateCatchEvent_0rlqdvq" targetRef="ExclusiveGateway_1nlocis" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0bvecvm" name="Yes" sourceRef="ExclusiveGateway_1nlocis" targetRef="ScriptTask_3">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVAS_vnfsCount") > 0}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_0w7328u" name="No" sourceRef="ExclusiveGateway_1nlocis" targetRef="ExclusiveGateway_04q1qud" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0xowenu" sourceRef="ExclusiveGateway_04q1qud" targetRef="IntermediateThrowEvent_4" />
-    <bpmn2:scriptTask id="ScriptTask_04o8gb3" name="Validate Network Delete" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_12ag2bk</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_04vlq8r</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf= new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.validateNetworkDelete(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12ag2bk" sourceRef="doDeleteNetworkInstance_CallActivity" targetRef="ScriptTask_04o8gb3" />
-    <bpmn2:sequenceFlow id="SequenceFlow_04vlq8r" sourceRef="ScriptTask_04o8gb3" targetRef="ExclusiveGateway_0fe690i" />
-    <bpmn2:callActivity id="callGetServiceInstance" name="Get&#10;Service&#10;Instance" calledElement="GenericGetService">
-      <bpmn2:extensionElements>
-        <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
-        <camunda:in source="GENGS_type" target="GENGS_type" />
-        <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
-        <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
-        <camunda:out source="GENGS_service" target="GENGS_service" />
-        <camunda:out source="WorkflowException" target="WorkflowException" />
-        <camunda:out source="GENGS_siResourceLink" target="GENGS_siResourceLink" />
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0jek18q</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_1ttswdr</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:scriptTask id="ScriptTask_05m3m2e" name="Process Response &#38; ready data for subflows" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1ttswdr</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_18103ca</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf = new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.prepareServiceInstanceDelete(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_112zjtp" name="QueryServiceInstance">
-      <bpmn2:outgoing>SequenceFlow_0jek18q</bpmn2:outgoing>
-      <bpmn2:linkEventDefinition name="QueryServiceInstance" />
-    </bpmn2:intermediateCatchEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_162gs5w" name="GoToStartVnfs">
-      <bpmn2:incoming>SequenceFlow_18103ca</bpmn2:incoming>
-      <bpmn2:linkEventDefinition name="StartVnfs" />
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_0jek18q" sourceRef="IntermediateCatchEvent_112zjtp" targetRef="callGetServiceInstance" />
-    <bpmn2:sequenceFlow id="SequenceFlow_18103ca" sourceRef="ScriptTask_05m3m2e" targetRef="IntermediateThrowEvent_162gs5w" />
-    <bpmn2:sequenceFlow id="SequenceFlow_04ao07f" sourceRef="doDeleteServiceInstance_CallActivity" targetRef="IntermediateThrowEvent_0prlju0" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1ttswdr" sourceRef="callGetServiceInstance" targetRef="ScriptTask_05m3m2e" />
-    <bpmn2:scriptTask id="ScriptTask_1ildy3f" name="Validate VNF delete" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1dmn40p</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0g2cw86</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def DeleteGenericMacroServiceNetworkVnf= new DeleteGenericMacroServiceNetworkVnf()
-DeleteGenericMacroServiceNetworkVnf.validateVnfDelete(execution)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1uds6yu" name="Delete Additional VNFs?" default="SequenceFlow_1wc8h5g">
-      <bpmn2:incoming>SequenceFlow_0g2cw86</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0mr8jgt</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_1wc8h5g</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_1dmn40p" sourceRef="doDeleteVNFandModules_CallActivity" targetRef="ScriptTask_1ildy3f" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0g2cw86" sourceRef="ScriptTask_1ildy3f" targetRef="ExclusiveGateway_1uds6yu" />
-    <bpmn2:sequenceFlow id="SequenceFlow_0mr8jgt" name="Yes" sourceRef="ExclusiveGateway_1uds6yu" targetRef="ScriptTask_3">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVAS_vnfsDeletedCountt") < execution.getVariable("DELVAS_vnfsCount")}]]></bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_1wc8h5g" name="No" sourceRef="ExclusiveGateway_1uds6yu" targetRef="ExclusiveGateway_04q1qud" />
-  </bpmn2:process>
-  <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
-  <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
-  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DeleteGenericMacroServiceNetworkVnf">
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="createVIPR_startEvent">
-        <dc:Bounds x="96" y="90" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="82" y="131" width="65" height="22" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
-        <dc:Bounds x="285" y="68" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
-        <di:waypoint xsi:type="dc:Point" x="132" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="285" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="171" y="108" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_4" bpmnElement="callCompleteMsoProcess_CallActivity">
-        <dc:Bounds x="476" y="1192" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_80" bpmnElement="postProcessAndCompletionRequest_ScriptTask">
-        <dc:Bounds x="285" y="1193" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_61" targetElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="385" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="476" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="271" y="69" width="6" height="6" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="sendSyncAckResponse_ScriptTask">
-        <dc:Bounds x="476" y="68" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_42" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ScriptTask_80" targetElement="_BPMNShape_CallActivity_4">
-        <di:waypoint xsi:type="dc:Point" x="385" y="1233" />
-        <di:waypoint xsi:type="dc:Point" x="476" y="1232" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="431" y="1217.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="DeleteVIPR_EndEvent">
-        <dc:Bounds x="1046" y="1213" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1054" y="1254" width="19" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_CallActivity_4" targetElement="_BPMNShape_ScriptTask_337">
-        <di:waypoint xsi:type="dc:Point" x="576" y="1233" />
-        <di:waypoint xsi:type="dc:Point" x="636" y="1233" />
-        <di:waypoint xsi:type="dc:Point" x="636" y="1230" />
-        <di:waypoint xsi:type="dc:Point" x="803" y="1230" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="651" y="1231.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_27" bpmnElement="UnexpectedError_SubProcess_1" isExpanded="true">
-        <dc:Bounds x="686" y="1374" width="405" height="205" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_70" bpmnElement="StartEvent_1">
-        <dc:Bounds x="754" y="1479" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="772" y="1520" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_269" bpmnElement="ScriptTask_1">
-        <dc:Bounds x="829" y="1457" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_219" bpmnElement="EndEvent_1">
-        <dc:Bounds x="982" y="1479" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1000" y="1520" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_70" targetElement="_BPMNShape_ScriptTask_269">
-        <di:waypoint xsi:type="dc:Point" x="790" y="1497" />
-        <di:waypoint xsi:type="dc:Point" x="829" y="1497" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="818" y="1497" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_269" targetElement="_BPMNShape_EndEvent_219">
-        <di:waypoint xsi:type="dc:Point" x="929" y="1497" />
-        <di:waypoint xsi:type="dc:Point" x="962" y="1497" />
-        <di:waypoint xsi:type="dc:Point" x="962" y="1497" />
-        <di:waypoint xsi:type="dc:Point" x="982" y="1497" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="977" y="1497" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_75" bpmnElement="doDeleteServiceInstance_CallActivity">
-        <dc:Bounds x="285" y="1009" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="576" y="108" />
-        <di:waypoint xsi:type="dc:Point" x="728" y="108" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="652" y="93" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_337" bpmnElement="ScriptTask_2">
-        <dc:Bounds x="803" y="1191" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_337" targetElement="_BPMNShape_EndEvent_177">
-        <di:waypoint xsi:type="dc:Point" x="903" y="1230" />
-        <di:waypoint xsi:type="dc:Point" x="1046" y="1231" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="975" y="1215.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_76" bpmnElement="doDeleteNetworkInstance_CallActivity">
-        <dc:Bounds x="555" y="722" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_35" bpmnElement="IntermediateCatchEvent_3">
-        <dc:Bounds x="100" y="1031" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="92" y="1067" width="51" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_36" bpmnElement="IntermediateCatchEvent_4">
-        <dc:Bounds x="100" y="1216" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="82" y="1252" width="71" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_51" bpmnElement="IntermediateThrowEvent_4">
-        <dc:Bounds x="1036" y="524" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1011" y="565" width="85" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_341" bpmnElement="ScriptTask_PrepareNetworkDelete">
-        <dc:Bounds x="413" y="719" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_342" bpmnElement="ScriptTask_3">
-        <dc:Bounds x="413" y="435" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_81" bpmnElement="doDeleteVNFandModules_CallActivity">
-        <dc:Bounds x="555" y="435" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_49" bpmnElement="IntermediateThrowEvent_2">
-        <dc:Bounds x="728" y="90" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="703" y="131" width="86" height="26" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="SubProcess_0s6hpty_di" bpmnElement="SubProcess_0s6hpty" isExpanded="true">
-        <dc:Bounds x="52" y="1375" width="598" height="203" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="StartEvent_1bwmffk_di" bpmnElement="StartEvent_1bwmffk">
-        <dc:Bounds x="123" y="1448" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="117" y="1489" width="50" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_0jw5tqa_di" bpmnElement="CallActivity_0jw5tqa">
-        <dc:Bounds x="384" y="1426" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="EndEvent_04xute7_di" bpmnElement="EndEvent_04xute7">
-        <dc:Bounds x="539" y="1448" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="557" y="1489" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_0yk02h3_di" bpmnElement="ScriptTask_0yk02h3">
-        <dc:Bounds x="237" y="1426" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_10o22u2_di" bpmnElement="SequenceFlow_10o22u2">
-        <di:waypoint xsi:type="dc:Point" x="136" y="1049" />
-        <di:waypoint xsi:type="dc:Point" x="285" y="1049" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="211" y="1034" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_12ilko1_di" bpmnElement="SequenceFlow_12ilko1">
-        <di:waypoint xsi:type="dc:Point" x="136" y="1234" />
-        <di:waypoint xsi:type="dc:Point" x="285" y="1233" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="211" y="1218.5" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0807ukc_di" bpmnElement="SequenceFlow_0807ukc">
-        <di:waypoint xsi:type="dc:Point" x="337" y="1466" />
-        <di:waypoint xsi:type="dc:Point" x="384" y="1466" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="361" y="1451" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_19yywk8_di" bpmnElement="SequenceFlow_19yywk8">
-        <di:waypoint xsi:type="dc:Point" x="484" y="1466" />
-        <di:waypoint xsi:type="dc:Point" x="539" y="1466" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="512" y="1451" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1bwbn7r_di" bpmnElement="SequenceFlow_1bwbn7r">
-        <di:waypoint xsi:type="dc:Point" x="513" y="761" />
-        <di:waypoint xsi:type="dc:Point" x="555" y="760" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="534" y="746" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1n7r495_di" bpmnElement="SequenceFlow_1n7r495">
-        <di:waypoint xsi:type="dc:Point" x="891" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="936" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="936" y="792" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="908" y="747" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1h77psn_di" bpmnElement="SequenceFlow_1h77psn">
-        <di:waypoint xsi:type="dc:Point" x="513" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="555" y="475" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="534" y="460" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_1nh09nr_di" bpmnElement="IntermediateCatchEvent_1nh09nr">
-        <dc:Bounds x="96" y="786" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="80" y="822" width="68" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0prlju0_di" bpmnElement="IntermediateThrowEvent_0prlju0">
-        <dc:Bounds x="508" y="1031" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="491" y="1072" width="70" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0b9wd4f_di" bpmnElement="ExclusiveGateway_0b9wd4f" isMarkerVisible="true">
-        <dc:Bounds x="345" y="779" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="408" y="811" width="57" height="26" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_0fe690i_di" bpmnElement="ExclusiveGateway_0fe690i" isMarkerVisible="true">
-        <dc:Bounds x="841" y="737" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="809" y="795" width="82" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0dfkfh1_di" bpmnElement="SequenceFlow_0dfkfh1">
-        <di:waypoint xsi:type="dc:Point" x="866" y="737" />
-        <di:waypoint xsi:type="dc:Point" x="866" y="657" />
-        <di:waypoint xsi:type="dc:Point" x="463" y="657" />
-        <di:waypoint xsi:type="dc:Point" x="463" y="717" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="657" y="642" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0cmebdc_di" bpmnElement="SequenceFlow_0cmebdc">
-        <di:waypoint xsi:type="dc:Point" x="370" y="779" />
-        <di:waypoint xsi:type="dc:Point" x="370" y="759" />
-        <di:waypoint xsi:type="dc:Point" x="413" y="759" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="375" y="769" width="19" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1os8cm5_di" bpmnElement="ExclusiveGateway_1os8cm5" isMarkerVisible="true">
-        <dc:Bounds x="911" y="792" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="936" y="847" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1f26zbk_di" bpmnElement="SequenceFlow_1f26zbk">
-        <di:waypoint xsi:type="dc:Point" x="370" y="829" />
-        <di:waypoint xsi:type="dc:Point" x="370" y="896" />
-        <di:waypoint xsi:type="dc:Point" x="936" y="896" />
-        <di:waypoint xsi:type="dc:Point" x="936" y="842" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="646" y="881" width="14" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_0nreq15_di" bpmnElement="IntermediateThrowEvent_0nreq15">
-        <dc:Bounds x="1046" y="799" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1024" y="840" width="80" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1vwssu7_di" bpmnElement="SequenceFlow_1vwssu7">
-        <di:waypoint xsi:type="dc:Point" x="132" y="804" />
-        <di:waypoint xsi:type="dc:Point" x="345" y="804" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="239" y="789" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1j7n6qx_di" bpmnElement="SequenceFlow_1j7n6qx">
-        <di:waypoint xsi:type="dc:Point" x="961" y="817" />
-        <di:waypoint xsi:type="dc:Point" x="1046" y="817" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1004" y="792" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_0rlqdvq_di" bpmnElement="IntermediateCatchEvent_0rlqdvq">
-        <dc:Bounds x="86" y="540" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="80" y="576" width="45" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1nlocis_di" bpmnElement="ExclusiveGateway_1nlocis" isMarkerVisible="true">
-        <dc:Bounds x="335" y="533" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="395" y="565" width="62" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_04q1qud_di" bpmnElement="ExclusiveGateway_04q1qud" isMarkerVisible="true">
-        <dc:Bounds x="901" y="517" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="926" y="572" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_10tbv62_di" bpmnElement="SequenceFlow_10tbv62">
-        <di:waypoint xsi:type="dc:Point" x="122" y="558" />
-        <di:waypoint xsi:type="dc:Point" x="335" y="558" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="229" y="533" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0bvecvm_di" bpmnElement="SequenceFlow_0bvecvm">
-        <di:waypoint xsi:type="dc:Point" x="360" y="533" />
-        <di:waypoint xsi:type="dc:Point" x="360" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="413" y="475" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="366" y="494" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0w7328u_di" bpmnElement="SequenceFlow_0w7328u">
-        <di:waypoint xsi:type="dc:Point" x="360" y="584" />
-        <di:waypoint xsi:type="dc:Point" x="360" y="607" />
-        <di:waypoint xsi:type="dc:Point" x="926" y="607" />
-        <di:waypoint xsi:type="dc:Point" x="926" y="568" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="606" y="583" width="14" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0xowenu_di" bpmnElement="SequenceFlow_0xowenu">
-        <di:waypoint xsi:type="dc:Point" x="951" y="542" />
-        <di:waypoint xsi:type="dc:Point" x="1036" y="542" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="994" y="517" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_04o8gb3_di" bpmnElement="ScriptTask_04o8gb3">
-        <dc:Bounds x="699" y="722" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_12ag2bk_di" bpmnElement="SequenceFlow_12ag2bk">
-        <di:waypoint xsi:type="dc:Point" x="655" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="699" y="762" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="677" y="737" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_04vlq8r_di" bpmnElement="SequenceFlow_04vlq8r">
-        <di:waypoint xsi:type="dc:Point" x="799" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="820" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="820" y="762" />
-        <di:waypoint xsi:type="dc:Point" x="841" y="762" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="835" y="762" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="CallActivity_0nmoax4_di" bpmnElement="callGetServiceInstance">
-        <dc:Bounds x="285" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_05m3m2e_di" bpmnElement="ScriptTask_05m3m2e">
-        <dc:Bounds x="476" y="223" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateCatchEvent_112zjtp_di" bpmnElement="IntermediateCatchEvent_112zjtp">
-        <dc:Bounds x="96" y="245" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="72" y="281" width="82" height="25" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="IntermediateThrowEvent_162gs5w_di" bpmnElement="IntermediateThrowEvent_162gs5w">
-        <dc:Bounds x="732" y="245" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="713" y="286" width="72" height="13" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0jek18q_di" bpmnElement="SequenceFlow_0jek18q">
-        <di:waypoint xsi:type="dc:Point" x="132" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="285" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="209" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_18103ca_di" bpmnElement="SequenceFlow_18103ca">
-        <di:waypoint xsi:type="dc:Point" x="576" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="732" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="654" y="248" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_04ao07f_di" bpmnElement="SequenceFlow_04ao07f">
-        <di:waypoint xsi:type="dc:Point" x="385" y="1049" />
-        <di:waypoint xsi:type="dc:Point" x="508" y="1049" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="447" y="1034" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1ttswdr_di" bpmnElement="SequenceFlow_1ttswdr">
-        <di:waypoint xsi:type="dc:Point" x="385" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="422" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="422" y="263" />
-        <di:waypoint xsi:type="dc:Point" x="476" y="263" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="437" y="263" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_1ildy3f_di" bpmnElement="ScriptTask_1ildy3f">
-        <dc:Bounds x="687" y="435" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ExclusiveGateway_1uds6yu_di" bpmnElement="ExclusiveGateway_1uds6yu" isMarkerVisible="true">
-        <dc:Bounds x="828" y="450" width="50" height="50" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="797" y="508" width="80" height="24" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_1dmn40p_di" bpmnElement="SequenceFlow_1dmn40p">
-        <di:waypoint xsi:type="dc:Point" x="655" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="687" y="475" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="671" y="450" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0g2cw86_di" bpmnElement="SequenceFlow_0g2cw86">
-        <di:waypoint xsi:type="dc:Point" x="787" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="828" y="475" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="808" y="460" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_0mr8jgt_di" bpmnElement="SequenceFlow_0mr8jgt">
-        <di:waypoint xsi:type="dc:Point" x="853" y="453" />
-        <di:waypoint xsi:type="dc:Point" x="853" y="364" />
-        <di:waypoint xsi:type="dc:Point" x="463" y="364" />
-        <di:waypoint xsi:type="dc:Point" x="463" y="435" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="649" y="349" width="18" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1wc8h5g_di" bpmnElement="SequenceFlow_1wc8h5g">
-        <di:waypoint xsi:type="dc:Point" x="878" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="926" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="926" y="517" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="895" y="460" width="14" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_06llof4_di" bpmnElement="SequenceFlow_06llof4">
-        <di:waypoint xsi:type="dc:Point" x="159" y="1466" />
-        <di:waypoint xsi:type="dc:Point" x="237" y="1466" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="198" y="1441" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteNetworkInstance.bpmn
index 951ae3c..079599d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteNetworkInstance.bpmn
@@ -116,7 +116,7 @@
         <bpmn2:extensionElements>

           <camunda:connector>

             <camunda:inputOutput>

-              <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>

+              <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>

               <camunda:inputParameter name="payload">${DELNI_deleteDBRequest}</camunda:inputParameter>

               <camunda:inputParameter name="headers">

                 <camunda:map>

@@ -368,4 +368,4 @@
       </bpmndi:BPMNShape>

     </bpmndi:BPMNPlane>

   </bpmndi:BPMNDiagram>

-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleInfra.bpmn
index 04369ac..a687d5d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleInfra.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleInfra.bpmn
@@ -79,11 +79,12 @@
       <bpmn2:extensionElements>
         <camunda:connector>
           <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
             <camunda:inputParameter name="method">POST</camunda:inputParameter>
             <camunda:inputParameter name="headers">
               <camunda:map>
                 <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
               </camunda:map>
             </camunda:inputParameter>
             <camunda:inputParameter name="payload">${DELVfModI_updateInfraRequest}</camunda:inputParameter>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleVolumeInfraV1.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleVolumeInfraV1.bpmn
index d0051de..21f74a2 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleVolumeInfraV1.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/DeleteVfModuleVolumeInfraV1.bpmn
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_MagIIMOUEeW8asg-vCEgWQ" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_MagIIMOUEeW8asg-vCEgWQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="DeleteVfModuleVolumeInfraV1" name="DeleteVfModuleVolumeInfraV1" isExecutable="true">
     <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
@@ -10,11 +10,11 @@
 
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="sendSyncAckResponse_ScriptTask"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="preProcessRequest_ScriptTask" targetRef="sendSyncAckResponse_ScriptTask" />
     <bpmn2:startEvent id="deleteNetwork_startEvent" name="Start Flow">
       <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
     </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="deleteNetwork_startEvent" targetRef="preProcessRequest_ScriptTask"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="deleteNetwork_startEvent" targetRef="preProcessRequest_ScriptTask" />
     <bpmn2:scriptTask id="sendSyncAckResponse_ScriptTask" name="Send Sync Ack Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
@@ -22,7 +22,7 @@
 def deleteVfMod = new DeleteVfModuleVolumeInfraV1()
 deleteVfMod.executeMethod('sendSyncResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="sendSyncAckResponse_ScriptTask" targetRef="ScriptTask_callRestCloudRegion"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="sendSyncAckResponse_ScriptTask" targetRef="ScriptTask_callRestCloudRegion" />
     <bpmn2:scriptTask id="ScriptTask_callRestCloudRegion" name="Call REST Query Cloud Region " scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
@@ -37,10 +37,10 @@
 def deleteVfMod = new DeleteVfModuleVolumeInfraV1()
 deleteVfMod.executeMethod('prepareVnfAdapterDeleteRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="prepareVnfAdapterDelete_ScriptTask_1" targetRef="callVnfAdapterDeleteSubflow_CallActivity"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="prepareVnfAdapterDelete_ScriptTask_1" targetRef="callVnfAdapterDeleteSubflow_CallActivity" />
     <bpmn2:endEvent id="EndEvent_5">
       <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" errorRef="Error_1" />
     </bpmn2:endEvent>
     <bpmn2:exclusiveGateway id="ExclusiveGateway_3" name="TenantId Match?" default="SequenceFlow_21">
       <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
@@ -50,21 +50,21 @@
     <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ExclusiveGateway_3" targetRef="prepareVnfAdapterDelete_ScriptTask_1">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVfModVol_tenantId") == execution.getVariable("DELVfModVol_volumeGroupTenantId")}]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ExclusiveGateway_3" targetRef="ScriptTask_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ExclusiveGateway_3" targetRef="ScriptTask_2" />
     <bpmn2:callActivity id="callVnfAdapterDeleteSubflow_CallActivity" name="Call Vnf Adapter Delete subflow" calledElement="vnfAdapterRestV1">
       <bpmn2:extensionElements>
-        <camunda:in source="DELVfModVol_deleteVnfARequest" target="vnfAdapterRestV1Request"/>
-        <camunda:out source="vnfAdapterRestV1Response" target="DELVfModVol_deleteVnfAResponse"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in variables="all"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="VNFREST_SuccessIndicator" target="VNFREST_SuccessIndicator"/>
+        <camunda:in source="DELVfModVol_deleteVnfARequest" target="vnfAdapterRestV1Request" />
+        <camunda:out source="vnfAdapterRestV1Response" target="DELVfModVol_deleteVnfAResponse" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in variables="all" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="VNFREST_SuccessIndicator" target="VNFREST_SuccessIndicator" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="callVnfAdapterDeleteSubflow_CallActivity" targetRef="ExclusiveGateway_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="callVnfAdapterDeleteSubflow_CallActivity" targetRef="ExclusiveGateway_2" />
     <bpmn2:scriptTask id="callAAIQuery_scriptTask" name="Query AAI for Volume Group Info" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
@@ -73,7 +73,7 @@
 deleteVfMod.executeMethod('queryAAIForVolumeGroup', execution, isDebugLogEnabled)
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="callAAIQuery_scriptTask" targetRef="ExclusiveGateway_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="callAAIQuery_scriptTask" targetRef="ExclusiveGateway_3" />
     <bpmn2:scriptTask id="ScriptTask_2" name="Handle TenantId Mismatch" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_21</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
@@ -81,27 +81,27 @@
 def deleteVfMod = new DeleteVfModuleVolumeInfraV1()
 deleteVfMod.executeMethod('handleTenantIdMismatch', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_2" targetRef="EndEvent_5"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_callRestCloudRegion" targetRef="ExclusiveGateway_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_2" targetRef="EndEvent_5" />
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_callRestCloudRegion" targetRef="ExclusiveGateway_1" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="is Cloud Region Ok?" default="SequenceFlow_4">
       <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ExclusiveGateway_1" targetRef="EndEvent_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ExclusiveGateway_1" targetRef="EndEvent_3" />
     <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ExclusiveGateway_1" targetRef="callAAIQuery_scriptTask">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DELVfModVol_isCloudRegionGood") == true}]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:endEvent id="EndEvent_3">
       <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_3" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_3" errorRef="Error_1" />
     </bpmn2:endEvent>
     <bpmn2:subProcess id="subProcessException_SubProcess" name="Subprocess For Exception / FalloutHandler " triggeredByEvent="true">
       <bpmn2:startEvent id="subProcessStart_StartEvent" name="Fault Start">
         <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1"/>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />
       </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="subProcessStart_StartEvent" targetRef="ExclusiveGateway_synResponseSent"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="subProcessStart_StartEvent" targetRef="ExclusiveGateway_synResponseSent" />
       <bpmn2:exclusiveGateway id="ExclusiveGateway_synResponseSent" name="Sync response sent?" default="SequenceFlow_responseNotSent">
         <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_responseNotSent</bpmn2:outgoing>
@@ -114,7 +114,7 @@
 def deleteVfMod = new  DeleteVfModuleVolumeInfraV1()
 deleteVfMod.executeMethod('sendSyncError', execution, isDebugLogEnabled)]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_responseNotSent" name="No" sourceRef="ExclusiveGateway_synResponseSent" targetRef="ScriptTask_4"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_responseNotSent" name="No" sourceRef="ExclusiveGateway_synResponseSent" targetRef="ScriptTask_4" />
       <bpmn2:sequenceFlow id="SequenceFlow_responseSent" name="Yes" sourceRef="ExclusiveGateway_synResponseSent" targetRef="prepareFalloutHandler_ScriptTask">
         <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{DELVfModVol_syncResponseSent == true}</bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
@@ -127,27 +127,27 @@
 deleteVfMod.executeMethod('prepareFalloutHandler', execution, isDebugLogEnabled)
 ]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_25" name="" sourceRef="prepareFalloutHandler_ScriptTask" targetRef="faultHandler_CallActivity"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_25" name="" sourceRef="prepareFalloutHandler_ScriptTask" targetRef="faultHandler_CallActivity" />
       <bpmn2:callActivity id="faultHandler_CallActivity" name="Call FalloutHandlerV1" calledElement="FalloutHandler">
         <bpmn2:extensionElements>
-          <camunda:in variables="all"/>
-          <camunda:out variables="all"/>
-          <camunda:in source="DELVfModVol_FalloutHandlerRequest" target="FalloutHandlerRequest"/>
-          <camunda:in source="mso-request-id" target="mso-request-id"/>
-          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode"/>
-          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse"/>
-          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse"/>
+          <camunda:in variables="all" />
+          <camunda:out variables="all" />
+          <camunda:in source="DELVfModVol_FalloutHandlerRequest" target="FalloutHandlerRequest" />
+          <camunda:in source="mso-request-id" target="mso-request-id" />
+          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+          <camunda:out source="FH_ResponseCode" target="FH_ResponseCode" />
+          <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" />
+          <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" />
         </bpmn2:extensionElements>
         <bpmn2:incoming>SequenceFlow_25</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
       </bpmn2:callActivity>
-      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="faultHandler_CallActivity" targetRef="EndEvent_1"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="faultHandler_CallActivity" targetRef="EndEvent_1" />
       <bpmn2:endEvent id="EndEvent_1">
         <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
-        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1"/>
+        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
       </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="ScriptTask_4" targetRef="prepareFalloutHandler_ScriptTask"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="ScriptTask_4" targetRef="prepareFalloutHandler_ScriptTask" />
     </bpmn2:subProcess>
     <bpmn2:scriptTask id="prepareDBInfraRequest_ScriptTask" name="Prepare DB Infra Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_35</bpmn2:incoming>
@@ -158,7 +158,7 @@
 
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_37" name="" sourceRef="prepareDBInfraRequest_ScriptTask" targetRef="callDBInfra_ServiceTask"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_37" name="" sourceRef="prepareDBInfraRequest_ScriptTask" targetRef="callDBInfra_ServiceTask" />
     <bpmn2:scriptTask id="postProcessAndCompletionRequest_ScriptTask" name="Prepare Completion Handler Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
@@ -167,55 +167,56 @@
 deleteVfMod.executeMethod('prepareCompletionHandlerRequest', execution, isDebugLogEnabled)
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="postProcessAndCompletionRequest_ScriptTask" targetRef="callCompleteMsoProcess_CallActivity"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="postProcessAndCompletionRequest_ScriptTask" targetRef="callCompleteMsoProcess_CallActivity" />
     <bpmn2:scriptTask id="ScriptTask_3" name="Set Success" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_24</bpmn2:outgoing>
       <bpmn2:script><![CDATA[// The following variable is checked by the unit test
 execution.setVariable("DELVfModVol_TransactionSuccessIndicator", true)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_24" name="" sourceRef="ScriptTask_3" targetRef="EndEvent_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_24" name="" sourceRef="ScriptTask_3" targetRef="EndEvent_2" />
     <bpmn2:callActivity id="callCompleteMsoProcess_CallActivity" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess">
       <bpmn2:extensionElements>
-        <camunda:in variables="all"/>
-        <camunda:out variables="all"/>
-        <camunda:in source="DELVfModVol_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode"/>
-        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse"/>
-        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse"/>
+        <camunda:in variables="all" />
+        <camunda:out variables="all" />
+        <camunda:in source="DELVfModVol_CompleteMsoProcessRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode" />
+        <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" />
+        <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="callCompleteMsoProcess_CallActivity" targetRef="ScriptTask_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="callCompleteMsoProcess_CallActivity" targetRef="ScriptTask_3" />
     <bpmn2:endEvent id="EndEvent_2" name="End">
       <bpmn2:incoming>SequenceFlow_24</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_3"/>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_3" />
     </bpmn2:endEvent>
     <bpmn2:serviceTask id="callDBInfra_ServiceTask" name="Call DB Infra Update">
       <bpmn2:extensionElements>
         <camunda:connector>
-          <camunda:connectorId>http-connector</camunda:connectorId>
           <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
             <camunda:inputParameter name="payload">${DELVfModVol_updateInfraRequest}</camunda:inputParameter>
             <camunda:inputParameter name="headers">
               <camunda:map>
                 <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
               </camunda:map>
             </camunda:inputParameter>
             <camunda:inputParameter name="method">POST</camunda:inputParameter>
             <camunda:outputParameter name="DELVfModVol_createDBResponse">${response}</camunda:outputParameter>
             <camunda:outputParameter name="DELVfModVol_dbReturnCode">${statusCode}</camunda:outputParameter>
           </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
         </camunda:connector>
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_37</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_27</bpmn2:outgoing>
     </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="callDBInfra_ServiceTask" targetRef="postProcessAndCompletionRequest_ScriptTask"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="callDBInfra_ServiceTask" targetRef="postProcessAndCompletionRequest_ScriptTask" />
     <bpmn2:scriptTask id="callRESTDeleteVolGrpId_ScriptTask" name="Call REST Delete AAI Vol Grp Id" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_vnfAdapterCallOK</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_35</bpmn2:outgoing>
@@ -223,7 +224,7 @@
 def deleteVfMod = new DeleteVfModuleVolumeInfraV1()
 deleteVfMod.executeMethod('deleteVolGrpId', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_35" name="" sourceRef="callRESTDeleteVolGrpId_ScriptTask" targetRef="prepareDBInfraRequest_ScriptTask"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_35" name="" sourceRef="callRESTDeleteVolGrpId_ScriptTask" targetRef="prepareDBInfraRequest_ScriptTask" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_2" name="Is call to VNF Adapter OK?" default="SequenceFlow_vnfAdapterCallNotOK">
       <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_vnfAdapterCallOK</bpmn2:outgoing>
@@ -234,334 +235,334 @@
     </bpmn2:sequenceFlow>
     <bpmn2:endEvent id="EndEvent_6">
       <bpmn2:incoming>SequenceFlow_vnfAdapterCallNotOK</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_5" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_5" errorRef="Error_1" />
     </bpmn2:endEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_vnfAdapterCallNotOK" name="" sourceRef="ExclusiveGateway_2" targetRef="EndEvent_6"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_vnfAdapterCallNotOK" name="" sourceRef="ExclusiveGateway_2" targetRef="EndEvent_6" />
   </bpmn2:process>
-  <bpmn2:error id="Error_2" errorCode="java.lang.Exception" name="java.lang.Exception"/>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
+  <bpmn2:error id="Error_2" name="java.lang.Exception" errorCode="java.lang.Exception" />
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DeleteVfModuleVolumeInfraV1">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_47" bpmnElement="deleteNetwork_startEvent">
-        <dc:Bounds height="36.0" width="36.0" x="103.0" y="94.0"/>
+        <dc:Bounds x="103" y="94" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="65.0" x="89.0" y="135.0"/>
+          <dc:Bounds x="89" y="135" width="65" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="355.0" y="72.0"/>
+        <dc:Bounds x="355" y="72" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_47" targetElement="_BPMNShape_ScriptTask_61">
-        <di:waypoint xsi:type="dc:Point" x="139.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="355.0" y="112.0"/>
+        <di:waypoint xsi:type="dc:Point" x="139" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="355" y="112" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="116.0" y="12.0"/>
+          <dc:Bounds x="116" y="12" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_62" bpmnElement="callAAIQuery_scriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="864.0" y="72.0"/>
+        <dc:Bounds x="864" y="72" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_3" bpmnElement="faultHandler_CallActivity">
-        <dc:Bounds height="80.0" width="100.0" x="438.0" y="360.0"/>
+        <dc:Bounds x="438" y="360" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_4" bpmnElement="callCompleteMsoProcess_CallActivity">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="985.0"/>
+        <dc:Bounds x="993" y="985" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_16" bpmnElement="subProcessException_SubProcess" isExpanded="true">
-        <dc:Bounds height="337.0" width="660.0" x="37.0" y="288.0"/>
+        <dc:Bounds x="37" y="288" width="660" height="337" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_50" bpmnElement="subProcessStart_StartEvent">
-        <dc:Bounds height="36.0" width="36.0" x="60.0" y="383.0"/>
+        <dc:Bounds x="60" y="383" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="67.0" x="45.0" y="424.0"/>
+          <dc:Bounds x="45" y="424" width="67" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_79" bpmnElement="prepareFalloutHandler_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="288.0" y="360.0"/>
+        <dc:Bounds x="288" y="360" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_80" bpmnElement="postProcessAndCompletionRequest_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="877.0"/>
+        <dc:Bounds x="993" y="877" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_83" bpmnElement="prepareDBInfraRequest_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="660.0"/>
+        <dc:Bounds x="993" y="660" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_86" bpmnElement="callDBInfra_ServiceTask">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="769.0"/>
+        <dc:Bounds x="993" y="769" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_61" targetElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="455.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="496.0" y="112.0"/>
+        <di:waypoint xsi:type="dc:Point" x="455" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="496" y="112" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="486.0" y="112.0"/>
+          <dc:Bounds x="486" y="112" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="sendSyncAckResponse_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="496.0" y="72.0"/>
+        <dc:Bounds x="496" y="72" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_35" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ExclusiveGateway_255">
-        <di:waypoint xsi:type="dc:Point" x="96.0" y="401.0"/>
-        <di:waypoint xsi:type="dc:Point" x="118.0" y="401.0"/>
-        <di:waypoint xsi:type="dc:Point" x="118.0" y="400.0"/>
-        <di:waypoint xsi:type="dc:Point" x="144.0" y="400.0"/>
+        <di:waypoint xsi:type="dc:Point" x="96" y="401" />
+        <di:waypoint xsi:type="dc:Point" x="118" y="401" />
+        <di:waypoint xsi:type="dc:Point" x="118" y="400" />
+        <di:waypoint xsi:type="dc:Point" x="144" y="400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="99.0" y="401.0"/>
+          <dc:Bounds x="99" y="401" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_38" bpmnElement="SequenceFlow_25" sourceElement="_BPMNShape_ScriptTask_79" targetElement="_BPMNShape_CallActivity_3">
-        <di:waypoint xsi:type="dc:Point" x="388.0" y="400.0"/>
-        <di:waypoint xsi:type="dc:Point" x="438.0" y="400.0"/>
+        <di:waypoint xsi:type="dc:Point" x="388" y="400" />
+        <di:waypoint xsi:type="dc:Point" x="438" y="400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="413.0" y="400.0"/>
+          <dc:Bounds x="413" y="400" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_40" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ServiceTask_86" targetElement="_BPMNShape_ScriptTask_80">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="849.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="877.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="849" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="877" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1258.0" y="857.0"/>
+          <dc:Bounds x="1258" y="857" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_42" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ScriptTask_80" targetElement="_BPMNShape_CallActivity_4">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="957.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="985.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="957" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="985" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1289.0" y="898.0"/>
+          <dc:Bounds x="1289" y="898" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_134" bpmnElement="callRESTDeleteVolGrpId_ScriptTask">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="528.0"/>
+        <dc:Bounds x="993" y="528" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_54" bpmnElement="SequenceFlow_35" sourceElement="_BPMNShape_ScriptTask_134" targetElement="_BPMNShape_ScriptTask_83">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="608.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="660.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="608" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="660" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1291.0" y="557.0"/>
+          <dc:Bounds x="1291" y="557" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_58" bpmnElement="SequenceFlow_37" sourceElement="_BPMNShape_ScriptTask_83" targetElement="_BPMNShape_ServiceTask_86">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="740.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="769.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="740" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="769" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1258.0" y="751.0"/>
+          <dc:Bounds x="1258" y="751" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_22" bpmnElement="callVnfAdapterDeleteSubflow_CallActivity">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="300.0"/>
+        <dc:Bounds x="993" y="300" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_160" bpmnElement="prepareVnfAdapterDelete_ScriptTask_1">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="180.0"/>
+        <dc:Bounds x="993" y="180" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_160" targetElement="_BPMNShape_CallActivity_22">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="260.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="300.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="260" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="300" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1112.0" y="280.0"/>
+          <dc:Bounds x="1112" y="280" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_CallActivity_22" targetElement="_BPMNShape_ExclusiveGateway_252">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="380.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="401.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1042.0" y="401.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1042.0" y="422.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="380" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="401" />
+        <di:waypoint xsi:type="dc:Point" x="1042" y="401" />
+        <di:waypoint xsi:type="dc:Point" x="1042" y="422" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1039.0" y="415.0"/>
+          <dc:Bounds x="1039" y="415" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_163" bpmnElement="EndEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="588.0" y="382.0"/>
+        <dc:Bounds x="588" y="382" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="606.0" y="423.0"/>
+          <dc:Bounds x="606" y="423" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_3" targetElement="_BPMNShape_EndEvent_163">
-        <di:waypoint xsi:type="dc:Point" x="538.0" y="400.0"/>
-        <di:waypoint xsi:type="dc:Point" x="588.0" y="400.0"/>
+        <di:waypoint xsi:type="dc:Point" x="538" y="400" />
+        <di:waypoint xsi:type="dc:Point" x="588" y="400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="558.0" y="400.0"/>
+          <dc:Bounds x="558" y="400" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_167" bpmnElement="EndEvent_2">
-        <dc:Bounds height="36.0" width="36.0" x="1025.0" y="1201.0"/>
+        <dc:Bounds x="1025" y="1201" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1029.0" y="1242.0"/>
+          <dc:Bounds x="1029" y="1242" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_CallActivity_4" targetElement="_BPMNShape_ScriptTask_241">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="1065.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="1093.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="1065" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="1093" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1258.0" y="1083.0"/>
+          <dc:Bounds x="1258" y="1083" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_234" bpmnElement="ScriptTask_4">
-        <dc:Bounds height="80.0" width="100.0" x="120.0" y="492.0"/>
+        <dc:Bounds x="120" y="492" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_ScriptTask_127" targetElement="_BPMNShape_ScriptTask_251">
-        <di:waypoint xsi:type="dc:Point" x="596.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="623.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="623.0" y="115.0"/>
-        <di:waypoint xsi:type="dc:Point" x="636.0" y="115.0"/>
+        <di:waypoint xsi:type="dc:Point" x="596" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="623" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="623" y="115" />
+        <di:waypoint xsi:type="dc:Point" x="636" y="115" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="613.0" y="112.0"/>
+          <dc:Bounds x="613" y="112" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_ScriptTask_62" targetElement="_BPMNShape_ExclusiveGateway_203">
-        <di:waypoint xsi:type="dc:Point" x="964.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1017.0" y="111.0"/>
+        <di:waypoint xsi:type="dc:Point" x="964" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="1017" y="111" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1067.0" y="113.0"/>
+          <dc:Bounds x="1067" y="113" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_203" bpmnElement="ExclusiveGateway_3" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="1017.0" y="86.0"/>
+        <dc:Bounds x="1017" y="86" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="102.0" x="984.0" y="60.0"/>
+          <dc:Bounds x="984" y="60" width="102" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_240" bpmnElement="ScriptTask_2">
-        <dc:Bounds height="80.0" width="100.0" x="1104.0" y="72.0"/>
+        <dc:Bounds x="1104" y="72" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ExclusiveGateway_203" targetElement="_BPMNShape_ScriptTask_160">
-        <di:waypoint xsi:type="dc:Point" x="1042.0" y="136.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="180.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1042" y="136" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="180" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1040.0" y="122.0"/>
+          <dc:Bounds x="1040" y="122" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_21" sourceElement="_BPMNShape_ExclusiveGateway_203" targetElement="_BPMNShape_ScriptTask_240">
-        <di:waypoint xsi:type="dc:Point" x="1067.0" y="111.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1085.0" y="111.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1085.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1104.0" y="112.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1067" y="111" />
+        <di:waypoint xsi:type="dc:Point" x="1085" y="111" />
+        <di:waypoint xsi:type="dc:Point" x="1085" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="1104" y="112" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1216.0" y="113.0"/>
+          <dc:Bounds x="1216" y="113" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_178" bpmnElement="EndEvent_5">
-        <dc:Bounds height="36.0" width="36.0" x="1242.0" y="95.0"/>
+        <dc:Bounds x="1242" y="95" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="1260.0" y="136.0"/>
+          <dc:Bounds x="1260" y="136" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ScriptTask_240" targetElement="_BPMNShape_EndEvent_178">
-        <di:waypoint xsi:type="dc:Point" x="1204.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1222.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1222.0" y="113.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1242.0" y="113.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1204" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="1222" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="1222" y="113" />
+        <di:waypoint xsi:type="dc:Point" x="1242" y="113" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1220.0" y="113.0"/>
+          <dc:Bounds x="1220" y="113" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_241" bpmnElement="ScriptTask_3">
-        <dc:Bounds height="80.0" width="100.0" x="993.0" y="1093.0"/>
+        <dc:Bounds x="993" y="1093" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_24" sourceElement="_BPMNShape_ScriptTask_241" targetElement="_BPMNShape_EndEvent_167">
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="1173.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="1201.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1043" y="1173" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="1201" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1040.0" y="1320.0"/>
+          <dc:Bounds x="1040" y="1320" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_251" bpmnElement="ScriptTask_callRestCloudRegion">
-        <dc:Bounds height="80.0" width="100.0" x="636.0" y="75.0"/>
+        <dc:Bounds x="636" y="75" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_223" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="774.0" y="89.0"/>
+        <dc:Bounds x="774" y="89" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="125.0" x="735.0" y="40.0"/>
+          <dc:Bounds x="735" y="40" width="125" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_215" bpmnElement="EndEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="781.0" y="170.0"/>
+        <dc:Bounds x="781" y="170" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="799.0" y="211.0"/>
+          <dc:Bounds x="799" y="211" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ExclusiveGateway_223" targetElement="_BPMNShape_EndEvent_215">
-        <di:waypoint xsi:type="dc:Point" x="798.0" y="139.0"/>
-        <di:waypoint xsi:type="dc:Point" x="798.0" y="153.0"/>
-        <di:waypoint xsi:type="dc:Point" x="799.0" y="153.0"/>
-        <di:waypoint xsi:type="dc:Point" x="799.0" y="170.0"/>
+        <di:waypoint xsi:type="dc:Point" x="798" y="139" />
+        <di:waypoint xsi:type="dc:Point" x="798" y="153" />
+        <di:waypoint xsi:type="dc:Point" x="799" y="153" />
+        <di:waypoint xsi:type="dc:Point" x="799" y="170" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="796.0" y="166.0"/>
+          <dc:Bounds x="796" y="166" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_251" targetElement="_BPMNShape_ExclusiveGateway_223">
-        <di:waypoint xsi:type="dc:Point" x="736.0" y="115.0"/>
-        <di:waypoint xsi:type="dc:Point" x="754.0" y="115.0"/>
-        <di:waypoint xsi:type="dc:Point" x="754.0" y="114.0"/>
-        <di:waypoint xsi:type="dc:Point" x="774.0" y="114.0"/>
+        <di:waypoint xsi:type="dc:Point" x="736" y="115" />
+        <di:waypoint xsi:type="dc:Point" x="754" y="115" />
+        <di:waypoint xsi:type="dc:Point" x="754" y="114" />
+        <di:waypoint xsi:type="dc:Point" x="774" y="114" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="752.0" y="114.0"/>
+          <dc:Bounds x="752" y="114" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ExclusiveGateway_223" targetElement="_BPMNShape_ScriptTask_62">
-        <di:waypoint xsi:type="dc:Point" x="824.0" y="114.0"/>
-        <di:waypoint xsi:type="dc:Point" x="844.0" y="114.0"/>
-        <di:waypoint xsi:type="dc:Point" x="844.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="864.0" y="112.0"/>
+        <di:waypoint xsi:type="dc:Point" x="824" y="114" />
+        <di:waypoint xsi:type="dc:Point" x="844" y="114" />
+        <di:waypoint xsi:type="dc:Point" x="844" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="864" y="112" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="841.0" y="113.0"/>
+          <dc:Bounds x="841" y="113" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_252" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="1017.0" y="422.0"/>
+        <dc:Bounds x="1017" y="422" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="164.0" x="960.0" y="477.0"/>
+          <dc:Bounds x="960" y="477" width="164" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_vnfAdapterCallOK" sourceElement="_BPMNShape_ExclusiveGateway_252" targetElement="_BPMNShape_ScriptTask_134">
-        <di:waypoint xsi:type="dc:Point" x="1042.0" y="472.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1043.0" y="528.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1042" y="472" />
+        <di:waypoint xsi:type="dc:Point" x="1043" y="528" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1040.0" y="500.0"/>
+          <dc:Bounds x="1040" y="500" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_236" bpmnElement="EndEvent_6">
-        <dc:Bounds height="36.0" width="36.0" x="1168.0" y="430.0"/>
+        <dc:Bounds x="1168" y="430" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="1186.0" y="471.0"/>
+          <dc:Bounds x="1186" y="471" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_vnfAdapterCallNotOK" sourceElement="_BPMNShape_ExclusiveGateway_252" targetElement="_BPMNShape_EndEvent_236">
-        <di:waypoint xsi:type="dc:Point" x="1067.0" y="447.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1117.0" y="447.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1117.0" y="448.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1168.0" y="448.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1067" y="447" />
+        <di:waypoint xsi:type="dc:Point" x="1117" y="447" />
+        <di:waypoint xsi:type="dc:Point" x="1117" y="448" />
+        <di:waypoint xsi:type="dc:Point" x="1168" y="448" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_255" bpmnElement="ExclusiveGateway_synResponseSent" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="144.0" y="375.0"/>
+        <dc:Bounds x="144" y="375" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="129.0" x="106.0" y="439.0"/>
+          <dc:Bounds x="106" y="439" width="129" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_responseNotSent" sourceElement="_BPMNShape_ExclusiveGateway_255" targetElement="_BPMNShape_ScriptTask_234">
-        <di:waypoint xsi:type="dc:Point" x="169.0" y="425.0"/>
-        <di:waypoint xsi:type="dc:Point" x="169.0" y="458.0"/>
-        <di:waypoint xsi:type="dc:Point" x="170.0" y="458.0"/>
-        <di:waypoint xsi:type="dc:Point" x="170.0" y="492.0"/>
+        <di:waypoint xsi:type="dc:Point" x="169" y="425" />
+        <di:waypoint xsi:type="dc:Point" x="169" y="458" />
+        <di:waypoint xsi:type="dc:Point" x="170" y="458" />
+        <di:waypoint xsi:type="dc:Point" x="170" y="492" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="159.0" y="458.0"/>
+          <dc:Bounds x="159" y="458" width="22" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_responseSent" sourceElement="_BPMNShape_ExclusiveGateway_255" targetElement="_BPMNShape_ScriptTask_79">
-        <di:waypoint xsi:type="dc:Point" x="194.0" y="400.0"/>
-        <di:waypoint xsi:type="dc:Point" x="288.0" y="400.0"/>
+        <di:waypoint xsi:type="dc:Point" x="194" y="400" />
+        <di:waypoint xsi:type="dc:Point" x="288" y="400" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="204.0" y="400.0"/>
+          <dc:Bounds x="204" y="400" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ScriptTask_234" targetElement="_BPMNShape_ScriptTask_79">
-        <di:waypoint xsi:type="dc:Point" x="220.0" y="532.0"/>
-        <di:waypoint xsi:type="dc:Point" x="254.0" y="532.0"/>
-        <di:waypoint xsi:type="dc:Point" x="336.0" y="532.0"/>
-        <di:waypoint xsi:type="dc:Point" x="336.0" y="508.0"/>
-        <di:waypoint xsi:type="dc:Point" x="336.0" y="482.0"/>
-        <di:waypoint xsi:type="dc:Point" x="337.0" y="440.0"/>
+        <di:waypoint xsi:type="dc:Point" x="220" y="532" />
+        <di:waypoint xsi:type="dc:Point" x="254" y="532" />
+        <di:waypoint xsi:type="dc:Point" x="336" y="532" />
+        <di:waypoint xsi:type="dc:Point" x="336" y="508" />
+        <di:waypoint xsi:type="dc:Point" x="336" y="482" />
+        <di:waypoint xsi:type="dc:Point" x="337" y="440" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="317.0" y="532.0"/>
+          <dc:Bounds x="317" y="532" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/ReplaceVnfInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/ReplaceVnfInfra.bpmn
new file mode 100644
index 0000000..6c5e8f6
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/ReplaceVnfInfra.bpmn
@@ -0,0 +1,1177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_F0omAMXGEeW834CKd-K10Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+  <bpmn2:process id="ReplaceVnfInfra" name="ReplaceVnfInfra" isExecutable="true">
+    <bpmn2:scriptTask id="ScriptTask_1" name="Send Synch Response" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0y0jt4l</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.sendSynchResponse(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="Task_1rxiqe1" targetRef="ExclusiveGateway_045e1uz" />
+    <bpmn2:scriptTask id="PreProcessRequest" name="Pre-Process Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.preProcessRequest(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="PreProcessRequest" targetRef="ScriptTask_1" />
+    <bpmn2:callActivity id="CallActivity_1" name="Completion Handler" calledElement="CompleteMsoProcess">
+      <bpmn2:extensionElements>
+        <camunda:in source="RPLVnfI_CompletionHandlerRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_4" />
+    <bpmn2:endEvent id="EndEvent_1" name="TheEnd">
+      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_5" />
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="ScriptTask_4" name="Set Success Indicator" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[// The following variable is checked by the unit test
+execution.setVariable("UpdateVfModuleInfraSuccessIndicator", true)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_4" targetRef="EndEvent_1" />
+    <bpmn2:scriptTask id="ScriptTask_10" name="Completion Handler (prep)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.completionHandlerPrep(execution, 'RPLVnfI_CompletionHandlerRequest')
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_10" targetRef="CallActivity_1" />
+    <bpmn2:subProcess id="SubProcess_1" name="Error Handler" triggeredByEvent="true">
+      <bpmn2:startEvent id="StartEvent_3" name="Catch All Errors">
+        <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />
+      </bpmn2:startEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_3" />
+      <bpmn2:scriptTask id="ScriptTask_3" name="Fallout Handler (prep)" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVfModuleInfra()
+uvfm.falloutHandlerPrep(execution, 'RPLVnfI_FalloutHandlerRequest')
+]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:sequenceFlow id="SequenceFlow_7" sourceRef="ScriptTask_3" targetRef="CallActivity_2" />
+      <bpmn2:callActivity id="CallActivity_2" name="Fallout Handler" calledElement="FalloutHandler">
+        <bpmn2:extensionElements>
+          <camunda:in source="RPLVnfI_FalloutHandlerRequest" target="FalloutHandlerRequest" />
+          <camunda:in source="mso-request-id" target="mso-request-id" />
+          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        </bpmn2:extensionElements>
+        <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
+      </bpmn2:callActivity>
+      <bpmn2:endEvent id="EndEvent_2">
+        <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
+        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
+      </bpmn2:endEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_2" targetRef="EndEvent_2" />
+    </bpmn2:subProcess>
+    <bpmn2:endEvent id="EndEvent_3">
+      <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2" />
+    </bpmn2:endEvent>
+    <bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="SubProcess_1">
+      <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" />
+    </bpmn2:boundaryEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_3" />
+    <bpmn2:startEvent id="StartEvent_1" name="Start">
+      <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="StartEvent_1" targetRef="PreProcessRequest" />
+    <bpmn2:callActivity id="ScriptTask_6" name="DoDeleteVnfAndModules" calledElement="DoDeleteVnfAndModules">
+      <bpmn2:extensionElements>
+        <camunda:in source="RPLVnfI_requestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="RPLVnfI_vnfId" target="vnfId" />
+        <camunda:in source="RPLVnfI_serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="RPLVnfI_sdncVersion" target="sdncVersion" />
+        <camunda:in source="RPLVnfI_cloudConfiguration" target="cloudConfiguration" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_19ba94v</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0gzzeru</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="no" sourceRef="ExclusiveGateway_0l2z6wc" targetRef="ScriptTask_10" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1w35ov3" sourceRef="Task_1gg76h7" targetRef="Task_1opcb4j" />
+    <bpmn2:callActivity id="Task_1gg76h7" name="Decompose Service" calledElement="DecomposeService">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="RPLVnfI_serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="serviceDecomposition" target="serviceDecomposition" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0y0jt4l</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1w35ov3</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_053qjfy" sourceRef="Task_1opcb4j" targetRef="Task_0vy2zge" />
+    <bpmn2:scriptTask id="Task_1opcb4j" name="Get VnfResourceDecomposition" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1w35ov3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_053qjfy</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.getVnfResourceDecomposition(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0y0jt4l" sourceRef="ScriptTask_1" targetRef="Task_1gg76h7" />
+    <bpmn2:scriptTask id="Task_1rxiqe1" name="Check If VNF Is In Maintenance in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_16mo99z</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_193t8ts</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.checkIfVnfInMaintInAAI(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0usxnlk" sourceRef="Task_0vy2zge" targetRef="ExclusiveGateway_0q323wc" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1bkhs8m" name="no" sourceRef="ExclusiveGateway_0ud5uwa" targetRef="Task_1dtbnuy" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0gzzeru" sourceRef="ScriptTask_6" targetRef="ExclusiveGateway_0ulrq9g" />
+    <bpmn2:scriptTask id="Task_0ap39ka" name="Set VNF inMaintenance Flag in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0baosqi</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_18u8p2k</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0k3fx7p</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.setVnfInMaintFlagInAAI(execution, true)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1drglpt" name="Unset VNF In Maintenance Flag in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_19lg15d</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1lsfn19</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_12mfil6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.setVnfInMaintFlagInAAI(execution, false)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_0vy2zge" name="Check If Physical Servers Are Locked in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_053qjfy</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0usxnlk</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.checkIfPserversInMaintInAAI(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0xx8y1s" sourceRef="Task_1dtbnuy" targetRef="ExclusiveGateway_1slvyx2" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0a6pdza" sourceRef="Task_1fj63ov" targetRef="ExclusiveGateway_1ichg7h" />
+    <bpmn2:sequenceFlow id="SequenceFlow_13h26h9" sourceRef="Task_1cfkcss" targetRef="ExclusiveGateway_1etgtgi" />
+    <bpmn2:scriptTask id="Task_1dtbnuy" name="Call APP-C VNF Lock" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1bkhs8m</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0eueu1t</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0xx8y1s</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.Lock)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1fj63ov" name="Call APP-C Health Check" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0qy68ib</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1sla5dr</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0a6pdza</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.HealthCheck)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1cfkcss" name="Call APP-C VNF Graceful Stop" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0q0qan8</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0iektwg</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_13h26h9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.Stop)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1uno5rs" sourceRef="Task_1hdg951" targetRef="ExclusiveGateway_02tj4dw" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1c79909" sourceRef="Task_1ca5ctq" targetRef="ExclusiveGateway_1gn5lab" />
+    <bpmn2:scriptTask id="Task_1hdg951" name="Call APP-C VNF Start" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_04zwhw4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1uno5rs</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.Start)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1ca5ctq" name="Call APP-C Health Check" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_162mm0m</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1hx1ur7</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1c79909</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.HealthCheck)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1xfbwpi" sourceRef="Task_1sove95" targetRef="ExclusiveGateway_06mv93h" />
+    <bpmn2:scriptTask id="Task_1sove95" name="Call APP-C VNF Unlock" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_197t3qk</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0ukzynj</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1xfbwpi</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.runAppcCommand(execution, Action.Unlock)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0q323wc" name="Error on PServers Check?" default="SequenceFlow_16mo99z">
+      <bpmn2:incoming>SequenceFlow_0usxnlk</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_16mo99z</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1qmz2ez</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_16mo99z" name="no" sourceRef="ExclusiveGateway_0q323wc" targetRef="Task_1rxiqe1" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_045e1uz" name="Error On inMaintenance Check?" default="SequenceFlow_0baosqi">
+      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0baosqi</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_03rkfbo</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0baosqi" name="no" sourceRef="ExclusiveGateway_045e1uz" targetRef="Task_0ap39ka" />
+    <bpmn2:callActivity id="Task_0q5cdit" name="Rainy Day Handler" calledElement="RainyDayHandler">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="RPLVnfI_serviceType" target="serviceType" />
+        <camunda:in source="RPLVnfI_nfRole" target="vnfType" />
+        <camunda:in source="RPLVnfI_currentActivity" target="currentActivity" />
+        <camunda:in source="RPLVnfI_workStep" target="workStep" />
+        <camunda:in source="RPLVnfI_failedActivity" target="failedActivity" />
+        <camunda:in source="RPLVnfI_errorCode" target="errorCode" />
+        <camunda:in source="RPLVnfI_errorText" target="errorText" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="handlingCode" target="RPLVnfI_disposition" />
+        <camunda:in source="RPLVnfI_requestorId" target="requestorId" />
+        <camunda:out source="taskId" target="RPLVnfI_taskId" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_1qmz2ez</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_03rkfbo</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1lsm3bn</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0bduwog</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0uwar5b</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0i7hfj2</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_13yjc85</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0waedj5</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1hg9c2l</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0gej71y</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0pfydeg</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_10ek8l4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0v0u7mf</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qmz2ez" name="yes" sourceRef="ExclusiveGateway_0q323wc" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_03rkfbo" name="yes" sourceRef="ExclusiveGateway_045e1uz" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0v0u7mf" sourceRef="Task_0q5cdit" targetRef="ExclusiveGateway_0xlxgl0" />
+    <bpmn2:task id="Task_0zbogrm" name="Rollback Processing">
+      <bpmn2:incoming>SequenceFlow_1qr8msw</bpmn2:incoming>
+    </bpmn2:task>
+    <bpmn2:sequenceFlow id="SequenceFlow_0vpd06n" name="Abort" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="Task_1tg549h">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_disposition") == "Abort"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qr8msw" name="Rollback" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="Task_0zbogrm">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_disposition") == "Rollback"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0ud5uwa" name="Eror on inMaintenance Set?" default="SequenceFlow_1bkhs8m">
+      <bpmn2:incoming>SequenceFlow_0k3fx7p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1bkhs8m</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1lsm3bn</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0k3fx7p" sourceRef="Task_0ap39ka" targetRef="ExclusiveGateway_0ud5uwa" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1lsm3bn" name="yes" sourceRef="ExclusiveGateway_0ud5uwa" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1slvyx2" name="Error on VNF Lock?" default="SequenceFlow_0qy68ib">
+      <bpmn2:incoming>SequenceFlow_0xx8y1s</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0qy68ib</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0bduwog</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0qy68ib" name="no" sourceRef="ExclusiveGateway_1slvyx2" targetRef="Task_1fj63ov" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1ichg7h" name="Error on Pre Health Check?" default="SequenceFlow_0q0qan8">
+      <bpmn2:incoming>SequenceFlow_0a6pdza</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0q0qan8</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0uwar5b</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0q0qan8" name="no" sourceRef="ExclusiveGateway_1ichg7h" targetRef="Task_1cfkcss" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1etgtgi" name="Error on VNF Stop?" default="SequenceFlow_1c0vdki">
+      <bpmn2:incoming>SequenceFlow_13h26h9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1c0vdki</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0i7hfj2</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_1c0vdki" name="no" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0eae8go" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0bduwog" name="yes" sourceRef="ExclusiveGateway_1slvyx2" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0uwar5b" name="yes" sourceRef="ExclusiveGateway_1ichg7h" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0i7hfj2" name="yes" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0ulrq9g" name="Error on DoDeleteVnfAndNModules?" default="SequenceFlow_0bxgny0">
+      <bpmn2:incoming>SequenceFlow_0gzzeru</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_10ek8l4</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0bxgny0</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_04zwhw4" name="no" sourceRef="ExclusiveGateway_084iffr" targetRef="Task_1hdg951" />
+    <bpmn2:sequenceFlow id="SequenceFlow_10ek8l4" name="yes" sourceRef="ExclusiveGateway_0ulrq9g" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_02tj4dw" name="Error on VNF Start?" default="SequenceFlow_162mm0m">
+      <bpmn2:incoming>SequenceFlow_1uno5rs</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_162mm0m</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0waedj5</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_162mm0m" name="no" sourceRef="ExclusiveGateway_02tj4dw" targetRef="Task_1ca5ctq" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1gn5lab" name="Error on Post Health Check?" default="SequenceFlow_197t3qk">
+      <bpmn2:incoming>SequenceFlow_1c79909</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_197t3qk</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1hg9c2l</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_197t3qk" name="no" sourceRef="ExclusiveGateway_1gn5lab" targetRef="Task_1sove95" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_06mv93h" name="Error on VNF Unlock?" default="SequenceFlow_19lg15d">
+      <bpmn2:incoming>SequenceFlow_1xfbwpi</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_19lg15d</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0gej71y</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_19lg15d" name="no" sourceRef="ExclusiveGateway_06mv93h" targetRef="Task_1drglpt" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0l2z6wc" name="Erorr on inMaintenance Unset?" default="SequenceFlow_3">
+      <bpmn2:incoming>SequenceFlow_12mfil6</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_13yjc85</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_12mfil6" sourceRef="Task_1drglpt" targetRef="ExclusiveGateway_0l2z6wc" />
+    <bpmn2:sequenceFlow id="SequenceFlow_13yjc85" name="yes" sourceRef="ExclusiveGateway_0l2z6wc" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0waedj5" name="yes" sourceRef="ExclusiveGateway_02tj4dw" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1hg9c2l" name="yes" sourceRef="ExclusiveGateway_1gn5lab" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0gej71y" name="yes" sourceRef="ExclusiveGateway_06mv93h" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:scriptTask id="Task_1tg549h" name="Abort Processing" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0vpd06n</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_051zp79</bpmn2:incoming>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.abortProcessing(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0xlxgl0" name="Check Disposition">
+      <bpmn2:incoming>SequenceFlow_0v0u7mf</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0vpd06n</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1qr8msw</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_05gpym3</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0y82zzx" name="Which step to skip?" default="SequenceFlow_051zp79">
+      <bpmn2:incoming>SequenceFlow_05gpym3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1sla5dr</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0iektwg</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1ttepat</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1hx1ur7</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0ukzynj</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1lsfn19</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_051zp79</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_193t8ts</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_18u8p2k</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0eueu1t</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_05gpym3" name="Skip" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="ExclusiveGateway_0y82zzx">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_disposition") == "Skip"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1sla5dr" name="Skip APP-C VNF Lock" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1fj63ov">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "LockVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0iektwg" name="Skip APP-C VNF Pre Health Check" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1cfkcss">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "HealthCheckVNF1"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1ttepat" name="Skip APP-C VNF Stop" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_0eae8go">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "StopVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1hx1ur7" name="Skip APP-C VNF Start" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1ca5ctq">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "StartVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0ukzynj" name="Skip APP-C Post Health Check" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1sove95">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "HealthCheckVNF2"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1lsfn19" name="Skip APP-C VNF Unlock" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1drglpt">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "UnlockVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_19ba94v" sourceRef="Task_0eae8go" targetRef="ScriptTask_6" />
+    <bpmn2:scriptTask id="Task_0eae8go" name="Prepare DoDeleteVnfAndModules" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1c0vdki</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1ttepat</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_19ba94v</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.prepDoDeleteVnfAndModules(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_040hi91" name="Prepare DoCreateVnfAndModules" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0bxgny0</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1qm0ygo</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new ReplaceVnfInfra()
+uvfm.prepDoCreateVnfAndModules(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:callActivity id="Task_15hpowt" name="DoCreateVnfAndModules" calledElement="DoCreateVnfAndModules">
+      <bpmn2:incoming>SequenceFlow_1qm0ygo</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0he2w4b</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_084iffr" name="Error on DoCreateVnfModules?">
+      <bpmn2:incoming>SequenceFlow_0he2w4b</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0pfydeg</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_04zwhw4</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0pfydeg" name="yes" sourceRef="ExclusiveGateway_084iffr" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0bxgny0" name="no" sourceRef="ExclusiveGateway_0ulrq9g" targetRef="Task_040hi91" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1qm0ygo" sourceRef="Task_040hi91" targetRef="Task_15hpowt" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0he2w4b" sourceRef="Task_15hpowt" targetRef="ExclusiveGateway_084iffr" />
+    <bpmn2:sequenceFlow id="SequenceFlow_051zp79" name="" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1tg549h" />
+    <bpmn2:sequenceFlow id="SequenceFlow_193t8ts" name="Skip Check if PServers Locked in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1rxiqe1">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "checkIfPserversInMaintInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_18u8p2k" name="Skip If VNF Is in Maint in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_0ap39ka">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "checkIfVnfInMaintInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0eueu1t" name="Skip Set VNF In Maint in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1dtbnuy">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("RPLVnfI_workStep") == "setVnfInMaintFlagInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+  </bpmn2:process>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ReplaceVnfInfra">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_50" bpmnElement="StartEvent_1">
+        <dc:Bounds x="97" y="72" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="103" y="113" width="23" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_125" bpmnElement="EndEvent_1">
+        <dc:Bounds x="595" y="975" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="594" y="1016" width="38" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ScriptTask_124">
+        <di:waypoint xsi:type="dc:Point" x="133" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="209" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="171" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_124" bpmnElement="PreProcessRequest">
+        <dc:Bounds x="209" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_124" targetElement="_BPMNShape_ScriptTask_125">
+        <di:waypoint xsi:type="dc:Point" x="309" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="373" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="341" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_125" bpmnElement="ScriptTask_1">
+        <dc:Bounds x="373" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_125">
+        <di:waypoint xsi:type="dc:Point" x="525" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="ScriptTask_4">
+        <dc:Bounds x="439" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_127" targetElement="_BPMNShape_EndEvent_125">
+        <di:waypoint xsi:type="dc:Point" x="539" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="595" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="716" y="834" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_133" bpmnElement="ScriptTask_10">
+        <dc:Bounds x="139" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_27" bpmnElement="CallActivity_1">
+        <dc:Bounds x="289" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_133" targetElement="_BPMNShape_CallActivity_27">
+        <di:waypoint xsi:type="dc:Point" x="239" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="289" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="264" y="999" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_17" bpmnElement="SubProcess_1" isExpanded="true">
+        <dc:Bounds x="85" y="1189" width="565" height="241" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_52" bpmnElement="StartEvent_3">
+        <dc:Bounds x="149" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="128" y="1324" width="77" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_136" bpmnElement="ScriptTask_3">
+        <dc:Bounds x="229" y="1261" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_52" targetElement="_BPMNShape_ScriptTask_136">
+        <di:waypoint xsi:type="dc:Point" x="185" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="229" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="232" y="1601" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_136" targetElement="_BPMNShape_CallActivity_28">
+        <di:waypoint xsi:type="dc:Point" x="329" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="397" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="345" y="1301" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_126" bpmnElement="EndEvent_2">
+        <dc:Bounds x="553" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="571" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_43" bpmnElement="BoundaryEvent_1">
+        <dc:Bounds x="632" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="650" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_127" bpmnElement="EndEvent_3">
+        <dc:Bounds x="726" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="744" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_BoundaryEvent_43" targetElement="_BPMNShape_EndEvent_127">
+        <di:waypoint xsi:type="dc:Point" x="668" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="726" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="697" y="1286" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_28" bpmnElement="CallActivity_2">
+        <dc:Bounds x="397" y="1261" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_CallActivity_27" targetElement="_BPMNShape_ScriptTask_127">
+        <di:waypoint xsi:type="dc:Point" x="389" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="439" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="432" y="961" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_28" targetElement="_BPMNShape_EndEvent_126">
+        <di:waypoint xsi:type="dc:Point" x="497" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="553" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="390" y="1361" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_181" bpmnElement="ScriptTask_6">
+        <dc:Bounds x="289" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_181" targetElement="_BPMNShape_ScriptTask_133">
+        <di:waypoint xsi:type="dc:Point" x="1130" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="1130" y="900" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="900" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1109" y="862" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1w35ov3_di" bpmnElement="SequenceFlow_1w35ov3">
+        <di:waypoint xsi:type="dc:Point" x="655" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="718" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="687" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_0qfx7sz_di" bpmnElement="Task_1gg76h7">
+        <dc:Bounds x="555" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_053qjfy_di" bpmnElement="SequenceFlow_053qjfy">
+        <di:waypoint xsi:type="dc:Point" x="818" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="982" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="982" y="156" />
+        <di:waypoint xsi:type="dc:Point" x="103" y="156" />
+        <di:waypoint xsi:type="dc:Point" x="103" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="131" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="543" y="141" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_08xzuox_di" bpmnElement="Task_1opcb4j">
+        <dc:Bounds x="718" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0y0jt4l_di" bpmnElement="SequenceFlow_0y0jt4l">
+        <di:waypoint xsi:type="dc:Point" x="473" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="555" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="514" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_19pf9z8_di" bpmnElement="Task_1rxiqe1">
+        <dc:Bounds x="425" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0usxnlk_di" bpmnElement="SequenceFlow_0usxnlk">
+        <di:waypoint xsi:type="dc:Point" x="231" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="262" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1bkhs8m_di" bpmnElement="SequenceFlow_1bkhs8m">
+        <di:waypoint xsi:type="dc:Point" x="896" y="264" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="339" />
+        <di:waypoint xsi:type="dc:Point" x="98" y="339" />
+        <di:waypoint xsi:type="dc:Point" x="98" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="905" y="313.95238095238096" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gzzeru_di" bpmnElement="SequenceFlow_0gzzeru">
+        <di:waypoint xsi:type="dc:Point" x="389" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="441" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="415" y="584" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0wa4zya_di" bpmnElement="Task_0ap39ka">
+        <dc:Bounds x="714" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0sgm9bu_di" bpmnElement="Task_1drglpt">
+        <dc:Bounds x="960" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_16jtt5t_di" bpmnElement="Task_0vy2zge">
+        <dc:Bounds x="131" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0xx8y1s_di" bpmnElement="SequenceFlow_0xx8y1s">
+        <di:waypoint xsi:type="dc:Point" x="239" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="266" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0a6pdza_di" bpmnElement="SequenceFlow_0a6pdza">
+        <di:waypoint xsi:type="dc:Point" x="525" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_13h26h9_di" bpmnElement="SequenceFlow_13h26h9">
+        <di:waypoint xsi:type="dc:Point" x="814" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_02wc9i0_di" bpmnElement="Task_1dtbnuy">
+        <dc:Bounds x="139" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0mz2hdm_di" bpmnElement="Task_1fj63ov">
+        <dc:Bounds x="425" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1wagy2o_di" bpmnElement="Task_1cfkcss">
+        <dc:Bounds x="714" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1uno5rs_di" bpmnElement="SequenceFlow_1uno5rs">
+        <di:waypoint xsi:type="dc:Point" x="239" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="266" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1c79909_di" bpmnElement="SequenceFlow_1c79909">
+        <di:waypoint xsi:type="dc:Point" x="525" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_13zephm_di" bpmnElement="Task_1hdg951">
+        <dc:Bounds x="139" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_11xqphb_di" bpmnElement="Task_1ca5ctq">
+        <dc:Bounds x="425" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1xfbwpi_di" bpmnElement="SequenceFlow_1xfbwpi">
+        <di:waypoint xsi:type="dc:Point" x="814" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0a4ovfa_di" bpmnElement="Task_1sove95">
+        <dc:Bounds x="714" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0q323wc_di" bpmnElement="ExclusiveGateway_0q323wc" isMarkerVisible="true">
+        <dc:Bounds x="291.803" y="212" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="274" y="262" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_16mo99z_di" bpmnElement="SequenceFlow_16mo99z">
+        <di:waypoint xsi:type="dc:Point" x="342" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="373" y="213" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_045e1uz_di" bpmnElement="ExclusiveGateway_045e1uz" isMarkerVisible="true">
+        <dc:Bounds x="601" y="212" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="589" y="262" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0baosqi_di" bpmnElement="SequenceFlow_0baosqi">
+        <di:waypoint xsi:type="dc:Point" x="651" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="673" y="214" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_1k5n5d1_di" bpmnElement="Task_0q5cdit">
+        <dc:Bounds x="1132" y="470" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qmz2ez_di" bpmnElement="SequenceFlow_1qmz2ez">
+        <di:waypoint xsi:type="dc:Point" x="317" y="212" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="191" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="191" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="196" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_03rkfbo_di" bpmnElement="SequenceFlow_03rkfbo">
+        <di:waypoint xsi:type="dc:Point" x="626" y="212" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="187" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="187" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="683" y="166" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0v0u7mf_di" bpmnElement="SequenceFlow_0v0u7mf">
+        <di:waypoint xsi:type="dc:Point" x="1232" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1314" y="510" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1273" y="495" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="Task_0zbogrm_di" bpmnElement="Task_0zbogrm">
+        <dc:Bounds x="1438" y="470" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0vpd06n_di" bpmnElement="SequenceFlow_0vpd06n">
+        <di:waypoint xsi:type="dc:Point" x="1339" y="485" />
+        <di:waypoint xsi:type="dc:Point" x="1339" y="373" />
+        <di:waypoint xsi:type="dc:Point" x="1438" y="373" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1390" y="377" width="26" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qr8msw_di" bpmnElement="SequenceFlow_1qr8msw">
+        <di:waypoint xsi:type="dc:Point" x="1364" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1405" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1405" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1438" y="510" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1380" y="515" width="42" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0ud5uwa_di" bpmnElement="ExclusiveGateway_0ud5uwa" isMarkerVisible="true">
+        <dc:Bounds x="871.1194471865745" y="211.86673247778873" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="904" y="257.86673247778873" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0k3fx7p_di" bpmnElement="SequenceFlow_0k3fx7p">
+        <di:waypoint xsi:type="dc:Point" x="814" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1lsm3bn_di" bpmnElement="SequenceFlow_1lsm3bn">
+        <di:waypoint xsi:type="dc:Point" x="921" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1044" y="214" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1slvyx2_di" bpmnElement="ExclusiveGateway_1slvyx2" isMarkerVisible="true">
+        <dc:Bounds x="292" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="283" y="452" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0qy68ib_di" bpmnElement="SequenceFlow_0qy68ib">
+        <di:waypoint xsi:type="dc:Point" x="342" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="412" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1ichg7h_di" bpmnElement="ExclusiveGateway_1ichg7h" isMarkerVisible="true">
+        <dc:Bounds x="601" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="590" y="452" width="72" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0q0qan8_di" bpmnElement="SequenceFlow_0q0qan8">
+        <di:waypoint xsi:type="dc:Point" x="651" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="677" y="412" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1etgtgi_di" bpmnElement="ExclusiveGateway_1etgtgi" isMarkerVisible="true">
+        <dc:Bounds x="870.9141164856861" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="909" y="445" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1c0vdki_di" bpmnElement="SequenceFlow_1c0vdki">
+        <di:waypoint xsi:type="dc:Point" x="896" y="452" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="507" />
+        <di:waypoint xsi:type="dc:Point" x="90" y="507" />
+        <di:waypoint xsi:type="dc:Point" x="90" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="131" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="906" y="484" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0bduwog_di" bpmnElement="SequenceFlow_0bduwog">
+        <di:waypoint xsi:type="dc:Point" x="317" y="402" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="375" y="356" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0uwar5b_di" bpmnElement="SequenceFlow_0uwar5b">
+        <di:waypoint xsi:type="dc:Point" x="626" y="402" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="359" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="359" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="676" y="367" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0i7hfj2_di" bpmnElement="SequenceFlow_0i7hfj2">
+        <di:waypoint xsi:type="dc:Point" x="921" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1044" y="412" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0ulrq9g_di" bpmnElement="ExclusiveGateway_0ulrq9g" isMarkerVisible="true">
+        <dc:Bounds x="441" y="574" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="445" y="631" width="88" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_04zwhw4_di" bpmnElement="SequenceFlow_04zwhw4">
+        <di:waypoint xsi:type="dc:Point" x="896" y="625" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="683" />
+        <di:waypoint xsi:type="dc:Point" x="91" y="683" />
+        <di:waypoint xsi:type="dc:Point" x="91" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="94" y="740.2320415029827" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_10ek8l4_di" bpmnElement="SequenceFlow_10ek8l4">
+        <di:waypoint xsi:type="dc:Point" x="466" y="574" />
+        <di:waypoint xsi:type="dc:Point" x="466" y="530" />
+        <di:waypoint xsi:type="dc:Point" x="1132" y="530" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1039" y="503.5367415795749" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_02tj4dw_di" bpmnElement="ExclusiveGateway_02tj4dw" isMarkerVisible="true">
+        <dc:Bounds x="292.1076011846002" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="284" y="835" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_162mm0m_di" bpmnElement="SequenceFlow_162mm0m">
+        <di:waypoint xsi:type="dc:Point" x="342" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1gn5lab_di" bpmnElement="ExclusiveGateway_1gn5lab" isMarkerVisible="true">
+        <dc:Bounds x="601.1076011846002" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="591" y="835" width="72" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_197t3qk_di" bpmnElement="SequenceFlow_197t3qk">
+        <di:waypoint xsi:type="dc:Point" x="651.1076011846002" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="677" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_06mv93h_di" bpmnElement="ExclusiveGateway_06mv93h" isMarkerVisible="true">
+        <dc:Bounds x="871" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="862" y="835" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_19lg15d_di" bpmnElement="SequenceFlow_19lg15d">
+        <di:waypoint xsi:type="dc:Point" x="921" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="960" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="935" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0l2z6wc_di" bpmnElement="ExclusiveGateway_0l2z6wc" isMarkerVisible="true">
+        <dc:Bounds x="1105.1076011846003" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1145" y="833" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_12mfil6_di" bpmnElement="SequenceFlow_12mfil6">
+        <di:waypoint xsi:type="dc:Point" x="1060" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1105" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1083" y="785" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_13yjc85_di" bpmnElement="SequenceFlow_13yjc85">
+        <di:waypoint xsi:type="dc:Point" x="1155" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1160" y="795" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0waedj5_di" bpmnElement="SequenceFlow_0waedj5">
+        <di:waypoint xsi:type="dc:Point" x="317" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="711" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="711" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="370" y="716" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1hg9c2l_di" bpmnElement="SequenceFlow_1hg9c2l">
+        <di:waypoint xsi:type="dc:Point" x="626" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="714" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="714" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="669" y="717" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gej71y_di" bpmnElement="SequenceFlow_0gej71y">
+        <di:waypoint xsi:type="dc:Point" x="896" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="720" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="720" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="905" y="738" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1lb0lk5_di" bpmnElement="Task_1tg549h">
+        <dc:Bounds x="1438" y="333" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1gmvi7n_di" bpmnElement="ExclusiveGateway_0xlxgl0" isMarkerVisible="true">
+        <dc:Bounds x="1314" y="485" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1295" y="534.2201382033564" width="87" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0y82zzx_di" bpmnElement="ExclusiveGateway_0y82zzx" isMarkerVisible="true">
+        <dc:Bounds x="1463" y="671" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1522" y="684" width="69" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_05gpym3_di" bpmnElement="SequenceFlow_05gpym3">
+        <di:waypoint xsi:type="dc:Point" x="1339" y="535" />
+        <di:waypoint xsi:type="dc:Point" x="1339" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="1490" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="1489" y="672" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1404" y="633" width="21" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1sla5dr_di" bpmnElement="SequenceFlow_1sla5dr">
+        <di:waypoint xsi:type="dc:Point" x="1463" y="696" />
+        <di:waypoint xsi:type="dc:Point" x="440" y="696" />
+        <di:waypoint xsi:type="dc:Point" x="440" y="467" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1227" y="699.0112438804176" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0iektwg_di" bpmnElement="SequenceFlow_0iektwg">
+        <di:waypoint xsi:type="dc:Point" x="1467" y="692" />
+        <di:waypoint xsi:type="dc:Point" x="1323" y="667" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="667" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="467" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1214" y="631" width="87" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ttepat_di" bpmnElement="SequenceFlow_1ttepat">
+        <di:waypoint xsi:type="dc:Point" x="1468" y="701" />
+        <di:waypoint xsi:type="dc:Point" x="1346" y="735" />
+        <di:waypoint xsi:type="dc:Point" x="189" y="735" />
+        <di:waypoint xsi:type="dc:Point" x="189" y="639" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1230" y="743" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1hx1ur7_di" bpmnElement="SequenceFlow_1hx1ur7">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="1322" y="883" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="883" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1316" y="811" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ukzynj_di" bpmnElement="SequenceFlow_0ukzynj">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="818" />
+        <di:waypoint xsi:type="dc:Point" x="1346" y="918" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="918" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1374" y="853.0052048946286" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1lsfn19_di" bpmnElement="SequenceFlow_1lsfn19">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="858" />
+        <di:waypoint xsi:type="dc:Point" x="1368" y="952" />
+        <di:waypoint xsi:type="dc:Point" x="1010" y="952" />
+        <di:waypoint xsi:type="dc:Point" x="1010" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1402" y="937.143889853408" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_19ba94v_di" bpmnElement="SequenceFlow_19ba94v">
+        <di:waypoint xsi:type="dc:Point" x="231" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="289" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="260" y="584" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0rqgdju_di" bpmnElement="Task_0eae8go">
+        <dc:Bounds x="131" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_13zzxzd_di" bpmnElement="Task_040hi91">
+        <dc:Bounds x="513" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1qpajth_di" bpmnElement="Task_15hpowt">
+        <dc:Bounds x="645" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_084iffr_di" bpmnElement="ExclusiveGateway_084iffr" isMarkerVisible="true">
+        <dc:Bounds x="871" y="574" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="924" y="599" width="84" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0pfydeg_di" bpmnElement="SequenceFlow_0pfydeg">
+        <di:waypoint xsi:type="dc:Point" x="921" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1043" y="584" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0bxgny0_di" bpmnElement="SequenceFlow_0bxgny0">
+        <di:waypoint xsi:type="dc:Point" x="491" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="513" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="496" y="574" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qm0ygo_di" bpmnElement="SequenceFlow_1qm0ygo">
+        <di:waypoint xsi:type="dc:Point" x="613" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="645" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="629" y="574" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0he2w4b_di" bpmnElement="SequenceFlow_0he2w4b">
+        <di:waypoint xsi:type="dc:Point" x="745" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="808" y="574" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_051zp79_di" bpmnElement="SequenceFlow_051zp79">
+        <di:waypoint xsi:type="dc:Point" x="1499" y="682" />
+        <di:waypoint xsi:type="dc:Point" x="1627" y="512" />
+        <di:waypoint xsi:type="dc:Point" x="1627" y="373" />
+        <di:waypoint xsi:type="dc:Point" x="1538" y="373" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1728" y="551.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_193t8ts_di" bpmnElement="SequenceFlow_193t8ts">
+        <di:waypoint xsi:type="dc:Point" x="1505" y="688" />
+        <di:waypoint xsi:type="dc:Point" x="1677" y="614" />
+        <di:waypoint xsi:type="dc:Point" x="1677" y="310" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="310" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="277" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1575" y="581" width="88" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_18u8p2k_di" bpmnElement="SequenceFlow_18u8p2k">
+        <di:waypoint xsi:type="dc:Point" x="1508" y="691" />
+        <di:waypoint xsi:type="dc:Point" x="1776" y="618" />
+        <di:waypoint xsi:type="dc:Point" x="1776" y="311" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="311" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="277" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1689" y="577.5" width="81" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0eueu1t_di" bpmnElement="SequenceFlow_0eueu1t">
+        <di:waypoint xsi:type="dc:Point" x="1510" y="693" />
+        <di:waypoint xsi:type="dc:Point" x="1865" y="635" />
+        <di:waypoint xsi:type="dc:Point" x="1865" y="309" />
+        <di:waypoint xsi:type="dc:Point" x="189" y="309" />
+        <di:waypoint xsi:type="dc:Point" x="189" y="387" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1784" y="579" width="80" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/TestHelloWorld.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/TestHelloWorld.bpmn
new file mode 100644
index 0000000..15399f4
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/TestHelloWorld.bpmn
@@ -0,0 +1,52 @@
+<?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.8.2">
+  <bpmn:process id="Process_1" isExecutable="false">
+    <bpmn:startEvent id="StartEvent_1" name="start">
+      <bpmn:outgoing>SequenceFlow_0bav304</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_0bav304" sourceRef="StartEvent_1" targetRef="Task_1omdjv6" />
+    <bpmn:endEvent id="EndEvent_102s4ct" name="end">
+      <bpmn:incoming>SequenceFlow_02tq5ta</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_02tq5ta" sourceRef="Task_1omdjv6" targetRef="EndEvent_102s4ct" />
+    <bpmn:serviceTask id="Task_1omdjv6" name="log hello world" camunda:expression="${AAIRestClientImpl.logHelloWorld()}">
+      <bpmn:incoming>SequenceFlow_0bav304</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_02tq5ta</bpmn:outgoing>
+    </bpmn:serviceTask>
+  </bpmn:process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
+        <dc:Bounds x="173" y="102" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="180" y="138" width="22" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0bav304_di" bpmnElement="SequenceFlow_0bav304">
+        <di:waypoint xsi:type="dc:Point" x="209" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="237" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="237" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="265" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="252" y="114" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_102s4ct_di" bpmnElement="EndEvent_102s4ct">
+        <dc:Bounds x="429" y="102" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="438" y="142" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_02tq5ta_di" bpmnElement="SequenceFlow_02tq5ta">
+        <di:waypoint xsi:type="dc:Point" x="365" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="429" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="397" y="99" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_0bl4qfz_di" bpmnElement="Task_1omdjv6">
+        <dc:Bounds x="265" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateNetworkInstance.bpmn
index a19e0c6..7e54b80 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateNetworkInstance.bpmn
@@ -116,11 +116,12 @@
         <bpmn2:extensionElements>
           <camunda:connector>
             <camunda:inputOutput>
-              <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+              <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
               <camunda:inputParameter name="payload">${UPDNI_createDBRequest}</camunda:inputParameter>
               <camunda:inputParameter name="headers">
                 <camunda:map>
                   <camunda:entry key="content-type">application/soap+xml</camunda:entry>
+                  <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
                 </camunda:map>
               </camunda:inputParameter>
               <camunda:inputParameter name="method">POST</camunda:inputParameter>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfra.bpmn
index 1d20bd0..fd554e0 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfra.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfra.bpmn
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_F0omAMXGEeW834CKd-K10Q" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_F0omAMXGEeW834CKd-K10Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="UpdateVfModuleInfra" name="UpdateVfModuleInfra" isExecutable="true">
     <bpmn2:scriptTask id="ScriptTask_1" name="Send Synch Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
@@ -8,7 +8,7 @@
 def uvfm = new UpdateVfModuleInfra()
 uvfm.sendSynchResponse(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="ScriptTask_1" targetRef="ScriptTask_7"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="ScriptTask_1" targetRef="ScriptTask_7" />
     <bpmn2:scriptTask id="ScriptTask_2" name="Pre-Process Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
@@ -17,7 +17,7 @@
 uvfm.preProcessRequest(execution)
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_2" targetRef="ScriptTask_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_2" targetRef="ScriptTask_1" />
     <bpmn2:scriptTask id="ScriptTask_7" name="DoUpdateVfModule (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
@@ -25,32 +25,21 @@
 def uvfm = new UpdateVfModuleInfra()
 uvfm.prepDoUpdateVfModule(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:callActivity id="ScriptTask_6" name="DoUpdateVfModule" calledElement="DoUpdateVfModule">
-      <bpmn2:extensionElements>
-        <camunda:in source="UPDVfModI_Request" target="DoUpdateVfModuleRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="ScriptTask_7" targetRef="ScriptTask_6"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="ScriptTask_7" targetRef="ScriptTask_6" />
     <bpmn2:callActivity id="CallActivity_1" name="Completion Handler" calledElement="CompleteMsoProcess">
       <bpmn2:extensionElements>
-        <camunda:in source="UPDVfModI_CompletionHandlerRequest" target="CompleteMsoProcessRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
+        <camunda:in source="UPDVfModI_CompletionHandlerRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_4"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_4" />
     <bpmn2:endEvent id="EndEvent_1" name="TheEnd">
       <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_5"/>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_5" />
     </bpmn2:endEvent>
     <bpmn2:scriptTask id="ScriptTask_4" name="Set Success Indicator" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
@@ -58,7 +47,7 @@
       <bpmn2:script><![CDATA[// The following variable is checked by the unit test
 execution.setVariable("UpdateVfModuleInfraSuccessIndicator", true)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_4" targetRef="EndEvent_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_4" targetRef="EndEvent_1" />
     <bpmn2:scriptTask id="ScriptTask_10" name="Completion Handler (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
@@ -67,13 +56,13 @@
 uvfm.completionHandlerPrep(execution, 'UPDVfModI_CompletionHandlerRequest')
 ]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_10" targetRef="CallActivity_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_10" targetRef="CallActivity_1" />
     <bpmn2:subProcess id="SubProcess_1" name="Error Handler" triggeredByEvent="true">
       <bpmn2:startEvent id="StartEvent_3" name="Catch All Errors">
         <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1"/>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />
       </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_3"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_3" />
       <bpmn2:scriptTask id="ScriptTask_3" name="Fallout Handler (prep)" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
@@ -82,192 +71,225 @@
 uvfm.falloutHandlerPrep(execution, 'UPDVfModI_FalloutHandlerRequest')
 ]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_7" sourceRef="ScriptTask_3" targetRef="CallActivity_2"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_7" sourceRef="ScriptTask_3" targetRef="CallActivity_2" />
       <bpmn2:callActivity id="CallActivity_2" name="Fallout Handler" calledElement="FalloutHandler">
         <bpmn2:extensionElements>
-          <camunda:in source="UPDVfModI_FalloutHandlerRequest" target="FalloutHandlerRequest"/>
+          <camunda:in source="UPDVfModI_FalloutHandlerRequest" target="FalloutHandlerRequest" />
           <camunda:in source="mso-request-id" target="mso-request-id"/>
           <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
         </bpmn2:extensionElements>
         <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
       </bpmn2:callActivity>
       <bpmn2:endEvent id="EndEvent_2">
         <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
-        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1"/>
+        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
       </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_2" targetRef="EndEvent_2"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_2" targetRef="EndEvent_2" />
     </bpmn2:subProcess>
     <bpmn2:endEvent id="EndEvent_3">
       <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2"/>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2" />
     </bpmn2:endEvent>
     <bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="SubProcess_1">
       <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" />
     </bpmn2:boundaryEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_3" />
     <bpmn2:startEvent id="StartEvent_1" name="Start">
       <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
     </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_2"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_6" targetRef="ScriptTask_10"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_2" />
+    <bpmn2:callActivity id="ScriptTask_6" name="DoUpdateVfModule" calledElement="DoUpdateVfModule">
+      <bpmn2:extensionElements>
+        <camunda:in source="UPDVfModI_requestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="isVidRequest" target="isVidRequest" />
+        <camunda:in source="UPDVfModI_vnfType" target="vnfType" />
+        <camunda:in source="UPDVfModI_vnfName" target="vnfName" />
+        <camunda:in source="UPDVfModI_vnfId" target="vnfId" />
+        <camunda:in source="UPDVfModI_vfModuleName" target="vfModuleName" />
+        <camunda:in source="UPDVfModI_vfModuleType" target="vfModuleType" />
+        <camunda:in source="UPDVfModI_vfModuleId" target="vfModuleId" />
+        <camunda:in source="UPDVfModI_volumeGroupId" target="volumeGroupId" />
+        <camunda:in source="UPDVfModI_volumeGroupName" target="volumeGroupName" />
+        <camunda:in source="UPDVfModI_isBaseVfModule" target="isBaseVfModule" />
+        <camunda:in source="UPDVfModI_asdcServiceModelVersion" target="asdcServiceModelVersion" />
+        <camunda:in source="UPDVfModI_serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="UPDVfModI_serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="UPDVfModI_vnfModelInfo" target="vnfModelInfo" />
+        <camunda:in source="UPDVfModI_globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="UPDVfModI_lcpCloudRegionId" target="lcpCloudRegionId" />
+        <camunda:in source="UPDVfModI_tenantId" target="tenantId" />
+        <camunda:in source="UPDVfModI_sdncVersion" target="sdncVersion" />
+        <camunda:in source="UPDVfModI_vfModuleModelInfo" target="vfModuleModelInfo" />
+        <camunda:in source="UPDVfModI_usePreload" target="usePreload" />
+        <camunda:in source="UPDVfModI_vfModuleInputParams" target="vfModuleInputParams" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_6" targetRef="ScriptTask_10" />
   </bpmn2:process>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateVfModuleInfra">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_50" bpmnElement="StartEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="149.0" y="72.0"/>
+        <dc:Bounds x="149" y="72" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="34.0" x="150.0" y="113.0"/>
+          <dc:Bounds x="150" y="113" width="34" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_125" bpmnElement="EndEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="605.0" y="370.0"/>
+        <dc:Bounds x="605" y="370" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="50.0" x="598.0" y="411.0"/>
+          <dc:Bounds x="598" y="411" width="50" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ScriptTask_124">
-        <di:waypoint xsi:type="dc:Point" x="185.0" y="90.0"/>
-        <di:waypoint xsi:type="dc:Point" x="299.0" y="90.0"/>
+        <di:waypoint xsi:type="dc:Point" x="185" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="299" y="90" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="235.0" y="90.0"/>
+          <dc:Bounds x="235" y="90" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_124" bpmnElement="ScriptTask_2">
-        <dc:Bounds height="80.0" width="100.0" x="299.0" y="50.0"/>
+        <dc:Bounds x="299" y="50" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_124" targetElement="_BPMNShape_ScriptTask_125">
-        <di:waypoint xsi:type="dc:Point" x="399.0" y="90.0"/>
-        <di:waypoint xsi:type="dc:Point" x="449.0" y="90.0"/>
+        <di:waypoint xsi:type="dc:Point" x="399" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="449" y="90" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="433.0" y="90.0"/>
+          <dc:Bounds x="433" y="90" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_125" bpmnElement="ScriptTask_1">
-        <dc:Bounds height="80.0" width="100.0" x="449.0" y="50.0"/>
+        <dc:Bounds x="449" y="50" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_125" targetElement="_BPMNShape_ScriptTask_130">
-        <di:waypoint xsi:type="dc:Point" x="498.0" y="130.0"/>
-        <di:waypoint xsi:type="dc:Point" x="498.0" y="160.0"/>
-        <di:waypoint xsi:type="dc:Point" x="199.0" y="160.0"/>
-        <di:waypoint xsi:type="dc:Point" x="199.0" y="190.0"/>
+        <di:waypoint xsi:type="dc:Point" x="498" y="130" />
+        <di:waypoint xsi:type="dc:Point" x="498" y="160" />
+        <di:waypoint xsi:type="dc:Point" x="199" y="160" />
+        <di:waypoint xsi:type="dc:Point" x="199" y="190" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="717.0" y="169.0"/>
+          <dc:Bounds x="717" y="169" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="ScriptTask_4">
-        <dc:Bounds height="80.0" width="100.0" x="449.0" y="348.0"/>
+        <dc:Bounds x="449" y="348" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_127" targetElement="_BPMNShape_EndEvent_125">
-        <di:waypoint xsi:type="dc:Point" x="549.0" y="388.0"/>
-        <di:waypoint xsi:type="dc:Point" x="605.0" y="388.0"/>
+        <di:waypoint xsi:type="dc:Point" x="549" y="388" />
+        <di:waypoint xsi:type="dc:Point" x="605" y="388" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="723.0" y="186.0"/>
+          <dc:Bounds x="723" y="186" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_130" bpmnElement="ScriptTask_7">
-        <dc:Bounds height="80.0" width="100.0" x="149.0" y="190.0"/>
+        <dc:Bounds x="149" y="190" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_133" bpmnElement="ScriptTask_10">
-        <dc:Bounds height="80.0" width="100.0" x="149.0" y="348.0"/>
+        <dc:Bounds x="149" y="348" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_27" bpmnElement="CallActivity_1">
-        <dc:Bounds height="80.0" width="100.0" x="299.0" y="348.0"/>
+        <dc:Bounds x="299" y="348" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_133" targetElement="_BPMNShape_CallActivity_27">
-        <di:waypoint xsi:type="dc:Point" x="249.0" y="388.0"/>
-        <di:waypoint xsi:type="dc:Point" x="299.0" y="388.0"/>
+        <di:waypoint xsi:type="dc:Point" x="249" y="388" />
+        <di:waypoint xsi:type="dc:Point" x="299" y="388" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="271.0" y="394.0"/>
+          <dc:Bounds x="271" y="394" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_17" bpmnElement="SubProcess_1" isExpanded="true">
-        <dc:Bounds height="241.0" width="565.0" x="65.0" y="536.0"/>
+        <dc:Bounds x="65" y="536" width="565" height="241" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_52" bpmnElement="StartEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="129.0" y="630.0"/>
+        <dc:Bounds x="129" y="630" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="98.0" x="98.0" y="671.0"/>
+          <dc:Bounds x="98" y="671" width="98" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_136" bpmnElement="ScriptTask_3">
-        <dc:Bounds height="80.0" width="100.0" x="209.0" y="608.0"/>
+        <dc:Bounds x="209" y="608" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_52" targetElement="_BPMNShape_ScriptTask_136">
-        <di:waypoint xsi:type="dc:Point" x="165.0" y="648.0"/>
-        <di:waypoint xsi:type="dc:Point" x="209.0" y="648.0"/>
+        <di:waypoint xsi:type="dc:Point" x="165" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="209" y="648" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="209.0" y="948.0"/>
+          <dc:Bounds x="209" y="948" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_136" targetElement="_BPMNShape_CallActivity_28">
-        <di:waypoint xsi:type="dc:Point" x="309.0" y="648.0"/>
-        <di:waypoint xsi:type="dc:Point" x="377.0" y="648.0"/>
+        <di:waypoint xsi:type="dc:Point" x="309" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="377" y="648" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="325.0" y="648.0"/>
+          <dc:Bounds x="325" y="648" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_126" bpmnElement="EndEvent_2">
-        <dc:Bounds height="36.0" width="36.0" x="533.0" y="630.0"/>
+        <dc:Bounds x="533" y="630" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="551.0" y="671.0"/>
+          <dc:Bounds x="551" y="671" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_43" bpmnElement="BoundaryEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="612.0" y="630.0"/>
+        <dc:Bounds x="612" y="630" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="627.0" y="671.0"/>
+          <dc:Bounds x="627" y="671" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_127" bpmnElement="EndEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="704.0" y="630.0"/>
+        <dc:Bounds x="704" y="630" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="722.0" y="671.0"/>
+          <dc:Bounds x="722" y="671" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_BoundaryEvent_43" targetElement="_BPMNShape_EndEvent_127">
-        <di:waypoint xsi:type="dc:Point" x="648.0" y="648.0"/>
-        <di:waypoint xsi:type="dc:Point" x="704.0" y="648.0"/>
+        <di:waypoint xsi:type="dc:Point" x="648" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="704" y="648" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="693.0" y="948.0"/>
+          <dc:Bounds x="693" y="948" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_28" bpmnElement="CallActivity_2">
-        <dc:Bounds height="80.0" width="100.0" x="377.0" y="608.0"/>
+        <dc:Bounds x="377" y="608" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_CallActivity_27" targetElement="_BPMNShape_ScriptTask_127">
-        <di:waypoint xsi:type="dc:Point" x="399.0" y="388.0"/>
-        <di:waypoint xsi:type="dc:Point" x="449.0" y="388.0"/>
+        <di:waypoint xsi:type="dc:Point" x="399" y="388" />
+        <di:waypoint xsi:type="dc:Point" x="449" y="388" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="439.0" y="356.0"/>
+          <dc:Bounds x="439" y="356" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_28" targetElement="_BPMNShape_EndEvent_126">
-        <di:waypoint xsi:type="dc:Point" x="477.0" y="648.0"/>
-        <di:waypoint xsi:type="dc:Point" x="533.0" y="648.0"/>
+        <di:waypoint xsi:type="dc:Point" x="477" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="533" y="648" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="373.0" y="456.0"/>
+          <dc:Bounds x="373" y="456" width="6" height="6" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_ScriptTask_130" targetElement="_BPMNShape_ScriptTask_181">
+        <di:waypoint xsi:type="dc:Point" x="249" y="230" />
+        <di:waypoint xsi:type="dc:Point" x="299" y="230" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="274" y="205" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_181" bpmnElement="ScriptTask_6">
-        <dc:Bounds height="80.0" width="100.0" x="299.0" y="190.0"/>
+        <dc:Bounds x="299" y="190" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_ScriptTask_130" targetElement="_BPMNShape_ScriptTask_181">
-        <di:waypoint xsi:type="dc:Point" x="249.0" y="230.0"/>
-        <di:waypoint xsi:type="dc:Point" x="299.0" y="230.0"/>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_181" targetElement="_BPMNShape_ScriptTask_133">
-        <di:waypoint xsi:type="dc:Point" x="399.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="624.0" y="233.0"/>
-        <di:waypoint xsi:type="dc:Point" x="624.0" y="294.0"/>
-        <di:waypoint xsi:type="dc:Point" x="99.0" y="294.0"/>
-        <di:waypoint xsi:type="dc:Point" x="99.0" y="388.0"/>
-        <di:waypoint xsi:type="dc:Point" x="149.0" y="388.0"/>
+        <di:waypoint xsi:type="dc:Point" x="399" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="624" y="233" />
+        <di:waypoint xsi:type="dc:Point" x="624" y="294" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="294" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="388" />
+        <di:waypoint xsi:type="dc:Point" x="149" y="388" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="500.0" y="232.0"/>
+          <dc:Bounds x="503" y="232" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfraV2.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfraV2.bpmn
new file mode 100644
index 0000000..ebdd459
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleInfraV2.bpmn
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="_F0omAMXGEeW834CKd-K10Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.8.2" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+  <bpmn2:process id="UpdateVfModuleInfraV2" name="UpdateVfModuleInfraV2" isExecutable="true">
+    <bpmn2:startEvent id="StartEvent_1" name="start">
+      <bpmn2:outgoing>SequenceFlow_07r1tup</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_07r1tup" sourceRef="StartEvent_1" targetRef="preProcessRequest" />
+    <bpmn2:scriptTask id="checkPserverFlag" name="Pserver Flag Check (A&#38;AI)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_09izs9b</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0gyzpu9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.checkPserverFlag(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="preProcessRequest" name="Pre-Process Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_07r1tup</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_04cyigk</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.preProcessRequest(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="sendSynchResponse" name="Send Synch Response" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_04cyigk</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_09izs9b</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.sendSynchResponse(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="vfFlagCheck" name="VF+ Flag Check (A&#38;AI)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0gyzpu9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_16xzdgi</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.vfFlagCheck(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="lockAppC" name="Lock (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1oa0jsk</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1ozbxok</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.lockAppC(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="healthCheckAppC" name="Health Check (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1ozbxok</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_17c5hhe</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.healthCheckAppC(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="healthDiagnosticSDNO" name="Health Diagnostic (SDN-O)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_17c5hhe</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1pqikpt</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.healthDiagnosticSDNO(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="stopVfModuleController" name="Stop VF Module (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1pqikpt</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0m6q3pf</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.stopVfModuleController(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="healthCheckController" name="Health Check (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0vj0wfl</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0cskhwy</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.healthCheckController(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="startVfModuleController" name="Start VF Module (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0cskhwy</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_067f4jv</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.startVfModuleController(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="vFFlagUnset" name="VF+ Flag Unset (A&#38;AI)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_067f4jv</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1trqy93</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.vFFlagUnset(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="unlockAppC" name="Unlock (App-C)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1trqy93</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0fc550l</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.unlockAppC(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="postUpgradeHealthCheckController" name="Post-Upgrade Health Check (App-c)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0fc550l</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1uquo5r</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.postUpgradeHealthCheckController(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_04cyigk" sourceRef="preProcessRequest" targetRef="sendSynchResponse" />
+    <bpmn2:sequenceFlow id="SequenceFlow_09izs9b" sourceRef="sendSynchResponse" targetRef="checkPserverFlag" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0gyzpu9" sourceRef="checkPserverFlag" targetRef="vfFlagCheck" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1pqikpt" sourceRef="healthDiagnosticSDNO" targetRef="stopVfModuleController" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0cskhwy" sourceRef="healthCheckController" targetRef="startVfModuleController" />
+    <bpmn2:sequenceFlow id="SequenceFlow_067f4jv" sourceRef="startVfModuleController" targetRef="vFFlagUnset" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1trqy93" sourceRef="vFFlagUnset" targetRef="unlockAppC" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0fc550l" sourceRef="unlockAppC" targetRef="postUpgradeHealthCheckController" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1uquo5r" sourceRef="postUpgradeHealthCheckController" targetRef="EndEvent_1" />
+    <bpmn2:scriptTask id="doUpdateVfModulePrep" name="DoUpdateVfModule (prep)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0m6q3pf</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1ykv4yr</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.doUpdateVfModulePrep(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="completionHandlerPrep" name="Completion Handler (prep)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1x3xeba</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_01yr04k</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.completionHandlerPrep(execution,"UPDVfModI_CompletionHandlerRequest")]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="setSuccessIndicator" name="Set Success Indicator" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1rfmnuo</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0vj0wfl</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[// The following variable is checked by the unit test

+execution.setVariable("UpdateVfModuleInfraSuccessIndicator", true)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1ozbxok" sourceRef="lockAppC" targetRef="healthCheckAppC" />
+    <bpmn2:sequenceFlow id="SequenceFlow_17c5hhe" sourceRef="healthCheckAppC" targetRef="healthDiagnosticSDNO" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0m6q3pf" sourceRef="stopVfModuleController" targetRef="doUpdateVfModulePrep" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0vj0wfl" sourceRef="setSuccessIndicator" targetRef="healthCheckController" />
+    <bpmn2:endEvent id="EndEvent_1" name="end">
+      <bpmn2:incoming>SequenceFlow_1uquo5r</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition />
+    </bpmn2:endEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_16xzdgi" sourceRef="vfFlagCheck" targetRef="vfFlagSet" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1oa0jsk" sourceRef="vfFlagSet" targetRef="lockAppC" />
+    <bpmn2:scriptTask id="vfFlagSet" name="VF+ Flag Set(A&#38;AI)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_16xzdgi</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1oa0jsk</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def uvfm = new UpdateVfModuleInfraV2()

+uvfm.vfFlagSet(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1rfmnuo" sourceRef="CallActivity_1mn9pxh" targetRef="setSuccessIndicator" />
+    <bpmn2:callActivity id="CallActivity_12if1z7" name="DoUpdateVfModule" calledElement="DoUpdateVfModule">
+      <bpmn2:extensionElements>
+        <camunda:in source="UPDVfModI_requestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="isVidRequest" target="isVidRequest" />
+        <camunda:in source="UPDVfModI_vnfType" target="vnfType" />
+        <camunda:in source="UPDVfModI_vnfName" target="vnfName" />
+        <camunda:in source="UPDVfModI_vnfId" target="vnfId" />
+        <camunda:in source="UPDVfModI_vfModuleName" target="vfModuleName" />
+        <camunda:in source="UPDVfModI_vfModuleType" target="vfModuleType" />
+        <camunda:in source="UPDVfModI_vfModuleId" target="vfModuleId" />
+        <camunda:in source="UPDVfModI_volumeGroupId" target="volumeGroupId" />
+        <camunda:in source="UPDVfModI_volumeGroupName" target="volumeGroupName" />
+        <camunda:in source="UPDVfModI_isBaseVfModule" target="isBaseVfModule" />
+        <camunda:in source="UPDVfModI_asdcServiceModelVersion" target="asdcServiceModelVersion" />
+        <camunda:in source="UPDVfModI_serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="UPDVfModI_serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="UPDVfModI_vnfModelInfo" target="vnfModelInfo" />
+        <camunda:in source="UPDVfModI_globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="UPDVfModI_lcpCloudRegionId" target="lcpCloudRegionId" />
+        <camunda:in source="UPDVfModI_tenantId" target="tenantId" />
+        <camunda:in source="UPDVfModI_sdncVersion" target="sdncVersion" />
+        <camunda:in source="UPDVfModI_vfModuleModelInfo" target="vfModuleModelInfo" />
+        <camunda:in source="UPDVfModI_usePreload" target="usePreload" />
+        <camunda:in source="UPDVfModI_vfModuleInputParams" target="vfModuleInputParams" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_1ykv4yr</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1x3xeba</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_1ykv4yr" sourceRef="doUpdateVfModulePrep" targetRef="CallActivity_12if1z7" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1x3xeba" sourceRef="CallActivity_12if1z7" targetRef="completionHandlerPrep" />
+    <bpmn2:callActivity id="CallActivity_1mn9pxh" name="Completion Handler" calledElement="CompleteMsoProcess">
+      <bpmn2:extensionElements>
+        <camunda:in source="UPDVfModI_CompletionHandlerRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_01yr04k</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1rfmnuo</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_01yr04k" sourceRef="completionHandlerPrep" targetRef="CallActivity_1mn9pxh" />
+  </bpmn2:process>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateVfModuleInfraV2">
+      <bpmndi:BPMNShape id="StartEvent_0twxl8d_di" bpmnElement="StartEvent_1">
+        <dc:Bounds x="191" y="241" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="198" y="281" width="22" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_07r1tup_di" bpmnElement="SequenceFlow_07r1tup">
+        <di:waypoint xsi:type="dc:Point" x="227" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="282" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="209.5" y="238" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_01hwh3t_di" bpmnElement="checkPserverFlag">
+        <dc:Bounds x="581" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0f4oi4p_di" bpmnElement="preProcessRequest">
+        <dc:Bounds x="282" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_03hqi4p_di" bpmnElement="sendSynchResponse">
+        <dc:Bounds x="430" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1s24r7g_di" bpmnElement="vfFlagCheck">
+        <dc:Bounds x="722" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1tjbc0n_di" bpmnElement="lockAppC">
+        <dc:Bounds x="1000" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0jqyljl_di" bpmnElement="healthCheckAppC">
+        <dc:Bounds x="1137" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0xd9t6y_di" bpmnElement="healthDiagnosticSDNO">
+        <dc:Bounds x="369" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_07v5qul_di" bpmnElement="stopVfModuleController">
+        <dc:Bounds x="521" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1fhh3ik_di" bpmnElement="healthCheckController">
+        <dc:Bounds x="521" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0y2p8lc_di" bpmnElement="startVfModuleController">
+        <dc:Bounds x="672" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0getlx7_di" bpmnElement="vFFlagUnset">
+        <dc:Bounds x="809" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_13ngoxl_di" bpmnElement="unlockAppC">
+        <dc:Bounds x="955" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_023ov5w_di" bpmnElement="postUpgradeHealthCheckController">
+        <dc:Bounds x="1103" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_04cyigk_di" bpmnElement="SequenceFlow_04cyigk">
+        <di:waypoint xsi:type="dc:Point" x="382" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="430" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="361" y="238" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_09izs9b_di" bpmnElement="SequenceFlow_09izs9b">
+        <di:waypoint xsi:type="dc:Point" x="530" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="581" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="510.5" y="238" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gyzpu9_di" bpmnElement="SequenceFlow_0gyzpu9">
+        <di:waypoint xsi:type="dc:Point" x="681" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="722" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="656.5" y="238" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1pqikpt_di" bpmnElement="SequenceFlow_1pqikpt">
+        <di:waypoint xsi:type="dc:Point" x="469" y="394" />
+        <di:waypoint xsi:type="dc:Point" x="521" y="394" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="495" y="373" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0cskhwy_di" bpmnElement="SequenceFlow_0cskhwy">
+        <di:waypoint xsi:type="dc:Point" x="621" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="672" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="646.5" y="512" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_067f4jv_di" bpmnElement="SequenceFlow_067f4jv">
+        <di:waypoint xsi:type="dc:Point" x="772" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="809" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="790.5" y="512" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1trqy93_di" bpmnElement="SequenceFlow_1trqy93">
+        <di:waypoint xsi:type="dc:Point" x="909" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="955" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="932" y="512" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0fc550l_di" bpmnElement="SequenceFlow_0fc550l">
+        <di:waypoint xsi:type="dc:Point" x="1055" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1079" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1079" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1103" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1094" y="527" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1uquo5r_di" bpmnElement="SequenceFlow_1uquo5r">
+        <di:waypoint xsi:type="dc:Point" x="1203" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1254" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1254" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="1304" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1224" y="527" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_00bft3s_di" bpmnElement="doUpdateVfModulePrep">
+        <dc:Bounds x="672" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_00moxf8_di" bpmnElement="completionHandlerPrep">
+        <dc:Bounds x="955" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_02qf1er_di" bpmnElement="setSuccessIndicator">
+        <dc:Bounds x="369" y="493" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ozbxok_di" bpmnElement="SequenceFlow_1ozbxok">
+        <di:waypoint xsi:type="dc:Point" x="1100" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="1137" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1073.5" y="238" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_17c5hhe_di" bpmnElement="SequenceFlow_17c5hhe">
+        <di:waypoint xsi:type="dc:Point" x="1187" y="299" />
+        <di:waypoint xsi:type="dc:Point" x="1187" y="324" />
+        <di:waypoint xsi:type="dc:Point" x="419" y="324" />
+        <di:waypoint xsi:type="dc:Point" x="419" y="354" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="758" y="303" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0m6q3pf_di" bpmnElement="SequenceFlow_0m6q3pf">
+        <di:waypoint xsi:type="dc:Point" x="621" y="394" />
+        <di:waypoint xsi:type="dc:Point" x="672" y="394" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="646.5" y="373" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0vj0wfl_di" bpmnElement="SequenceFlow_0vj0wfl">
+        <di:waypoint xsi:type="dc:Point" x="469" y="533" />
+        <di:waypoint xsi:type="dc:Point" x="521" y="533" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="495" y="512" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_12zreeo_di" bpmnElement="EndEvent_1">
+        <dc:Bounds x="1304" y="515" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1313" y="555" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_16xzdgi_di" bpmnElement="SequenceFlow_16xzdgi">
+        <di:waypoint xsi:type="dc:Point" x="822" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="872" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="847" y="238" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1oa0jsk_di" bpmnElement="SequenceFlow_1oa0jsk">
+        <di:waypoint xsi:type="dc:Point" x="972" y="259" />
+        <di:waypoint xsi:type="dc:Point" x="1000" y="259" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="986" y="238" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0zgcd21_di" bpmnElement="vfFlagSet">
+        <dc:Bounds x="872" y="219" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1rfmnuo_di" bpmnElement="SequenceFlow_1rfmnuo">
+        <di:waypoint xsi:type="dc:Point" x="1153" y="436" />
+        <di:waypoint xsi:type="dc:Point" x="1153" y="465" />
+        <di:waypoint xsi:type="dc:Point" x="419" y="465" />
+        <di:waypoint xsi:type="dc:Point" x="419" y="493" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="741" y="444" width="90" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_12if1z7_di" bpmnElement="CallActivity_12if1z7">
+        <dc:Bounds x="809" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ykv4yr_di" bpmnElement="SequenceFlow_1ykv4yr">
+        <di:waypoint xsi:type="dc:Point" x="772" y="394" />
+        <di:waypoint xsi:type="dc:Point" x="809" y="394" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="790.5" y="373" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1x3xeba_di" bpmnElement="SequenceFlow_1x3xeba">
+        <di:waypoint xsi:type="dc:Point" x="909" y="394" />
+        <di:waypoint xsi:type="dc:Point" x="955" y="394" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="932" y="373" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_1mn9pxh_di" bpmnElement="CallActivity_1mn9pxh">
+        <dc:Bounds x="1103" y="354" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_01yr04k_di" bpmnElement="SequenceFlow_01yr04k">
+        <di:waypoint xsi:type="dc:Point" x="1055" y="394" />
+        <di:waypoint xsi:type="dc:Point" x="1103" y="394" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1079" y="373" width="0" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleVolumeInfraV1.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleVolumeInfraV1.bpmn
index 96c0681..15b5bc7 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleVolumeInfraV1.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVfModuleVolumeInfraV1.bpmn
@@ -1,44 +1,45 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_ZBLUcCkQEeaY6ZhIaNLwzg" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_ZBLUcCkQEeaY6ZhIaNLwzg" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="UpdateVfModuleVolumeInfraV1" name="UpdateVfModuleVolumeInfraV1" isExecutable="true">
     <bpmn2:endEvent id="EndEvent_4" name="TheEnd">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1"/>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
     </bpmn2:endEvent>
     <bpmn2:callActivity id="CallActivity_completionHandler" name="Completion Handler" calledElement="CompleteMsoProcess">
       <bpmn2:extensionElements>
-        <camunda:in source="UPDVfModVol_CompletionHandlerRequest" target="CompleteMsoProcessRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:out source="CMSO_ResponseCode" target="UPDVfModVol_CMSO_ResponseCode"/>
-        <camunda:out source="CMSO_ErrorResponse" target="UPDVfModVol_CMSO_ErrorResponse"/>
+        <camunda:in source="UPDVfModVol_CompletionHandlerRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="CMSO_ResponseCode" target="UPDVfModVol_CMSO_ResponseCode" />
+        <camunda:out source="CMSO_ErrorResponse" target="UPDVfModVol_CMSO_ErrorResponse" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_completionHandler" targetRef="ScriptTask_postProcessTemp"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_completionHandler" targetRef="ScriptTask_postProcessTemp" />
     <bpmn2:serviceTask id="ServiceTask_callUpdateInfraDb" name="Call Update Infra DB">
       <bpmn2:extensionElements>
         <camunda:connector>
-          <camunda:connectorId>http-connector</camunda:connectorId>
           <camunda:inputOutput>
-            <camunda:inputParameter name="url">${URN_mso_adapters_db_endpoint}</camunda:inputParameter>
+            <camunda:inputParameter name="url">${URN_mso_openecomp_adapters_db_endpoint}</camunda:inputParameter>
             <camunda:inputParameter name="payload">${UPDVfModVol_updateInfraRequest}</camunda:inputParameter>
             <camunda:inputParameter name="headers">
               <camunda:map>
                 <camunda:entry key="content-type">aapplication/soap+xml</camunda:entry>
+                <camunda:entry key="Authorization">#{BasicAuthHeaderValueDB}</camunda:entry>
               </camunda:map>
             </camunda:inputParameter>
             <camunda:inputParameter name="method">POST</camunda:inputParameter>
             <camunda:outputParameter name="UPDVfModVol_createDBResponse">${response}</camunda:outputParameter>
             <camunda:outputParameter name="UPDVfModVol_dbReturnCode">${statusCode}</camunda:outputParameter>
           </camunda:inputOutput>
+          <camunda:connectorId>http-connector</camunda:connectorId>
         </camunda:connector>
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
     </bpmn2:serviceTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="ServiceTask_callUpdateInfraDb" targetRef="ScriptTask_prepCompletionHandlerRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="ServiceTask_callUpdateInfraDb" targetRef="ScriptTask_prepCompletionHandlerRequest" />
     <bpmn2:scriptTask id="ScriptTask_prepVnfRest" name="Prepare VNF Adapter Rest Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_21</bpmn2:outgoing>
@@ -46,7 +47,7 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('prepVnfAdapterRest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ScriptTask_prepVnfRest" targetRef="CallActivity_callVNFAdapterRest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ScriptTask_prepVnfRest" targetRef="CallActivity_callVNFAdapterRest" />
     <bpmn2:scriptTask id="ScriptTask_prepCompletionHandlerRequest" name="Prep Completion Handler Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
@@ -54,20 +55,20 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('prepCompletionHandlerRequest', execution, UPDVfModVol_requestId, 'UPDATE', UPDVfModVol_source, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_prepCompletionHandlerRequest" targetRef="CallActivity_completionHandler"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_prepCompletionHandlerRequest" targetRef="CallActivity_completionHandler" />
     <bpmn2:callActivity id="CallActivity_callVNFAdapterRest" name="VNFAdapterRest" calledElement="vnfAdapterRestV1">
       <bpmn2:extensionElements>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:out source="vnfAdapterRestV1Response" target="UPDVfModVol_vnfAdapterRestResponse"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="UPDVfModVol_vnfAdapterRestRequest" target="vnfAdapterRestV1Request"/>
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:out source="vnfAdapterRestV1Response" target="UPDVfModVol_vnfAdapterRestResponse" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="UPDVfModVol_vnfAdapterRestRequest" target="vnfAdapterRestV1Request" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_21</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_callVNFAdapterRest" targetRef="ScriptTask_prepDbInfraRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_callVNFAdapterRest" targetRef="ScriptTask_prepDbInfraRequest" />
     <bpmn2:scriptTask id="ScriptTask_prepDbInfraRequest" name="Prep DB Infra Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
@@ -75,14 +76,14 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('prepDbInfraDbRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_prepDbInfraRequest" targetRef="ServiceTask_callUpdateInfraDb"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_prepDbInfraRequest" targetRef="ServiceTask_callUpdateInfraDb" />
     <bpmn2:scriptTask id="ScriptTask_postProcessTemp" name="Set Success" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
       <bpmn2:script><![CDATA[// The following variable is checked by the unit test
 execution.setVariable("UpdateVfModuleVolumeSuccessIndicator", true)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="ScriptTask_postProcessTemp" targetRef="EndEvent_4"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="ScriptTask_postProcessTemp" targetRef="EndEvent_4" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_2">
       <bpmn2:incoming>SequenceFlow_noVfModuleRelation</bpmn2:incoming>
       <bpmn2:incoming>SequenceFlow_personaModelIdMatchYes</bpmn2:incoming>
@@ -91,13 +92,13 @@
     <bpmn2:subProcess id="SubProcess_errorHandler" name="Error Handler" triggeredByEvent="true">
       <bpmn2:startEvent id="StartEvent_catchAllErrors" name="Catch All Errors">
         <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="_ErrorEventDefinition_77"/>
+        <bpmn2:errorEventDefinition id="_ErrorEventDefinition_77" />
       </bpmn2:startEvent>
       <bpmn2:endEvent id="EndEvent_3">
         <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-        <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_11"/>
+        <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_11" />
       </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="StartEvent_catchAllErrors" targetRef="ScriptTask_preFalloutHandler"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="StartEvent_catchAllErrors" targetRef="ScriptTask_preFalloutHandler" />
       <bpmn2:scriptTask id="ScriptTask_preFalloutHandler" name="Fallout Handler (prep)" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
@@ -105,24 +106,24 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('prepFalloutHandler', execution, isDebugLogEnabled)]]></bpmn2:script>
       </bpmn2:scriptTask>
-      <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_preFalloutHandler" targetRef="CallActivity_falloutHandler"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_preFalloutHandler" targetRef="CallActivity_falloutHandler" />
       <bpmn2:callActivity id="CallActivity_falloutHandler" name="Fallout Handler" calledElement="FalloutHandler">
         <bpmn2:extensionElements>
-          <camunda:in source="UPDVfModVol_FalloutHandlerRequest" target="FalloutHandlerRequest"/>
-          <camunda:in source="mso-request-id" target="mso-request-id"/>
-          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-          <camunda:out source="FH_ResponseCode" target="UPDVfModVol_FH_ResponseCode"/>
-          <camunda:out source="FH_ErrorResponse" target="UPDVfModVol_FH_ErrorResponse"/>
-          <camunda:out source="FalloutHandlerResponse" target="UPDVfModVol_FalloutHandlerResponse"/>
+          <camunda:in source="UPDVfModVol_FalloutHandlerRequest" target="FalloutHandlerRequest" />
+          <camunda:in source="mso-request-id" target="mso-request-id" />
+          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+          <camunda:out source="FH_ResponseCode" target="UPDVfModVol_FH_ResponseCode" />
+          <camunda:out source="FH_ErrorResponse" target="UPDVfModVol_FH_ErrorResponse" />
+          <camunda:out source="FalloutHandlerResponse" target="UPDVfModVol_FalloutHandlerResponse" />
         </bpmn2:extensionElements>
         <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
       </bpmn2:callActivity>
-      <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="CallActivity_falloutHandler" targetRef="EndEvent_3"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="CallActivity_falloutHandler" targetRef="EndEvent_3" />
     </bpmn2:subProcess>
-    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_prepVnfRest"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_personaModelIdMatch" name="Persona Model ID match?">
+    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_prepVnfRest" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_personaModelIdMatch" name="Persona Model ID match?" default="SequenceFlow_personaModelidMatchNo">
       <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_personaModelIdMatchYes</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_personaModelidMatchNo</bpmn2:outgoing>
@@ -130,7 +131,7 @@
     <bpmn2:sequenceFlow id="SequenceFlow_personaModelIdMatchYes" name="Yes" sourceRef="ExclusiveGateway_personaModelIdMatch" targetRef="ExclusiveGateway_2">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{UPDVfModVol_modelInvariantId == UPDVfModVol_personaModelId}</bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_personaModelidMatchNo" name="No" sourceRef="ExclusiveGateway_personaModelIdMatch" targetRef="ScriptTask_handlePersonaModelIdMismatch"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_personaModelidMatchNo" name="No" sourceRef="ExclusiveGateway_personaModelIdMatch" targetRef="ScriptTask_handlePersonaModelIdMismatch" />
     <bpmn2:scriptTask id="ScriptTask_queryAaiForVfModule" name="Query AAI for VF Module" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_YesVfModuleRelation</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
@@ -138,7 +139,7 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('queryAAIForVfModule', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ScriptTask_queryAaiForVfModule" targetRef="ExclusiveGateway_personaModelIdMatch"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ScriptTask_queryAaiForVfModule" targetRef="ExclusiveGateway_personaModelIdMatch" />
     <bpmn2:scriptTask id="ScriptTask_handlePersonaModelIdMismatch" name="Handle Persona Model ID Mismatch" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_personaModelidMatchNo</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_18</bpmn2:outgoing>
@@ -146,10 +147,10 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('handlePersonaModelIdMismatch', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_18" name="" sourceRef="ScriptTask_handlePersonaModelIdMismatch" targetRef="EndEvent_personaModelIdMismatch"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_18" name="" sourceRef="ScriptTask_handlePersonaModelIdMismatch" targetRef="EndEvent_personaModelIdMismatch" />
     <bpmn2:endEvent id="EndEvent_personaModelIdMismatch">
       <bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" errorRef="Error_1" />
     </bpmn2:endEvent>
     <bpmn2:scriptTask id="ScriptTask_preProcessRequest" name="Pre-process Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
@@ -158,11 +159,11 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('preProcessRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="ScriptTask_preProcessRequest" targetRef="ScriptTask_sendSynchResponse"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="ScriptTask_preProcessRequest" targetRef="ScriptTask_sendSynchResponse" />
     <bpmn2:startEvent id="StartEvent_1" name="Start">
       <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
     </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_preProcessRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="StartEvent_1" targetRef="ScriptTask_preProcessRequest" />
     <bpmn2:scriptTask id="ScriptTask_sendSynchResponse" name="Send Synch Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_20</bpmn2:outgoing>
@@ -170,22 +171,22 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('sendSynchResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_20" name="" sourceRef="ScriptTask_sendSynchResponse" targetRef="ScriptTask_queryAaiGenricVnf"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_20" name="" sourceRef="ScriptTask_sendSynchResponse" targetRef="ScriptTask_queryAaiGenricVnf" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="VF-MODULE relation?" default="SequenceFlow_noVfModuleRelation">
       <bpmn2:incoming>SequenceFlow_tenantIsMatch</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_YesVfModuleRelation</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_noVfModuleRelation</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:sequenceFlow id="SequenceFlow_YesVfModuleRelation" name="Yes" sourceRef="ExclusiveGateway_1" targetRef="ScriptTask_queryAaiForVfModule">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{UPDVfModVol_relatedVfModuleLink != ''}</bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{UPDVfModVol_relatedVfModuleLink != ''}]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_noVfModuleRelation" name="No" sourceRef="ExclusiveGateway_1" targetRef="ExclusiveGateway_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_noVfModuleRelation" name="No" sourceRef="ExclusiveGateway_1" targetRef="ExclusiveGateway_2" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_isTenantMatch" name="TenantId Match?" default="SequenceFlow_NoTenantMatch">
       <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_NoTenantMatch</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_tenantIsMatch</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_NoTenantMatch" name="No" sourceRef="ExclusiveGateway_isTenantMatch" targetRef="ScriptTask_tenantIdMismatch"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_NoTenantMatch" name="No" sourceRef="ExclusiveGateway_isTenantMatch" targetRef="ScriptTask_tenantIdMismatch" />
     <bpmn2:sequenceFlow id="SequenceFlow_tenantIsMatch" name="Yes" sourceRef="ExclusiveGateway_isTenantMatch" targetRef="ExclusiveGateway_1">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{UPDVfModVol_tenantId == UPDVfModVol_volumeGroupTenantId}</bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
@@ -196,10 +197,10 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('handleTenantIdMismatch', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_tenantIdMismatch" targetRef="EndEvent_2"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_tenantIdMismatch" targetRef="EndEvent_2" />
     <bpmn2:endEvent id="EndEvent_2">
       <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="_ErrorEventDefinition_76" errorRef="Error_1"/>
+      <bpmn2:errorEventDefinition id="_ErrorEventDefinition_76" errorRef="Error_1" />
     </bpmn2:endEvent>
     <bpmn2:scriptTask id="ScriptTask_queryAAI" name="Query AAI for Volume Group Info" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
@@ -208,7 +209,7 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('queryAAIForVolumeGroup', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ScriptTask_queryAAI" targetRef="ExclusiveGateway_isTenantMatch"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ScriptTask_queryAAI" targetRef="ExclusiveGateway_isTenantMatch" />
     <bpmn2:scriptTask id="ScriptTask_queryAaiGenricVnf" name="Query AAI for Generic VNF" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_20</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
@@ -216,301 +217,301 @@
 def uvmv = new UpdateVfModuleVolumeInfraV1()
 uvmv.executeMethod('queryAAIForGenericVnf', execution, isDebugLogEnabled)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_queryAaiGenricVnf" targetRef="ScriptTask_queryAAI"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_queryAaiGenricVnf" targetRef="ScriptTask_queryAAI" />
   </bpmn2:process>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateVfModuleVolumeInfraV1">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_62" bpmnElement="StartEvent_1">
-        <dc:Bounds height="37.0" width="37.0" x="191.0" y="131.0"/>
+        <dc:Bounds x="191" y="131" width="37" height="37" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="34.0" x="192.0" y="173.0"/>
+          <dc:Bounds x="192" y="173" width="34" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_StartEvent_62" targetElement="_BPMNShape_ScriptTask_231">
-        <di:waypoint xsi:type="dc:Point" x="227.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="268.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="268.0" y="150.0"/>
-        <di:waypoint xsi:type="dc:Point" x="295.0" y="150.0"/>
+        <di:waypoint xsi:type="dc:Point" x="227" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="268" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="268" y="150" />
+        <di:waypoint xsi:type="dc:Point" x="295" y="150" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="248.0" y="149.0"/>
+          <dc:Bounds x="248" y="149" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_42" bpmnElement="CallActivity_callVNFAdapterRest">
-        <dc:Bounds height="80.0" width="100.0" x="591.0" y="420.0"/>
+        <dc:Bounds x="591" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_230" bpmnElement="ScriptTask_postProcessTemp">
-        <dc:Bounds height="80.0" width="109.0" x="1318.0" y="420.0"/>
+        <dc:Bounds x="1318" y="420" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_231" bpmnElement="ScriptTask_preProcessRequest">
-        <dc:Bounds height="78.0" width="109.0" x="295.0" y="111.0"/>
+        <dc:Bounds x="295" y="111" width="109" height="78" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_232" bpmnElement="ScriptTask_sendSynchResponse">
-        <dc:Bounds height="76.0" width="109.0" x="454.0" y="112.0"/>
+        <dc:Bounds x="454" y="112" width="109" height="76" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_231" targetElement="_BPMNShape_ScriptTask_232">
-        <di:waypoint xsi:type="dc:Point" x="403.0" y="150.0"/>
-        <di:waypoint xsi:type="dc:Point" x="454.0" y="150.0"/>
+        <di:waypoint xsi:type="dc:Point" x="403" y="150" />
+        <di:waypoint xsi:type="dc:Point" x="454" y="150" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="418.0" y="150.0"/>
+          <dc:Bounds x="418" y="150" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_233" bpmnElement="ScriptTask_prepDbInfraRequest">
-        <dc:Bounds height="80.0" width="109.0" x="730.0" y="420.0"/>
+        <dc:Bounds x="730" y="420" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ServiceTask_101" bpmnElement="ServiceTask_callUpdateInfraDb">
-        <dc:Bounds height="80.0" width="109.0" x="868.0" y="420.0"/>
+        <dc:Bounds x="868" y="420" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_ScriptTask_233" targetElement="_BPMNShape_ServiceTask_101">
-        <di:waypoint xsi:type="dc:Point" x="838.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="868.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="838" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="868" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="853.0" y="491.0"/>
+          <dc:Bounds x="853" y="491" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_ServiceTask_101" targetElement="_BPMNShape_ScriptTask_234">
-        <di:waypoint xsi:type="dc:Point" x="976.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1014.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="976" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="1014" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="959.0" y="497.0"/>
+          <dc:Bounds x="959" y="497" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_234" bpmnElement="ScriptTask_prepCompletionHandlerRequest">
-        <dc:Bounds height="80.0" width="109.0" x="1014.0" y="420.0"/>
+        <dc:Bounds x="1014" y="420" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_43" bpmnElement="CallActivity_completionHandler">
-        <dc:Bounds height="61.0" width="109.0" x="1162.0" y="429.0"/>
+        <dc:Bounds x="1162" y="429" width="109" height="61" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_ScriptTask_234" targetElement="_BPMNShape_CallActivity_43">
-        <di:waypoint xsi:type="dc:Point" x="1122.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1162.0" y="459.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1122" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="1162" y="459" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1134.0" y="477.0"/>
+          <dc:Bounds x="1134" y="477" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_CallActivity_43" targetElement="_BPMNShape_ScriptTask_230">
-        <di:waypoint xsi:type="dc:Point" x="1270.0" y="459.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1318.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1270" y="459" />
+        <di:waypoint xsi:type="dc:Point" x="1318" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1216.0" y="521.0"/>
+          <dc:Bounds x="1216" y="521" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_235" bpmnElement="ScriptTask_queryAAI">
-        <dc:Bounds height="73.0" width="109.0" x="742.0" y="113.0"/>
+        <dc:Bounds x="742" y="113" width="109" height="73" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_126" bpmnElement="ExclusiveGateway_isTenantMatch" isMarkerVisible="true">
-        <dc:Bounds height="34.0" width="34.0" x="931.0" y="132.0"/>
+        <dc:Bounds x="931" y="132" width="34" height="34" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="102.0" x="898.0" y="113.0"/>
+          <dc:Bounds x="898" y="113" width="102" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_236" bpmnElement="ScriptTask_tenantIdMismatch">
-        <dc:Bounds height="75.0" width="97.0" x="1064.0" y="112.0"/>
+        <dc:Bounds x="1064" y="112" width="97" height="75" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ScriptTask_235" targetElement="_BPMNShape_ExclusiveGateway_126">
-        <di:waypoint xsi:type="dc:Point" x="850.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="931.0" y="149.0"/>
+        <di:waypoint xsi:type="dc:Point" x="850" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="931" y="149" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="877.0" y="149.0"/>
+          <dc:Bounds x="877" y="149" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_NoTenantMatch" sourceElement="_BPMNShape_ExclusiveGateway_126" targetElement="_BPMNShape_ScriptTask_236">
-        <di:waypoint xsi:type="dc:Point" x="965.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1064.0" y="149.0"/>
+        <di:waypoint xsi:type="dc:Point" x="965" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="1064" y="149" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="986.0" y="149.0"/>
+          <dc:Bounds x="986" y="149" width="22" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_169" bpmnElement="EndEvent_2">
-        <dc:Bounds height="49.0" width="49.0" x="1225.0" y="125.0"/>
+        <dc:Bounds x="1225" y="125" width="49" height="49" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="1249.0" y="179.0"/>
+          <dc:Bounds x="1249" y="179" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_236" targetElement="_BPMNShape_EndEvent_169">
-        <di:waypoint xsi:type="dc:Point" x="1160.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1225.0" y="149.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1160" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="1225" y="149" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1179.0" y="149.0"/>
+          <dc:Bounds x="1179" y="149" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_tenantIsMatch" sourceElement="_BPMNShape_ExclusiveGateway_126" targetElement="_BPMNShape_ExclusiveGateway_254">
-        <di:waypoint xsi:type="dc:Point" x="948.0" y="166.0"/>
-        <di:waypoint xsi:type="dc:Point" x="948.0" y="244.0"/>
+        <di:waypoint xsi:type="dc:Point" x="948" y="166" />
+        <di:waypoint xsi:type="dc:Point" x="948" y="244" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="915.0" y="173.0"/>
+          <dc:Bounds x="915" y="173" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_42" targetElement="_BPMNShape_ScriptTask_233">
-        <di:waypoint xsi:type="dc:Point" x="691.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="730.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="691" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="730" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="712.0" y="531.0"/>
+          <dc:Bounds x="712" y="531" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_20" sourceElement="_BPMNShape_ScriptTask_232" targetElement="_BPMNShape_ScriptTask_318">
-        <di:waypoint xsi:type="dc:Point" x="562.0" y="150.0"/>
-        <di:waypoint xsi:type="dc:Point" x="581.0" y="150.0"/>
-        <di:waypoint xsi:type="dc:Point" x="581.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="612.0" y="149.0"/>
+        <di:waypoint xsi:type="dc:Point" x="562" y="150" />
+        <di:waypoint xsi:type="dc:Point" x="581" y="150" />
+        <di:waypoint xsi:type="dc:Point" x="581" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="612" y="149" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="578.0" y="150.0"/>
+          <dc:Bounds x="578" y="150" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_237" bpmnElement="ScriptTask_prepVnfRest">
-        <dc:Bounds height="80.0" width="109.0" x="454.0" y="420.0"/>
+        <dc:Bounds x="454" y="420" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_21" sourceElement="_BPMNShape_ScriptTask_237" targetElement="_BPMNShape_CallActivity_42">
-        <di:waypoint xsi:type="dc:Point" x="562.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="591.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="562" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="591" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="446.0" y="460.0"/>
+          <dc:Bounds x="446" y="460" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_18" bpmnElement="SubProcess_errorHandler" isExpanded="true">
-        <dc:Bounds height="187.0" width="781.0" x="250.0" y="786.0"/>
+        <dc:Bounds x="250" y="786" width="781" height="187" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_63" bpmnElement="StartEvent_catchAllErrors">
-        <dc:Bounds height="37.0" width="37.0" x="301.0" y="844.0"/>
+        <dc:Bounds x="301" y="844" width="37" height="37" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="98.0" x="270.0" y="886.0"/>
+          <dc:Bounds x="270" y="886" width="98" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_238" bpmnElement="ScriptTask_preFalloutHandler">
-        <dc:Bounds height="61.0" width="109.0" x="445.0" y="832.0"/>
+        <dc:Bounds x="445" y="832" width="109" height="61" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_44" bpmnElement="CallActivity_falloutHandler">
-        <dc:Bounds height="61.0" width="109.0" x="639.0" y="832.0"/>
+        <dc:Bounds x="639" y="832" width="109" height="61" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ScriptTask_238" targetElement="_BPMNShape_CallActivity_44">
-        <di:waypoint xsi:type="dc:Point" x="553.0" y="862.0"/>
-        <di:waypoint xsi:type="dc:Point" x="639.0" y="862.0"/>
+        <di:waypoint xsi:type="dc:Point" x="553" y="862" />
+        <di:waypoint xsi:type="dc:Point" x="639" y="862" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="573.0" y="946.0"/>
+          <dc:Bounds x="573" y="946" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_170" bpmnElement="EndEvent_3">
-        <dc:Bounds height="37.0" width="37.0" x="862.0" y="844.0"/>
+        <dc:Bounds x="862" y="844" width="37" height="37" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="880.0" y="886.0"/>
+          <dc:Bounds x="880" y="886" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_CallActivity_44" targetElement="_BPMNShape_EndEvent_170">
-        <di:waypoint xsi:type="dc:Point" x="747.0" y="862.0"/>
-        <di:waypoint xsi:type="dc:Point" x="862.0" y="862.0"/>
+        <di:waypoint xsi:type="dc:Point" x="747" y="862" />
+        <di:waypoint xsi:type="dc:Point" x="862" y="862" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="765.0" y="1030.0"/>
+          <dc:Bounds x="765" y="1030" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_171" bpmnElement="EndEvent_4">
-        <dc:Bounds height="43.0" width="43.0" x="1461.0" y="438.0"/>
+        <dc:Bounds x="1461" y="438" width="43" height="43" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="50.0" x="1457.0" y="486.0"/>
+          <dc:Bounds x="1457" y="486" width="50" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_ScriptTask_230" targetElement="_BPMNShape_EndEvent_171">
-        <di:waypoint xsi:type="dc:Point" x="1426.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1461.0" y="459.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1426" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="1461" y="459" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1442.0" y="467.0"/>
+          <dc:Bounds x="1442" y="467" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_StartEvent_63" targetElement="_BPMNShape_ScriptTask_238">
-        <di:waypoint xsi:type="dc:Point" x="337.0" y="862.0"/>
-        <di:waypoint xsi:type="dc:Point" x="445.0" y="862.0"/>
+        <di:waypoint xsi:type="dc:Point" x="337" y="862" />
+        <di:waypoint xsi:type="dc:Point" x="445" y="862" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="385.0" y="1030.0"/>
+          <dc:Bounds x="385" y="1030" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_254" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
-        <dc:Bounds height="34.0" width="34.0" x="931.0" y="244.0"/>
+        <dc:Bounds x="931" y="244" width="34" height="34" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="135.0" x="881.0" y="283.0"/>
+          <dc:Bounds x="881" y="283" width="135" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_YesVfModuleRelation" sourceElement="_BPMNShape_ExclusiveGateway_254" targetElement="_BPMNShape_ScriptTask_313">
-        <di:waypoint xsi:type="dc:Point" x="931.0" y="261.0"/>
-        <di:waypoint xsi:type="dc:Point" x="634.0" y="261.0"/>
-        <di:waypoint xsi:type="dc:Point" x="634.0" y="262.0"/>
-        <di:waypoint xsi:type="dc:Point" x="405.0" y="262.0"/>
+        <di:waypoint xsi:type="dc:Point" x="931" y="261" />
+        <di:waypoint xsi:type="dc:Point" x="634" y="261" />
+        <di:waypoint xsi:type="dc:Point" x="634" y="262" />
+        <di:waypoint xsi:type="dc:Point" x="405" y="262" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="729.0" y="261.0"/>
+          <dc:Bounds x="729" y="261" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_313" bpmnElement="ScriptTask_queryAaiForVfModule">
-        <dc:Bounds height="80.0" width="109.0" x="297.0" y="222.0"/>
+        <dc:Bounds x="297" y="222" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_255" bpmnElement="ExclusiveGateway_personaModelIdMatch" isMarkerVisible="true">
-        <dc:Bounds height="34.0" width="34.0" x="333.0" y="346.0"/>
+        <dc:Bounds x="333" y="346" width="34" height="34" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="156.0" x="272.0" y="385.0"/>
+          <dc:Bounds x="272" y="385" width="156" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ScriptTask_313" targetElement="_BPMNShape_ExclusiveGateway_255">
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="302.0"/>
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="329.0"/>
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="346.0"/>
+        <di:waypoint xsi:type="dc:Point" x="350" y="302" />
+        <di:waypoint xsi:type="dc:Point" x="350" y="329" />
+        <di:waypoint xsi:type="dc:Point" x="350" y="346" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="347.0" y="318.0"/>
+          <dc:Bounds x="347" y="318" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_personaModelIdMatchYes" sourceElement="_BPMNShape_ExclusiveGateway_255" targetElement="_BPMNShape_ExclusiveGateway_256">
-        <di:waypoint xsi:type="dc:Point" x="367.0" y="363.0"/>
-        <di:waypoint xsi:type="dc:Point" x="491.0" y="363.0"/>
+        <di:waypoint xsi:type="dc:Point" x="367" y="363" />
+        <di:waypoint xsi:type="dc:Point" x="491" y="363" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="398.0" y="363.0"/>
+          <dc:Bounds x="398" y="363" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_256" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
-        <dc:Bounds height="34.0" width="34.0" x="491.0" y="346.0"/>
+        <dc:Bounds x="491" y="346" width="34" height="34" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="508.0" y="385.0"/>
+          <dc:Bounds x="508" y="385" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_noVfModuleRelation" sourceElement="_BPMNShape_ExclusiveGateway_254" targetElement="_BPMNShape_ExclusiveGateway_256">
-        <di:waypoint xsi:type="dc:Point" x="948.0" y="278.0"/>
-        <di:waypoint xsi:type="dc:Point" x="948.0" y="363.0"/>
-        <di:waypoint xsi:type="dc:Point" x="701.0" y="363.0"/>
-        <di:waypoint xsi:type="dc:Point" x="525.0" y="363.0"/>
+        <di:waypoint xsi:type="dc:Point" x="948" y="278" />
+        <di:waypoint xsi:type="dc:Point" x="948" y="363" />
+        <di:waypoint xsi:type="dc:Point" x="701" y="363" />
+        <di:waypoint xsi:type="dc:Point" x="525" y="363" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="795.0" y="363.0"/>
+          <dc:Bounds x="795" y="363" width="22" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_personaModelidMatchNo" sourceElement="_BPMNShape_ExclusiveGateway_255" targetElement="_BPMNShape_ScriptTask_315">
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="380.0"/>
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="401.0"/>
-        <di:waypoint xsi:type="dc:Point" x="351.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="350" y="380" />
+        <di:waypoint xsi:type="dc:Point" x="350" y="401" />
+        <di:waypoint xsi:type="dc:Point" x="351" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="350.0" y="409.0"/>
+          <dc:Bounds x="350" y="409" width="22" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_315" bpmnElement="ScriptTask_handlePersonaModelIdMismatch">
-        <dc:Bounds height="80.0" width="109.0" x="297.0" y="460.0"/>
+        <dc:Bounds x="297" y="460" width="109" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_172" bpmnElement="EndEvent_personaModelIdMismatch">
-        <dc:Bounds height="43.0" width="43.0" x="330.0" y="600.0"/>
+        <dc:Bounds x="330" y="600" width="43" height="43" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="351.0" y="648.0"/>
+          <dc:Bounds x="351" y="648" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_24" bpmnElement="SequenceFlow_18" sourceElement="_BPMNShape_ScriptTask_315" targetElement="_BPMNShape_EndEvent_172">
-        <di:waypoint xsi:type="dc:Point" x="351.0" y="540.0"/>
-        <di:waypoint xsi:type="dc:Point" x="351.0" y="600.0"/>
+        <di:waypoint xsi:type="dc:Point" x="351" y="540" />
+        <di:waypoint xsi:type="dc:Point" x="351" y="600" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="348.0" y="560.0"/>
+          <dc:Bounds x="348" y="560" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_25" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ExclusiveGateway_256" targetElement="_BPMNShape_ScriptTask_237">
-        <di:waypoint xsi:type="dc:Point" x="508.0" y="380.0"/>
-        <di:waypoint xsi:type="dc:Point" x="508.0" y="420.0"/>
+        <di:waypoint xsi:type="dc:Point" x="508" y="380" />
+        <di:waypoint xsi:type="dc:Point" x="508" y="420" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_318" bpmnElement="ScriptTask_queryAaiGenricVnf">
-        <dc:Bounds height="75.0" width="97.0" x="612.0" y="112.0"/>
+        <dc:Bounds x="612" y="112" width="97" height="75" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_318" targetElement="_BPMNShape_ScriptTask_235">
-        <di:waypoint xsi:type="dc:Point" x="708.0" y="149.0"/>
-        <di:waypoint xsi:type="dc:Point" x="742.0" y="149.0"/>
+        <di:waypoint xsi:type="dc:Point" x="708" y="149" />
+        <di:waypoint xsi:type="dc:Point" x="742" y="149" />
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVnfInfra.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVnfInfra.bpmn
new file mode 100644
index 0000000..2631da1
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateVnfInfra.bpmn
@@ -0,0 +1,1123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_F0omAMXGEeW834CKd-K10Q" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+  <bpmn2:process id="UpdateVnfInfra" name="UpdateVnfInfra" isExecutable="true">
+    <bpmn2:scriptTask id="ScriptTask_1" name="Send Synch Response" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0y0jt4l</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.sendSynchResponse(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="Task_1rxiqe1" targetRef="ExclusiveGateway_045e1uz" />
+    <bpmn2:scriptTask id="PreProcessRequest" name="Pre-Process Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.preProcessRequest(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="PreProcessRequest" targetRef="ScriptTask_1" />
+    <bpmn2:callActivity id="CallActivity_1" name="Completion Handler" calledElement="CompleteMsoProcess">
+      <bpmn2:extensionElements>
+        <camunda:in source="UPDVnfI_CompletionHandlerRequest" target="CompleteMsoProcessRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_4" />
+    <bpmn2:endEvent id="EndEvent_1" name="TheEnd">
+      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_5" />
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="ScriptTask_4" name="Set Success Indicator" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[// The following variable is checked by the unit test
+execution.setVariable("UpdateVfModuleInfraSuccessIndicator", true)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_4" targetRef="EndEvent_1" />
+    <bpmn2:scriptTask id="ScriptTask_10" name="Completion Handler (prep)" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.completionHandlerPrep(execution, 'UPDVnfI_CompletionHandlerRequest')
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_10" targetRef="CallActivity_1" />
+    <bpmn2:subProcess id="SubProcess_1" name="Error Handler" triggeredByEvent="true">
+      <bpmn2:startEvent id="StartEvent_3" name="Catch All Errors">
+        <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />
+      </bpmn2:startEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_3" />
+      <bpmn2:scriptTask id="ScriptTask_3" name="Fallout Handler (prep)" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVfModuleInfra()
+uvfm.falloutHandlerPrep(execution, 'UPDVnfI_FalloutHandlerRequest')
+]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:sequenceFlow id="SequenceFlow_7" sourceRef="ScriptTask_3" targetRef="CallActivity_2" />
+      <bpmn2:callActivity id="CallActivity_2" name="Fallout Handler" calledElement="FalloutHandler">
+        <bpmn2:extensionElements>
+          <camunda:in source="UPDVnfI_FalloutHandlerRequest" target="FalloutHandlerRequest" />
+          <camunda:in source="mso-request-id" target="mso-request-id" />
+          <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        </bpmn2:extensionElements>
+        <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
+      </bpmn2:callActivity>
+      <bpmn2:endEvent id="EndEvent_2">
+        <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
+        <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1" />
+      </bpmn2:endEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="CallActivity_2" targetRef="EndEvent_2" />
+    </bpmn2:subProcess>
+    <bpmn2:endEvent id="EndEvent_3">
+      <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition id="TerminateEventDefinition_2" />
+    </bpmn2:endEvent>
+    <bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="SubProcess_1">
+      <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" />
+    </bpmn2:boundaryEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_3" />
+    <bpmn2:startEvent id="StartEvent_1" name="Start">
+      <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="StartEvent_1" targetRef="PreProcessRequest" />
+    <bpmn2:callActivity id="ScriptTask_6" name="DoUpdateVnfAndModules" calledElement="DoUpdateVnfAndModules">
+      <bpmn2:extensionElements>
+        <camunda:in source="UPDVnfI_requestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="isVidRequest" target="isVidRequest" />
+        <camunda:in source="UPDVnfI_vnfType" target="vnfType" />
+        <camunda:in source="UPDVnfI_vnfName" target="vnfName" />
+        <camunda:in source="UPDVnfI_vnfId" target="vnfId" />
+        <camunda:in source="UPDVnfI_asdcServiceModelVersion" target="asdcServiceModelVersion" />
+        <camunda:in source="UPDVnfI_serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="UPDVnfI_serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="UPDVnfI_vnfModelInfo" target="vnfModelInfo" />
+        <camunda:in source="UPDVnfI_globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="UPDVnfI_lcpCloudRegionId" target="lcpCloudRegionId" />
+        <camunda:in source="UPDVnfI_tenantId" target="tenantId" />
+        <camunda:in source="UPDVnfI_sdncVersion" target="sdncVersion" />
+        <camunda:in source="UPDVnfI_usePreload" target="usePreload" />
+        <camunda:in source="UPDVnfI_vnfResourceDecomposition" target="vnfResourceDecomposition" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_19ba94v</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0gzzeru</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="no" sourceRef="ExclusiveGateway_0l2z6wc" targetRef="ScriptTask_10" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1w35ov3" sourceRef="Task_1gg76h7" targetRef="Task_1opcb4j" />
+    <bpmn2:callActivity id="Task_1gg76h7" name="Decompose Service" calledElement="DecomposeService">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="UPDVnfI_serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="serviceDecomposition" target="serviceDecomposition" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0y0jt4l</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1w35ov3</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_053qjfy" sourceRef="Task_1opcb4j" targetRef="Task_0vy2zge" />
+    <bpmn2:scriptTask id="Task_1opcb4j" name="Get VnfResourceDecomposition" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1w35ov3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_053qjfy</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.getVnfResourceDecomposition(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0y0jt4l" sourceRef="ScriptTask_1" targetRef="Task_1gg76h7" />
+    <bpmn2:scriptTask id="Task_1rxiqe1" name="Check If VNF Is In Maintenance in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_16mo99z</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0fxuur5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.checkIfVnfInMaintInAAI(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0usxnlk" sourceRef="Task_0vy2zge" targetRef="ExclusiveGateway_0q323wc" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1bkhs8m" name="no" sourceRef="ExclusiveGateway_0ud5uwa" targetRef="Task_1dtbnuy" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0gzzeru" sourceRef="ScriptTask_6" targetRef="ExclusiveGateway_0ulrq9g" />
+    <bpmn2:scriptTask id="Task_0ap39ka" name="Set VNF inMaintenance Flag in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0baosqi</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1wax44p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0k3fx7p</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.setVnfInMaintFlagInAAI(execution, true)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1drglpt" name="Unset VNF In Maintenance Flag in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_19lg15d</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1lsfn19</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_12mfil6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.setVnfInMaintFlagInAAI(execution, false)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_0vy2zge" name="Check If Physical Servers Are Locked in A&#38;AI" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_053qjfy</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0usxnlk</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.checkIfPserversInMaintInAAI(execution)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0xx8y1s" sourceRef="Task_1dtbnuy" targetRef="ExclusiveGateway_1slvyx2" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0a6pdza" sourceRef="Task_1fj63ov" targetRef="ExclusiveGateway_1ichg7h" />
+    <bpmn2:sequenceFlow id="SequenceFlow_13h26h9" sourceRef="Task_1cfkcss" targetRef="ExclusiveGateway_1etgtgi" />
+    <bpmn2:scriptTask id="Task_1dtbnuy" name="Call APP-C VNF Lock" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1bkhs8m</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1nlqlwn</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0xx8y1s</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.Lock)
+]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1fj63ov" name="Call APP-C Health Check" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0qy68ib</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1sla5dr</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0a6pdza</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.HealthCheck)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1cfkcss" name="Call APP-C VNF Graceful Stop" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0q0qan8</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0iektwg</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_13h26h9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.Stop)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1uno5rs" sourceRef="Task_1hdg951" targetRef="ExclusiveGateway_02tj4dw" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1c79909" sourceRef="Task_1ca5ctq" targetRef="ExclusiveGateway_1gn5lab" />
+    <bpmn2:scriptTask id="Task_1hdg951" name="Call APP-C VNF Start" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_04zwhw4</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1uno5rs</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.Start)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="Task_1ca5ctq" name="Call APP-C Health Check" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_162mm0m</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1hx1ur7</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1c79909</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.HealthCheck)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1xfbwpi" sourceRef="Task_1sove95" targetRef="ExclusiveGateway_06mv93h" />
+    <bpmn2:scriptTask id="Task_1sove95" name="Call APP-C VNF Unlock" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_197t3qk</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0ukzynj</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1xfbwpi</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.appc.client.lcm.model.Action
+import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.runAppcCommand(execution, Action.Unlock)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0q323wc" name="Error on PServers Check?" default="SequenceFlow_16mo99z">
+      <bpmn2:incoming>SequenceFlow_0usxnlk</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_16mo99z</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1qmz2ez</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_16mo99z" name="no" sourceRef="ExclusiveGateway_0q323wc" targetRef="Task_1rxiqe1" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_045e1uz" name="Error On inMaintenance Check?" default="SequenceFlow_0baosqi">
+      <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0baosqi</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_03rkfbo</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0baosqi" name="no" sourceRef="ExclusiveGateway_045e1uz" targetRef="Task_0ap39ka" />
+    <bpmn2:callActivity id="Task_0q5cdit" name="Rainy Day Handler" calledElement="RainyDayHandler">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="UPDVnfI_serviceType" target="serviceType" />
+        <camunda:in source="UPDVnfI_nfRole" target="vnfType" />
+        <camunda:in source="UPDVnfI_currentActivity" target="currentActivity" />
+        <camunda:in source="UPDVnfI_workStep" target="workStep" />
+        <camunda:in source="UPDVnfI_failedActivity" target="failedActivity" />
+        <camunda:in source="UPDVnfI_errorCode" target="errorCode" />
+        <camunda:in source="UPDVnfI_errorText" target="errorText" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="handlingCode" target="UPDVnfI_disposition" />
+        <camunda:in source="UPDVnfI_requestorId" target="requestorId" />
+        <camunda:out source="taskId" target="UPDVnfI_taskId" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_1qmz2ez</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_03rkfbo</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1lsm3bn</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0bduwog</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0uwar5b</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0i7hfj2</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_10ek8l4</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_13yjc85</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0waedj5</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1hg9c2l</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0gej71y</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0v0u7mf</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qmz2ez" name="yes" sourceRef="ExclusiveGateway_0q323wc" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_03rkfbo" name="yes" sourceRef="ExclusiveGateway_045e1uz" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0v0u7mf" sourceRef="Task_0q5cdit" targetRef="ExclusiveGateway_0xlxgl0" />
+    <bpmn2:task id="Task_0zbogrm" name="Rollback Processing">
+      <bpmn2:incoming>SequenceFlow_1qr8msw</bpmn2:incoming>
+    </bpmn2:task>
+    <bpmn2:sequenceFlow id="SequenceFlow_0vpd06n" name="Abort" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="Task_1tg549h">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_disposition") == "Abort"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qr8msw" name="Rollback" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="Task_0zbogrm">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_disposition") == "Rollback"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0ud5uwa" name="Eror on inMaintenance Set?" default="SequenceFlow_1bkhs8m">
+      <bpmn2:incoming>SequenceFlow_0k3fx7p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1bkhs8m</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1lsm3bn</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0k3fx7p" sourceRef="Task_0ap39ka" targetRef="ExclusiveGateway_0ud5uwa" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1lsm3bn" name="yes" sourceRef="ExclusiveGateway_0ud5uwa" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1slvyx2" name="Error on VNF Lock?" default="SequenceFlow_0qy68ib">
+      <bpmn2:incoming>SequenceFlow_0xx8y1s</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0qy68ib</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0bduwog</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0qy68ib" name="no" sourceRef="ExclusiveGateway_1slvyx2" targetRef="Task_1fj63ov" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1ichg7h" name="Error on Pre Health Check?" default="SequenceFlow_0q0qan8">
+      <bpmn2:incoming>SequenceFlow_0a6pdza</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0q0qan8</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0uwar5b</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0q0qan8" name="no" sourceRef="ExclusiveGateway_1ichg7h" targetRef="Task_1cfkcss" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1etgtgi" name="Error on VNF Stop?" default="SequenceFlow_1c0vdki">
+      <bpmn2:incoming>SequenceFlow_13h26h9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1c0vdki</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0i7hfj2</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_1c0vdki" name="no" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0eae8go" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0bduwog" name="yes" sourceRef="ExclusiveGateway_1slvyx2" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0uwar5b" name="yes" sourceRef="ExclusiveGateway_1ichg7h" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0i7hfj2" name="yes" sourceRef="ExclusiveGateway_1etgtgi" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0ulrq9g" name="Error on DoUpdateVnfAndNModules?" default="SequenceFlow_04zwhw4">
+      <bpmn2:incoming>SequenceFlow_0gzzeru</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_04zwhw4</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_10ek8l4</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_04zwhw4" name="no" sourceRef="ExclusiveGateway_0ulrq9g" targetRef="Task_1hdg951" />
+    <bpmn2:sequenceFlow id="SequenceFlow_10ek8l4" name="yes" sourceRef="ExclusiveGateway_0ulrq9g" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_02tj4dw" name="Error on VNF Start?" default="SequenceFlow_162mm0m">
+      <bpmn2:incoming>SequenceFlow_1uno5rs</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_162mm0m</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0waedj5</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_162mm0m" name="no" sourceRef="ExclusiveGateway_02tj4dw" targetRef="Task_1ca5ctq" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1gn5lab" name="Error on Post Health Check?" default="SequenceFlow_197t3qk">
+      <bpmn2:incoming>SequenceFlow_1c79909</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_197t3qk</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1hg9c2l</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_197t3qk" name="no" sourceRef="ExclusiveGateway_1gn5lab" targetRef="Task_1sove95" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_06mv93h" name="Error on VNF Unlock?" default="SequenceFlow_19lg15d">
+      <bpmn2:incoming>SequenceFlow_1xfbwpi</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_19lg15d</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0gej71y</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_19lg15d" name="no" sourceRef="ExclusiveGateway_06mv93h" targetRef="Task_1drglpt" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0l2z6wc" name="Erorr on inMaintenance Unset?" default="SequenceFlow_3">
+      <bpmn2:incoming>SequenceFlow_12mfil6</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_13yjc85</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_12mfil6" sourceRef="Task_1drglpt" targetRef="ExclusiveGateway_0l2z6wc" />
+    <bpmn2:sequenceFlow id="SequenceFlow_13yjc85" name="yes" sourceRef="ExclusiveGateway_0l2z6wc" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0waedj5" name="yes" sourceRef="ExclusiveGateway_02tj4dw" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1hg9c2l" name="yes" sourceRef="ExclusiveGateway_1gn5lab" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0gej71y" name="yes" sourceRef="ExclusiveGateway_06mv93h" targetRef="Task_0q5cdit">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_errorCode") != "0"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:scriptTask id="Task_1tg549h" name="Abort Processing" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_0vpd06n</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1c022sy</bpmn2:incoming>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.abortProcessing(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0xlxgl0" name="Check Disposition">
+      <bpmn2:incoming>SequenceFlow_0v0u7mf</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0vpd06n</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1qr8msw</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_05gpym3</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_0y82zzx" name="Which step to skip?" default="SequenceFlow_1c022sy">
+      <bpmn2:incoming>SequenceFlow_05gpym3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1sla5dr</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0iektwg</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1ttepat</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1hx1ur7</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0ukzynj</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1lsfn19</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0fxuur5</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1wax44p</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1nlqlwn</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1c022sy</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_05gpym3" name="Skip" sourceRef="ExclusiveGateway_0xlxgl0" targetRef="ExclusiveGateway_0y82zzx">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_disposition") == "Skip"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1sla5dr" name="Skip APP-C VNF Lock" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1fj63ov">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "LockVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0iektwg" name="Skip APP-C VNF Pre Health Check" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1cfkcss">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "HealthCheckVNF1"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1ttepat" name="Skip APP-C VNF Stop" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_0eae8go">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "StopVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1hx1ur7" name="Skip APP-C VNF Start" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1ca5ctq">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "StartVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_0ukzynj" name="Skip APP-C Post Health Check" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1sove95">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "HealthCheckVNF2"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1lsfn19" name="Skip APP-C VNF Unlock" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1drglpt">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "UnlockVNF"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_19ba94v" sourceRef="Task_0eae8go" targetRef="ScriptTask_6" />
+    <bpmn2:scriptTask id="Task_0eae8go" name="Prepare DoUpdateVnfAndModules" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1c0vdki</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1ttepat</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_19ba94v</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def uvfm = new UpdateVnfInfra()
+uvfm.prepDoUpdateVnfAndModules(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0fxuur5" name="Skip Check if PServers Locked in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1rxiqe1">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "checkIfPserversInMaintInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1wax44p" name="Skip If VNF Is in Maint in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_0ap39ka">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "checkIfVnfInMaintInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1nlqlwn" name="Skip Set VNF In Maint in AAI" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1dtbnuy">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("UPDVnfI_workStep") == "setVnfInMaintFlagInAAI"]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_1c022sy" sourceRef="ExclusiveGateway_0y82zzx" targetRef="Task_1tg549h" />
+  </bpmn2:process>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateVnfInfra">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_50" bpmnElement="StartEvent_1">
+        <dc:Bounds x="97" y="72" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="103" y="113" width="23" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_125" bpmnElement="EndEvent_1">
+        <dc:Bounds x="595" y="975" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="594" y="1016" width="38" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_StartEvent_50" targetElement="_BPMNShape_ScriptTask_124">
+        <di:waypoint xsi:type="dc:Point" x="133" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="209" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="171" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_124" bpmnElement="PreProcessRequest">
+        <dc:Bounds x="209" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_124" targetElement="_BPMNShape_ScriptTask_125">
+        <di:waypoint xsi:type="dc:Point" x="309" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="373" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="341" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_125" bpmnElement="ScriptTask_1">
+        <dc:Bounds x="373" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_125">
+        <di:waypoint xsi:type="dc:Point" x="525" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_127" bpmnElement="ScriptTask_4">
+        <dc:Bounds x="439" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_127" targetElement="_BPMNShape_EndEvent_125">
+        <di:waypoint xsi:type="dc:Point" x="539" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="595" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="716" y="834" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_133" bpmnElement="ScriptTask_10">
+        <dc:Bounds x="139" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_27" bpmnElement="CallActivity_1">
+        <dc:Bounds x="289" y="953" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_133" targetElement="_BPMNShape_CallActivity_27">
+        <di:waypoint xsi:type="dc:Point" x="239" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="289" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="264" y="999" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_17" bpmnElement="SubProcess_1" isExpanded="true">
+        <dc:Bounds x="85" y="1189" width="565" height="241" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_52" bpmnElement="StartEvent_3">
+        <dc:Bounds x="149" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="128" y="1324" width="77" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_136" bpmnElement="ScriptTask_3">
+        <dc:Bounds x="229" y="1261" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_52" targetElement="_BPMNShape_ScriptTask_136">
+        <di:waypoint xsi:type="dc:Point" x="185" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="229" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="232" y="1601" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_136" targetElement="_BPMNShape_CallActivity_28">
+        <di:waypoint xsi:type="dc:Point" x="329" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="397" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="345" y="1301" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_126" bpmnElement="EndEvent_2">
+        <dc:Bounds x="553" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="571" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_43" bpmnElement="BoundaryEvent_1">
+        <dc:Bounds x="632" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="650" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_127" bpmnElement="EndEvent_3">
+        <dc:Bounds x="726" y="1283" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="744" y="1324" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_BoundaryEvent_43" targetElement="_BPMNShape_EndEvent_127">
+        <di:waypoint xsi:type="dc:Point" x="668" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="726" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="697" y="1286" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_28" bpmnElement="CallActivity_2">
+        <dc:Bounds x="397" y="1261" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_CallActivity_27" targetElement="_BPMNShape_ScriptTask_127">
+        <di:waypoint xsi:type="dc:Point" x="389" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="439" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="432" y="961" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_CallActivity_28" targetElement="_BPMNShape_EndEvent_126">
+        <di:waypoint xsi:type="dc:Point" x="497" y="1301" />
+        <di:waypoint xsi:type="dc:Point" x="553" y="1301" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="390" y="1361" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_181" bpmnElement="ScriptTask_6">
+        <dc:Bounds x="454" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_181" targetElement="_BPMNShape_ScriptTask_133">
+        <di:waypoint xsi:type="dc:Point" x="1130" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="1130" y="900" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="900" />
+        <di:waypoint xsi:type="dc:Point" x="99" y="993" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="993" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1109" y="862" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1w35ov3_di" bpmnElement="SequenceFlow_1w35ov3">
+        <di:waypoint xsi:type="dc:Point" x="655" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="718" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="687" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_0qfx7sz_di" bpmnElement="Task_1gg76h7">
+        <dc:Bounds x="555" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_053qjfy_di" bpmnElement="SequenceFlow_053qjfy">
+        <di:waypoint xsi:type="dc:Point" x="818" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="982" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="982" y="156" />
+        <di:waypoint xsi:type="dc:Point" x="103" y="156" />
+        <di:waypoint xsi:type="dc:Point" x="103" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="131" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="543" y="141" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_08xzuox_di" bpmnElement="Task_1opcb4j">
+        <dc:Bounds x="718" y="50" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0y0jt4l_di" bpmnElement="SequenceFlow_0y0jt4l">
+        <di:waypoint xsi:type="dc:Point" x="473" y="90" />
+        <di:waypoint xsi:type="dc:Point" x="555" y="90" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="514" y="75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_19pf9z8_di" bpmnElement="Task_1rxiqe1">
+        <dc:Bounds x="425" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0usxnlk_di" bpmnElement="SequenceFlow_0usxnlk">
+        <di:waypoint xsi:type="dc:Point" x="231" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="262" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1bkhs8m_di" bpmnElement="SequenceFlow_1bkhs8m">
+        <di:waypoint xsi:type="dc:Point" x="896" y="264" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="339" />
+        <di:waypoint xsi:type="dc:Point" x="98" y="339" />
+        <di:waypoint xsi:type="dc:Point" x="98" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="905" y="313.95238095238096" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gzzeru_di" bpmnElement="SequenceFlow_0gzzeru">
+        <di:waypoint xsi:type="dc:Point" x="554" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="617" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="586" y="584" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0wa4zya_di" bpmnElement="Task_0ap39ka">
+        <dc:Bounds x="714" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0sgm9bu_di" bpmnElement="Task_1drglpt">
+        <dc:Bounds x="960" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_16jtt5t_di" bpmnElement="Task_0vy2zge">
+        <dc:Bounds x="131" y="197" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0xx8y1s_di" bpmnElement="SequenceFlow_0xx8y1s">
+        <di:waypoint xsi:type="dc:Point" x="239" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="266" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0a6pdza_di" bpmnElement="SequenceFlow_0a6pdza">
+        <di:waypoint xsi:type="dc:Point" x="525" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_13h26h9_di" bpmnElement="SequenceFlow_13h26h9">
+        <di:waypoint xsi:type="dc:Point" x="814" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="412" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_02wc9i0_di" bpmnElement="Task_1dtbnuy">
+        <dc:Bounds x="139" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0mz2hdm_di" bpmnElement="Task_1fj63ov">
+        <dc:Bounds x="425" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1wagy2o_di" bpmnElement="Task_1cfkcss">
+        <dc:Bounds x="714" y="387" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1uno5rs_di" bpmnElement="SequenceFlow_1uno5rs">
+        <di:waypoint xsi:type="dc:Point" x="239" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="292" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="266" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1c79909_di" bpmnElement="SequenceFlow_1c79909">
+        <di:waypoint xsi:type="dc:Point" x="525" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="601" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="563" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_13zephm_di" bpmnElement="Task_1hdg951">
+        <dc:Bounds x="139" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_11xqphb_di" bpmnElement="Task_1ca5ctq">
+        <dc:Bounds x="425" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1xfbwpi_di" bpmnElement="SequenceFlow_1xfbwpi">
+        <di:waypoint xsi:type="dc:Point" x="814" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="795" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0a4ovfa_di" bpmnElement="Task_1sove95">
+        <dc:Bounds x="714" y="770" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0q323wc_di" bpmnElement="ExclusiveGateway_0q323wc" isMarkerVisible="true">
+        <dc:Bounds x="291.803" y="212" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="274" y="262" width="86" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_16mo99z_di" bpmnElement="SequenceFlow_16mo99z">
+        <di:waypoint xsi:type="dc:Point" x="342" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="373" y="213" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_045e1uz_di" bpmnElement="ExclusiveGateway_045e1uz" isMarkerVisible="true">
+        <dc:Bounds x="601" y="212" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="589" y="262" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0baosqi_di" bpmnElement="SequenceFlow_0baosqi">
+        <di:waypoint xsi:type="dc:Point" x="651" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="673" y="214" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_1k5n5d1_di" bpmnElement="Task_0q5cdit">
+        <dc:Bounds x="1132" y="470" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qmz2ez_di" bpmnElement="SequenceFlow_1qmz2ez">
+        <di:waypoint xsi:type="dc:Point" x="317" y="212" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="191" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="191" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="196" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_03rkfbo_di" bpmnElement="SequenceFlow_03rkfbo">
+        <di:waypoint xsi:type="dc:Point" x="626" y="212" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="187" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="187" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="683" y="166" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0v0u7mf_di" bpmnElement="SequenceFlow_0v0u7mf">
+        <di:waypoint xsi:type="dc:Point" x="1232" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1314" y="510" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1273" y="495" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="Task_0zbogrm_di" bpmnElement="Task_0zbogrm">
+        <dc:Bounds x="1438" y="470" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0vpd06n_di" bpmnElement="SequenceFlow_0vpd06n">
+        <di:waypoint xsi:type="dc:Point" x="1339" y="485" />
+        <di:waypoint xsi:type="dc:Point" x="1339" y="373" />
+        <di:waypoint xsi:type="dc:Point" x="1438" y="373" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1390" y="377" width="26" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qr8msw_di" bpmnElement="SequenceFlow_1qr8msw">
+        <di:waypoint xsi:type="dc:Point" x="1364" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1405" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1405" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1438" y="510" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1379" y="516" width="42" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0ud5uwa_di" bpmnElement="ExclusiveGateway_0ud5uwa" isMarkerVisible="true">
+        <dc:Bounds x="871.1194471865745" y="211.86673247778873" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="904" y="257.86673247778873" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0k3fx7p_di" bpmnElement="SequenceFlow_0k3fx7p">
+        <di:waypoint xsi:type="dc:Point" x="814" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="871" y="237" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="843" y="222" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1lsm3bn_di" bpmnElement="SequenceFlow_1lsm3bn">
+        <di:waypoint xsi:type="dc:Point" x="921" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="237" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1044" y="214" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1slvyx2_di" bpmnElement="ExclusiveGateway_1slvyx2" isMarkerVisible="true">
+        <dc:Bounds x="292" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="283" y="452" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0qy68ib_di" bpmnElement="SequenceFlow_0qy68ib">
+        <di:waypoint xsi:type="dc:Point" x="342" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="412" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1ichg7h_di" bpmnElement="ExclusiveGateway_1ichg7h" isMarkerVisible="true">
+        <dc:Bounds x="601" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="590" y="452" width="72" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0q0qan8_di" bpmnElement="SequenceFlow_0q0qan8">
+        <di:waypoint xsi:type="dc:Point" x="651" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="427" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="677" y="412" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1etgtgi_di" bpmnElement="ExclusiveGateway_1etgtgi" isMarkerVisible="true">
+        <dc:Bounds x="870.9141164856861" y="402" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="909" y="445" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1c0vdki_di" bpmnElement="SequenceFlow_1c0vdki">
+        <di:waypoint xsi:type="dc:Point" x="896" y="452" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="507" />
+        <di:waypoint xsi:type="dc:Point" x="90" y="507" />
+        <di:waypoint xsi:type="dc:Point" x="90" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="219" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="906" y="484" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0bduwog_di" bpmnElement="SequenceFlow_0bduwog">
+        <di:waypoint xsi:type="dc:Point" x="317" y="402" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="354" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="375" y="356" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0uwar5b_di" bpmnElement="SequenceFlow_0uwar5b">
+        <di:waypoint xsi:type="dc:Point" x="626" y="402" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="359" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="359" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="676" y="367" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0i7hfj2_di" bpmnElement="SequenceFlow_0i7hfj2">
+        <di:waypoint xsi:type="dc:Point" x="921" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="427" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="470" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1044" y="412" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0ulrq9g_di" bpmnElement="ExclusiveGateway_0ulrq9g" isMarkerVisible="true">
+        <dc:Bounds x="617" y="574" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="654" y="618" width="83" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_04zwhw4_di" bpmnElement="SequenceFlow_04zwhw4">
+        <di:waypoint xsi:type="dc:Point" x="642" y="624" />
+        <di:waypoint xsi:type="dc:Point" x="642" y="694" />
+        <di:waypoint xsi:type="dc:Point" x="91" y="694" />
+        <di:waypoint xsi:type="dc:Point" x="91" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="139" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="361" y="679" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_10ek8l4_di" bpmnElement="SequenceFlow_10ek8l4">
+        <di:waypoint xsi:type="dc:Point" x="667" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="916" y="584" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_02tj4dw_di" bpmnElement="ExclusiveGateway_02tj4dw" isMarkerVisible="true">
+        <dc:Bounds x="292.1076011846002" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="284" y="835" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_162mm0m_di" bpmnElement="SequenceFlow_162mm0m">
+        <di:waypoint xsi:type="dc:Point" x="342" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="425" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="378" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1gn5lab_di" bpmnElement="ExclusiveGateway_1gn5lab" isMarkerVisible="true">
+        <dc:Bounds x="601.1076011846002" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="591" y="835" width="72" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_197t3qk_di" bpmnElement="SequenceFlow_197t3qk">
+        <di:waypoint xsi:type="dc:Point" x="651.1076011846002" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="714" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="677" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_06mv93h_di" bpmnElement="ExclusiveGateway_06mv93h" isMarkerVisible="true">
+        <dc:Bounds x="871" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="862" y="835" width="68" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_19lg15d_di" bpmnElement="SequenceFlow_19lg15d">
+        <di:waypoint xsi:type="dc:Point" x="921" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="960" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="935" y="795" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0l2z6wc_di" bpmnElement="ExclusiveGateway_0l2z6wc" isMarkerVisible="true">
+        <dc:Bounds x="1105.1076011846003" y="785" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1145" y="833" width="73" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_12mfil6_di" bpmnElement="SequenceFlow_12mfil6">
+        <di:waypoint xsi:type="dc:Point" x="1060" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1105" y="810" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1083" y="785" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_13yjc85_di" bpmnElement="SequenceFlow_13yjc85">
+        <di:waypoint xsi:type="dc:Point" x="1155" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="810" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1160" y="795" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0waedj5_di" bpmnElement="SequenceFlow_0waedj5">
+        <di:waypoint xsi:type="dc:Point" x="317" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="317" y="711" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="711" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="370" y="716" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1hg9c2l_di" bpmnElement="SequenceFlow_1hg9c2l">
+        <di:waypoint xsi:type="dc:Point" x="626" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="626" y="714" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="714" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="669" y="717" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0gej71y_di" bpmnElement="SequenceFlow_0gej71y">
+        <di:waypoint xsi:type="dc:Point" x="896" y="785" />
+        <di:waypoint xsi:type="dc:Point" x="896" y="720" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="720" />
+        <di:waypoint xsi:type="dc:Point" x="1182" y="550" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="905" y="738" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1lb0lk5_di" bpmnElement="Task_1tg549h">
+        <dc:Bounds x="1438" y="333" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1gmvi7n_di" bpmnElement="ExclusiveGateway_0xlxgl0" isMarkerVisible="true">
+        <dc:Bounds x="1314" y="485" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1295" y="534.2201382033564" width="87" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0y82zzx_di" bpmnElement="ExclusiveGateway_0y82zzx" isMarkerVisible="true">
+        <dc:Bounds x="1463" y="671" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1499" y="715" width="69" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_05gpym3_di" bpmnElement="SequenceFlow_05gpym3">
+        <di:waypoint xsi:type="dc:Point" x="1339" y="535" />
+        <di:waypoint xsi:type="dc:Point" x="1339" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="1490" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="1489" y="672" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1404" y="633" width="21" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1sla5dr_di" bpmnElement="SequenceFlow_1sla5dr">
+        <di:waypoint xsi:type="dc:Point" x="1463" y="696" />
+        <di:waypoint xsi:type="dc:Point" x="440" y="696" />
+        <di:waypoint xsi:type="dc:Point" x="440" y="467" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1228" y="699" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0iektwg_di" bpmnElement="SequenceFlow_0iektwg">
+        <di:waypoint xsi:type="dc:Point" x="1467" y="692" />
+        <di:waypoint xsi:type="dc:Point" x="1323" y="667" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="667" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="467" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1214" y="631" width="87" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ttepat_di" bpmnElement="SequenceFlow_1ttepat">
+        <di:waypoint xsi:type="dc:Point" x="1468" y="701" />
+        <di:waypoint xsi:type="dc:Point" x="1346" y="735" />
+        <di:waypoint xsi:type="dc:Point" x="243" y="735" />
+        <di:waypoint xsi:type="dc:Point" x="243" y="639" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1233" y="743" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1hx1ur7_di" bpmnElement="SequenceFlow_1hx1ur7">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="789" />
+        <di:waypoint xsi:type="dc:Point" x="1322" y="883" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="883" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1316" y="811" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0ukzynj_di" bpmnElement="SequenceFlow_0ukzynj">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="818" />
+        <di:waypoint xsi:type="dc:Point" x="1346" y="918" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="918" />
+        <di:waypoint xsi:type="dc:Point" x="764" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1374" y="853.0052048946286" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1lsfn19_di" bpmnElement="SequenceFlow_1lsfn19">
+        <di:waypoint xsi:type="dc:Point" x="1488" y="721" />
+        <di:waypoint xsi:type="dc:Point" x="1488" y="858" />
+        <di:waypoint xsi:type="dc:Point" x="1368" y="952" />
+        <di:waypoint xsi:type="dc:Point" x="1010" y="952" />
+        <di:waypoint xsi:type="dc:Point" x="1010" y="850" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1402" y="937.143889853408" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_19ba94v_di" bpmnElement="SequenceFlow_19ba94v">
+        <di:waypoint xsi:type="dc:Point" x="319" y="599" />
+        <di:waypoint xsi:type="dc:Point" x="454" y="599" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="387" y="584" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0rqgdju_di" bpmnElement="Task_0eae8go">
+        <dc:Bounds x="219" y="559" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0fxuur5_di" bpmnElement="SequenceFlow_0fxuur5">
+        <di:waypoint xsi:type="dc:Point" x="1505" y="688" />
+        <di:waypoint xsi:type="dc:Point" x="1700" y="587" />
+        <di:waypoint xsi:type="dc:Point" x="1700" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="475" y="277" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1563" y="581.1817056243242" width="88" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wax44p_di" bpmnElement="SequenceFlow_1wax44p">
+        <di:waypoint xsi:type="dc:Point" x="1507" y="690" />
+        <di:waypoint xsi:type="dc:Point" x="1804" y="594" />
+        <di:waypoint xsi:type="dc:Point" x="1804" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="743" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="743" y="277" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1671" y="596.5" width="81" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1nlqlwn_di" bpmnElement="SequenceFlow_1nlqlwn">
+        <di:waypoint xsi:type="dc:Point" x="1510" y="693" />
+        <di:waypoint xsi:type="dc:Point" x="1904" y="635" />
+        <di:waypoint xsi:type="dc:Point" x="1904" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="175" y="307" />
+        <di:waypoint xsi:type="dc:Point" x="175" y="387" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1762" y="612.956397371246" width="80" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1c022sy_di" bpmnElement="SequenceFlow_1c022sy">
+        <di:waypoint xsi:type="dc:Point" x="1499" y="682" />
+        <di:waypoint xsi:type="dc:Point" x="1657" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="1657" y="373" />
+        <di:waypoint xsi:type="dc:Point" x="1538" y="373" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1672" y="425.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/processengine.properties b/bpmn/MSOInfrastructureBPMN/src/main/resources/processengine.properties
deleted file mode 100644
index d071fda..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/processengine.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###
-# ============LICENSE_START=======================================================
-# ECOMP MSO
-# ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-###
-processEngineName=infrastructure
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstance.bpmn
index 5488350..24ccc4d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstance.bpmn
@@ -158,13 +158,13 @@
         <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("CRENWKI_isSdncActivateRollbackNeeded" ) == true}]]></bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="SequenceFlow_12tlymf" name="No" sourceRef="isSDNCActivate_ExclusiveGateway" targetRef="ExclusiveGateway_1bk0tqd" />
-      <bpmn2:exclusiveGateway id="isSdncRpc4_ExclusiveGateway4" name="is &#39;1702&#39; SNDC Call?" default="isSdncRpc4No_SequenceFlow4">
+      <bpmn2:exclusiveGateway id="isSdncRpc4_ExclusiveGateway4" name="is not &#39;1610&#39; SNDC Call?" default="isSdncRpc4No_SequenceFlow4">
         <bpmn2:incoming>sdncOk_Yeso_ExclusiveGateway</bpmn2:incoming>
         <bpmn2:outgoing>isSdncRpc4Yes_SequenceFlow4</bpmn2:outgoing>
         <bpmn2:outgoing>isSdncRpc4No_SequenceFlow4</bpmn2:outgoing>
       </bpmn2:exclusiveGateway>
       <bpmn2:sequenceFlow id="isSdncRpc4Yes_SequenceFlow4" name="Yes" sourceRef="isSdncRpc4_ExclusiveGateway4" targetRef="Task_0q6pzpn">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn2:conditionExpression>
+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn2:conditionExpression>
       </bpmn2:sequenceFlow>
       <bpmn2:sequenceFlow id="isSdncRpc4No_SequenceFlow4" name="No" sourceRef="isSdncRpc4_ExclusiveGateway4" targetRef="prepareSDNCRollbackRequest_ScriptTask" />
       <bpmn2:scriptTask id="Task_0q6pzpn" name="Prepare RSRC SDNCRollback Request" scriptFormat="groovy">
@@ -364,16 +364,11 @@
     <bpmn2:sequenceFlow id="siFoundNo" name="No" sourceRef="siFoundCheck" targetRef="workflowExceptionSINotFound" />
     <bpmn2:scriptTask id="workflowExceptionSINotFound" name="Create Workflow Exception" scriptFormat="groovy">
       <bpmn2:incoming>siFoundNo</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.utils.*
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
 ExceptionUtil exceptionUtil = new ExceptionUtil()
-exceptionUtil.buildWorkflowException(execution, 404, "Service Instance Not Found")]]></bpmn2:script>
+exceptionUtil.buildAndThrowWorkflowException(execution, 404, "Service Instance Not Found")
+]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_30" name="" sourceRef="workflowExceptionSINotFound" targetRef="EndEvent_2" />
-    <bpmn2:endEvent id="EndEvent_2">
-      <bpmn2:incoming>SequenceFlow_30</bpmn2:incoming>
-      <bpmn2:errorEventDefinition id="_ErrorEventDefinition_97" errorRef="Error_2" />
-    </bpmn2:endEvent>
     <bpmn2:scriptTask id="callRESTQueryVpnBinding_ScriptTask" name="Call REST Query Vpn Binding in AAI" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
@@ -474,14 +469,14 @@
       <bpmn2:incoming>SequenceFlow_0s51ns0</bpmn2:incoming>
       <bpmn2:errorEventDefinition errorRef="Error_2" />
     </bpmn2:endEvent>
-    <bpmn2:exclusiveGateway id="isSdncRpc1_ExclusiveGateway1" name="is &#39;1702&#39; SNDC Call?" default="isSdncRpc1No_SequenceFlow1">
+    <bpmn2:exclusiveGateway id="isSdncRpc1_ExclusiveGateway1" name="is not &#39;1610&#39; SNDC Call?" default="isSdncRpc1No_SequenceFlow1">
       <bpmn2:incoming>SequenceFlow_32</bpmn2:incoming>
       <bpmn2:outgoing>isSdncRpc1No_SequenceFlow1</bpmn2:outgoing>
       <bpmn2:outgoing>isSdncRpc1Yes_SequenceFlow1</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:sequenceFlow id="isSdncRpc1No_SequenceFlow1" name="No" sourceRef="isSdncRpc1_ExclusiveGateway1" targetRef="prepareSDNCTopoRequest_ScriptTask" />
     <bpmn2:sequenceFlow id="isSdncRpc1Yes_SequenceFlow1" name="Yes" sourceRef="isSdncRpc1_ExclusiveGateway1" targetRef="Task_10lubzj">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:callActivity id="Task_0pbtywn" name="Call SDNC RSRC Assign Adapter V1 " calledElement="sdncAdapter">
       <bpmn2:extensionElements>
@@ -498,13 +493,13 @@
     </bpmn2:callActivity>
     <bpmn2:sequenceFlow id="SequenceFlow_0j8bxnb" sourceRef="Task_10lubzj" targetRef="Task_0pbtywn" />
     <bpmn2:sequenceFlow id="SequenceFlow_0d93bqw" sourceRef="Task_0pbtywn" targetRef="validateSDNCResponse_ScriptTask" />
-    <bpmn2:exclusiveGateway id="isSdncRpc2_ExclusiveGateway2" name="is &#39;1702&#39; SNDC Call?" default="isSdncRpc2No_SequenceFlow2">
+    <bpmn2:exclusiveGateway id="isSdncRpc2_ExclusiveGateway2" name="is  not &#39;1610&#39; SNDC Call?" default="isSdncRpc2No_SequenceFlow2">
       <bpmn2:incoming>SequenceFlow_1ipz2ze</bpmn2:incoming>
       <bpmn2:outgoing>isSdncRpc2Yes_SequenceFlow2</bpmn2:outgoing>
       <bpmn2:outgoing>isSdncRpc2No_SequenceFlow2</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:sequenceFlow id="isSdncRpc2Yes_SequenceFlow2" name="Yes" sourceRef="isSdncRpc2_ExclusiveGateway2" targetRef="Task_1rd6dg6">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:sequenceFlow id="isSdncRpc2No_SequenceFlow2" name="No" sourceRef="isSdncRpc2_ExclusiveGateway2" targetRef="Task_0zzobg6" />
     <bpmn2:scriptTask id="Task_10lubzj" name="Prepare Assign SDNC RPC Request" scriptFormat="groovy">
@@ -925,12 +920,6 @@
           <dc:Bounds x="851" y="319" width="18" height="13" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_247" bpmnElement="EndEvent_2">
-        <dc:Bounds x="791" y="527" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="809" y="568" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_331" bpmnElement="workflowExceptionSINotFound">
         <dc:Bounds x="759" y="395" width="100" height="80" />
       </bpmndi:BPMNShape>
@@ -941,13 +930,6 @@
           <dc:Bounds x="823" y="340.55618916742606" width="14" height="13" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_30" sourceElement="_BPMNShape_ScriptTask_331" targetElement="_BPMNShape_EndEvent_247">
-        <di:waypoint xsi:type="dc:Point" x="809" y="475" />
-        <di:waypoint xsi:type="dc:Point" x="809" y="527" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="824" y="501" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_333" bpmnElement="callRESTQueryNetworkTableRef_ScriptTask">
         <dc:Bounds x="1454" y="879" width="100" height="80" />
       </bpmndi:BPMNShape>
@@ -1097,7 +1079,7 @@
       <bpmndi:BPMNShape id="ExclusiveGateway_1ts3ph0_di" bpmnElement="isSdncRpc1_ExclusiveGateway1" isMarkerVisible="true">
         <dc:Bounds x="1337.228" y="291" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1394" y="304" width="76" height="24" />
+          <dc:Bounds x="1401" y="304" width="61" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1r5sja0_di" bpmnElement="isSdncRpc1No_SequenceFlow1">
@@ -1135,7 +1117,7 @@
       <bpmndi:BPMNShape id="ExclusiveGateway_00dh41t_di" bpmnElement="isSdncRpc4_ExclusiveGateway4" isMarkerVisible="true">
         <dc:Bounds x="713" y="751" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="707" y="710" width="76" height="24" />
+          <dc:Bounds x="714" y="710" width="61" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0suu90e_di" bpmnElement="isSdncRpc4Yes_SequenceFlow4">
@@ -1156,7 +1138,7 @@
       <bpmndi:BPMNShape id="ExclusiveGateway_1gghe34_di" bpmnElement="isSdncRpc2_ExclusiveGateway2" isMarkerVisible="true">
         <dc:Bounds x="1360" y="1553" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1347" y="1619" width="76" height="24" />
+          <dc:Bounds x="1343" y="1619" width="83" height="36" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1lphs99_di" bpmnElement="isSdncRpc2Yes_SequenceFlow2">
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstanceRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstanceRollback.bpmn
index 00ef41c..eb60d42 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstanceRollback.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateNetworkInstanceRollback.bpmn
@@ -97,7 +97,7 @@
     <bpmn:sequenceFlow id="SequenceFlow_17o4w67" sourceRef="ServiceTask_0bqh5yl" targetRef="ExclusiveGateway_1n5jck8" />
     <bpmn:sequenceFlow id="SequenceFlow_101y57s" name="No" sourceRef="ExclusiveGateway_17g4q5c" targetRef="CallActivity_1xilevb" />
     <bpmn:sequenceFlow id="SequenceFlow_0mw0dgd" name="Yes" sourceRef="ExclusiveGateway_17g4q5c" targetRef="CallActivity_0kbwa1x">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:endEvent id="EndEvent_1fvr7ad">
       <bpmn:incoming>SequenceFlow_0yto4gz</bpmn:incoming>
@@ -514,4 +514,4 @@
       </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModule.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModule.bpmn
index fecb720..5383dc8 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModule.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModule.bpmn
@@ -37,9 +37,7 @@
       <bpmn2:outgoing>SequenceFlow_21</bpmn2:outgoing>

     </bpmn2:exclusiveGateway>

     <bpmn2:sequenceFlow id="SequenceFlow_19" name="yes" sourceRef="IsVolumeGroupNameSpecified" targetRef="ConfirmVolumeName">

-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def doCreateVfModule = new DoCreateVfModule()

-return doCreateVfModule.isVolumeGroupNamePresent(execution)]]></bpmn2:conditionExpression>

+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFM_volumeGroupName") != null && execution.getVariable("DCVFM_volumeGroupName") != "" }]]></bpmn2:conditionExpression>

     </bpmn2:sequenceFlow>

     <bpmn2:sequenceFlow id="SequenceFlow_21" name="no" sourceRef="IsVolumeGroupNameSpecified" targetRef="ExclusiveGateway_4" />

     <bpmn2:callActivity id="ConfirmVolumeName" name="Confirm Volume Group Name" calledElement="ConfirmVolumeGroupName">

@@ -180,9 +178,7 @@
       <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>

     </bpmn2:exclusiveGateway>

     <bpmn2:sequenceFlow id="SequenceFlow_28" name="yes" sourceRef="ExclusiveGateway_5" targetRef="PrepareCreateAAIVfModuleVolumeGroupRequest">

-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def doCreateVfModule = new DoCreateVfModule()

-return doCreateVfModule.isVolumeGroupIdPresent(execution)]]></bpmn2:conditionExpression>

+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFM_volumeGroupId") != null && execution.getVariable("DCVFM_volumeGroupId") != "" }]]></bpmn2:conditionExpression>

     </bpmn2:sequenceFlow>

     <bpmn2:sequenceFlow id="SequenceFlow_30" name="no" sourceRef="ExclusiveGateway_5" targetRef="ExclusiveGateway_6" />

     <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="PreProcessUpdateAAIVfModule_1" targetRef="UpdateAAIVfModule_1" />

@@ -314,29 +310,9 @@
 return doCreateVfModule.queryCloudRegion(execution)]]></bpmn2:script>

     </bpmn2:scriptTask>

     <bpmn2:sequenceFlow id="SequenceFlow_40" name="yes" sourceRef="IsVolumeGroupIdSpecified" targetRef="QueryCloudRegion">

-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def doCreateVfModule = new DoCreateVfModule()

-return doCreateVfModule.isVolumeGroupIdPresent(execution)]]></bpmn2:conditionExpression>

+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFM_volumeGroupId") != null && execution.getVariable("DCVFM_volumeGroupId") != "" }]]></bpmn2:conditionExpression>

     </bpmn2:sequenceFlow>

     <bpmn2:sequenceFlow id="SequenceFlow_43" name="" sourceRef="QueryCloudRegion" targetRef="ConfirmVolumeGroupTenant" />

-    <bpmn2:subProcess id="SubProcess_1" name="Error Handling Sub Process" triggeredByEvent="true">

-      <bpmn2:scriptTask id="ScriptTask_1" name="Process Error" scriptFormat="groovy">

-        <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>

-        <bpmn2:outgoing>SequenceFlow_38</bpmn2:outgoing>

-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

-def doCreateVfModule = new DoCreateVfModule()

-doCreateVfModule.processBPMNException(execution)]]></bpmn2:script>

-      </bpmn2:scriptTask>

-      <bpmn2:sequenceFlow id="SequenceFlow_38" name="" sourceRef="ScriptTask_1" targetRef="EndEvent_2" />

-      <bpmn2:startEvent id="StartEvent_2">

-        <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>

-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_1" />

-      </bpmn2:startEvent>

-      <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="StartEvent_2" targetRef="ScriptTask_1" />

-      <bpmn2:endEvent id="EndEvent_2">

-        <bpmn2:incoming>SequenceFlow_38</bpmn2:incoming>

-      </bpmn2:endEvent>

-    </bpmn2:subProcess>

     <bpmn2:scriptTask id="PreProcessRequest" name="Pre-Process Request" scriptFormat="groovy">

       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>

       <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>

@@ -354,7 +330,7 @@
       <bpmn2:extensionElements>

         <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />

         <camunda:in source="isVidRequest" target="isVidRequest" />

-        <camunda:in source="newVfModuleId" target="newVfModuleId" />

+        <camunda:in source="DCVFM_vfModuleId" target="newVfModuleId" />

         <camunda:out source="WorkflowException" target="WorkflowException" />

         <camunda:out source="CreateAAIVfModuleResponse" target="DCVFM_createVfModuleResponse" />

         <camunda:in source="DCVFM_vnfId" target="vnfId" />

@@ -498,6 +474,64 @@
       <bpmn2:incoming>SequenceFlow_05og7iw</bpmn2:incoming>

       <bpmn2:outgoing>SequenceFlow_1f53tby</bpmn2:outgoing>

     </bpmn2:callActivity>

+    <bpmn2:subProcess id="SubProcess_0ltzufk" name="Sub-process for Application Errors" triggeredByEvent="true">

+      <bpmn2:startEvent id="StartEvent_18lzc5m">

+        <bpmn2:outgoing>SequenceFlow_02lc25j</bpmn2:outgoing>

+        <bpmn2:errorEventDefinition errorRef="Error_1" />

+      </bpmn2:startEvent>

+      <bpmn2:endEvent id="EndEvent_0wsdptv">

+        <bpmn2:incoming>SequenceFlow_0z2rczk</bpmn2:incoming>

+        <bpmn2:incoming>SequenceFlow_1pgo10r</bpmn2:incoming>

+      </bpmn2:endEvent>

+      <bpmn2:callActivity id="CallDoCreateVfModuleRollback" name="Call DoCreateVfModuleRollback" calledElement="DoCreateVfModuleRollback">

+        <bpmn2:extensionElements>

+          <camunda:in source="rollbackData" target="rollbackData" />

+          <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />

+          <camunda:in source="isVidRequest" target="isVidRequest" />

+          <camunda:out source="rolledBack" target="rolledBack" />

+          <camunda:out source="rollbackError" target="rollbackError" />

+          <camunda:in source="disableRollback" target="disableRollback" />

+          <camunda:in source="sdncVersion" target="sdncVersion" />

+        </bpmn2:extensionElements>

+        <bpmn2:incoming>SequenceFlow_1i1q78e</bpmn2:incoming>

+        <bpmn2:outgoing>SequenceFlow_0112l2c</bpmn2:outgoing>

+      </bpmn2:callActivity>

+      <bpmn2:scriptTask id="PreProcessRollback" name="Pre Process Rollback" scriptFormat="groovy">

+        <bpmn2:incoming>SequenceFlow_04bd5in</bpmn2:incoming>

+        <bpmn2:outgoing>SequenceFlow_1i1q78e</bpmn2:outgoing>

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def doCreateVfModule = new DoCreateVfModule()

+doCreateVfModule.preProcessRollback(execution)]]></bpmn2:script>

+      </bpmn2:scriptTask>

+      <bpmn2:scriptTask id="PostProcessRollback" name="Post Process Rollback" scriptFormat="groovy">

+        <bpmn2:incoming>SequenceFlow_0112l2c</bpmn2:incoming>

+        <bpmn2:outgoing>SequenceFlow_0z2rczk</bpmn2:outgoing>

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def doCreateVfModule = new DoCreateVfModule()

+doCreateVfModule.postProcessRollback(execution)]]></bpmn2:script>

+      </bpmn2:scriptTask>

+      <bpmn2:sequenceFlow id="SequenceFlow_02lc25j" sourceRef="StartEvent_18lzc5m" targetRef="ExclusiveGateway_039bib8" />

+      <bpmn2:sequenceFlow id="SequenceFlow_0z2rczk" sourceRef="PostProcessRollback" targetRef="EndEvent_0wsdptv" />

+      <bpmn2:sequenceFlow id="SequenceFlow_1i1q78e" sourceRef="PreProcessRollback" targetRef="CallDoCreateVfModuleRollback" />

+      <bpmn2:sequenceFlow id="SequenceFlow_0112l2c" sourceRef="CallDoCreateVfModuleRollback" targetRef="PostProcessRollback" />

+      <bpmn2:exclusiveGateway id="ExclusiveGateway_039bib8" name="Disable Rollback?" default="SequenceFlow_04bd5in">

+        <bpmn2:incoming>SequenceFlow_02lc25j</bpmn2:incoming>

+        <bpmn2:outgoing>SequenceFlow_04bd5in</bpmn2:outgoing>

+        <bpmn2:outgoing>SequenceFlow_1nh7m8d</bpmn2:outgoing>

+      </bpmn2:exclusiveGateway>

+      <bpmn2:sequenceFlow id="SequenceFlow_04bd5in" name="no" sourceRef="ExclusiveGateway_039bib8" targetRef="PreProcessRollback" />

+      <bpmn2:sequenceFlow id="SequenceFlow_1nh7m8d" name="yes" sourceRef="ExclusiveGateway_039bib8" targetRef="Task_1fm09pi">

+        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("disableRollback" )  == true}]]></bpmn2:conditionExpression>

+      </bpmn2:sequenceFlow>

+      <bpmn2:scriptTask id="Task_1fm09pi" name="Process Error" scriptFormat="groovy">

+        <bpmn2:incoming>SequenceFlow_1nh7m8d</bpmn2:incoming>

+        <bpmn2:outgoing>SequenceFlow_1pgo10r</bpmn2:outgoing>

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+def doCreateVfModule = new DoCreateVfModule()

+doCreateVfModule.processBPMNException(execution)]]></bpmn2:script>

+      </bpmn2:scriptTask>

+      <bpmn2:sequenceFlow id="SequenceFlow_1pgo10r" sourceRef="Task_1fm09pi" targetRef="EndEvent_0wsdptv" />

+    </bpmn2:subProcess>

   </bpmn2:process>

   <bpmn2:message id="Message_1" name="DoCreateVfModuleRequest" />

   <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />

@@ -925,38 +959,6 @@
           <dc:Bounds x="165" y="574" width="6" height="6" />

         </bpmndi:BPMNLabel>

       </bpmndi:BPMNEdge>

-      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_21" bpmnElement="SubProcess_1" isExpanded="true">

-        <dc:Bounds x="29" y="1197" width="405" height="203" />

-      </bpmndi:BPMNShape>

-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_55" bpmnElement="StartEvent_2">

-        <dc:Bounds x="58" y="1281" width="36" height="36" />

-        <bpmndi:BPMNLabel>

-          <dc:Bounds x="76" y="1322" width="0" height="0" />

-        </bpmndi:BPMNLabel>

-      </bpmndi:BPMNShape>

-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_181" bpmnElement="EndEvent_2">

-        <dc:Bounds x="370" y="1281" width="36" height="36" />

-        <bpmndi:BPMNLabel>

-          <dc:Bounds x="388" y="1322" width="0" height="0" />

-        </bpmndi:BPMNLabel>

-      </bpmndi:BPMNShape>

-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_284" bpmnElement="ScriptTask_1">

-        <dc:Bounds x="165" y="1258" width="134" height="81" />

-      </bpmndi:BPMNShape>

-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_StartEvent_55" targetElement="_BPMNShape_ScriptTask_284">

-        <di:waypoint xsi:type="dc:Point" x="94" y="1299" />

-        <di:waypoint xsi:type="dc:Point" x="165" y="1298" />

-        <bpmndi:BPMNLabel>

-          <dc:Bounds x="118" y="1299" width="0" height="0" />

-        </bpmndi:BPMNLabel>

-      </bpmndi:BPMNEdge>

-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_38" bpmnElement="SequenceFlow_38" sourceElement="_BPMNShape_ScriptTask_284" targetElement="_BPMNShape_EndEvent_181">

-        <di:waypoint xsi:type="dc:Point" x="299" y="1298" />

-        <di:waypoint xsi:type="dc:Point" x="370" y="1299" />

-        <bpmndi:BPMNLabel>

-          <dc:Bounds x="329" y="1298" width="0" height="0" />

-        </bpmndi:BPMNLabel>

-      </bpmndi:BPMNEdge>

       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_156" bpmnElement="CreateAAIVfModule">

         <dc:Bounds x="696" y="348" width="121" height="92" />

       </bpmndi:BPMNShape>

@@ -1162,6 +1164,92 @@
       <bpmndi:BPMNShape id="CallActivity_14nvmgk_di" bpmnElement="Task_0kuj2a1">

         <dc:Bounds x="378" y="242" width="100" height="80" />

       </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="SubProcess_0ltzufk_di" bpmnElement="SubProcess_0ltzufk" isExpanded="true">

+        <dc:Bounds x="-50" y="1190" width="1047" height="338" />

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="StartEvent_18lzc5m_di" bpmnElement="StartEvent_18lzc5m">

+        <dc:Bounds x="93" y="1294" width="36" height="36" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="111" y="1335" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="EndEvent_0wsdptv_di" bpmnElement="EndEvent_0wsdptv">

+        <dc:Bounds x="861" y="1294" width="36" height="36" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="879" y="1335" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="CallActivity_1ehr5kq_di" bpmnElement="CallDoCreateVfModuleRollback">

+        <dc:Bounds x="509" y="1272" width="100" height="80" />

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="ScriptTask_0upatdd_di" bpmnElement="PreProcessRollback">

+        <dc:Bounds x="329" y="1272" width="100" height="80" />

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNShape id="ScriptTask_0o1zc29_di" bpmnElement="PostProcessRollback">

+        <dc:Bounds x="694" y="1272" width="100" height="80" />

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNEdge id="SequenceFlow_02lc25j_di" bpmnElement="SequenceFlow_02lc25j">

+        <di:waypoint xsi:type="dc:Point" x="129" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="196" y="1312" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="163" y="1297" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNEdge id="SequenceFlow_0z2rczk_di" bpmnElement="SequenceFlow_0z2rczk">

+        <di:waypoint xsi:type="dc:Point" x="794" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="826" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="826" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="861" y="1312" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="841" y="1312" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNEdge id="SequenceFlow_1i1q78e_di" bpmnElement="SequenceFlow_1i1q78e">

+        <di:waypoint xsi:type="dc:Point" x="429" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="509" y="1312" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="469" y="1297" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNEdge id="SequenceFlow_0112l2c_di" bpmnElement="SequenceFlow_0112l2c">

+        <di:waypoint xsi:type="dc:Point" x="609" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="694" y="1312" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="652" y="1297" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNShape id="ExclusiveGateway_039bib8_di" bpmnElement="ExclusiveGateway_039bib8" isMarkerVisible="true">

+        <dc:Bounds x="196" y="1287" width="50" height="50" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="177" y="1259" width="87" height="12" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNEdge id="SequenceFlow_04bd5in_di" bpmnElement="SequenceFlow_04bd5in">

+        <di:waypoint xsi:type="dc:Point" x="246" y="1312" />

+        <di:waypoint xsi:type="dc:Point" x="329" y="1312" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="282" y="1297" width="12" height="12" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNEdge id="SequenceFlow_1nh7m8d_di" bpmnElement="SequenceFlow_1nh7m8d">

+        <di:waypoint xsi:type="dc:Point" x="221" y="1337" />

+        <di:waypoint xsi:type="dc:Point" x="221" y="1436" />

+        <di:waypoint xsi:type="dc:Point" x="509" y="1436" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="227" y="1386.5" width="18" height="12" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

+      <bpmndi:BPMNShape id="ScriptTask_05v20n0_di" bpmnElement="Task_1fm09pi">

+        <dc:Bounds x="509" y="1396" width="100" height="80" />

+      </bpmndi:BPMNShape>

+      <bpmndi:BPMNEdge id="SequenceFlow_1pgo10r_di" bpmnElement="SequenceFlow_1pgo10r">

+        <di:waypoint xsi:type="dc:Point" x="609" y="1436" />

+        <di:waypoint xsi:type="dc:Point" x="879" y="1436" />

+        <di:waypoint xsi:type="dc:Point" x="879" y="1330" />

+        <bpmndi:BPMNLabel>

+          <dc:Bounds x="744" y="1421" width="0" height="0" />

+        </bpmndi:BPMNLabel>

+      </bpmndi:BPMNEdge>

     </bpmndi:BPMNPlane>

   </bpmndi:BPMNDiagram>

 </bpmn2:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleRollback.bpmn
index 7a7f369..cb6538c 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleRollback.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleRollback.bpmn
Binary files differ
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeRollback.bpmn
new file mode 100644
index 0000000..fd2889f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeRollback.bpmn
@@ -0,0 +1,247 @@
+<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0">
+  <bpmn:process id="DoCreateVfModuleVolumeRollback" name="DoCreateVfModuleVolumeRollback" isExecutable="true">
+    <bpmn:subProcess id="SubProcess_1p4663w" name="Sub-process for UnexpectedErrors" triggeredByEvent="true">
+      <bpmn:scriptTask id="ScriptTask_0by1uwk" name="Log / Print Unexpected Error" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_0xktw7v</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_0soe5t3</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeRollback = new DoCreateVfModuleVolumeRollback()
+doCreateVfModuleVolumeRollback.processJavaException(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:startEvent id="StartEvent_1j0eixl">
+        <bpmn:outgoing>SequenceFlow_0xktw7v</bpmn:outgoing>
+        <bpmn:errorEventDefinition />
+      </bpmn:startEvent>
+      <bpmn:endEvent id="EndEvent_0jxh015">
+        <bpmn:incoming>SequenceFlow_0soe5t3</bpmn:incoming>
+      </bpmn:endEvent>
+      <bpmn:sequenceFlow id="SequenceFlow_0xktw7v" name="" sourceRef="StartEvent_1j0eixl" targetRef="ScriptTask_0by1uwk" />
+      <bpmn:sequenceFlow id="SequenceFlow_0soe5t3" name="" sourceRef="ScriptTask_0by1uwk" targetRef="EndEvent_0jxh015" />
+    </bpmn:subProcess>
+    <bpmn:startEvent id="StartEvent_0128tti" name="Fault Start">
+      <bpmn:outgoing>SequenceFlow_0qreiaa</bpmn:outgoing>
+      <bpmn:errorEventDefinition />
+    </bpmn:startEvent>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_128ycfs" name="Is RollBack On?" default="SequenceFlow_1wberw3">
+      <bpmn:incoming>SequenceFlow_1xah9es</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_11y7faf</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1wberw3</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:exclusiveGateway id="ExclusiveGateway_03qps8q" name="Is Vnf Ok?" default="SequenceFlow_10dawse">
+      <bpmn:incoming>SequenceFlow_11y7faf</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0h7k68j</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_10dawse</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:callActivity id="CallActivity_03pmk7v" name="Call VNF Adapter Rollback" calledElement="vnfAdapterRestV1">
+      <bpmn:extensionElements>
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="DCVFMODVOLRBK_rollbackVnfARequest" target="vnfAdapterRestV1Request" />
+        <camunda:out source="workflowException" target="workflowException" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_0h7k68j</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0bv04qn</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:sequenceFlow id="SequenceFlow_0h7k68j" sourceRef="ExclusiveGateway_03qps8q" targetRef="CallActivity_03pmk7v">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFMODVOLRBK_isCreateVnfRollbackNeeded") == "true"}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:scriptTask id="ScriptTask_1numqm0" name="Delete Volume Group" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0bv04qn</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_17k6oyz</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_13nb3n0</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeRollback = new DoCreateVfModuleVolumeRollback()
+doCreateVfModuleVolumeRollback.executeMethod('callRESTDeleteAAIVolumeGroup', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_0bv04qn" sourceRef="CallActivity_03pmk7v" targetRef="ScriptTask_1numqm0" />
+    <bpmn:sequenceFlow id="SequenceFlow_10dawse" sourceRef="ExclusiveGateway_03qps8q" targetRef="ExclusiveGateway_1dzejtx" />
+    <bpmn:sequenceFlow id="SequenceFlow_13nb3n0" sourceRef="ScriptTask_1numqm0" targetRef="EndEvent_11duf9p" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_1dzejtx" name="Is AAI Ok?" default="SequenceFlow_1do0853">
+      <bpmn:incoming>SequenceFlow_10dawse</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_17k6oyz</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1do0853</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_17k6oyz" sourceRef="ExclusiveGateway_1dzejtx" targetRef="ScriptTask_1numqm0">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFMODVOLRBK_isAAIRollbackNeeded" ) == "true"}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="SequenceFlow_1do0853" sourceRef="ExclusiveGateway_1dzejtx" targetRef="EndEvent_1ddbl39" />
+    <bpmn:endEvent id="EndEvent_1ddbl39">
+      <bpmn:incoming>SequenceFlow_1do0853</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_1wberw3</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:endEvent id="EndEvent_11duf9p">
+      <bpmn:incoming>SequenceFlow_13nb3n0</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_11y7faf" sourceRef="ExclusiveGateway_128ycfs" targetRef="ExclusiveGateway_03qps8q">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("DCVFMODVOLRBK_backoutOnFailure") != "false"}]]></bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:scriptTask id="ScriptTask_0uhy9lc" name="Pre process" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0qreiaa</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1xah9es</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeRollback = new DoCreateVfModuleVolumeRollback()
+doCreateVfModuleVolumeRollback.preProcessRequest(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1wberw3" sourceRef="ExclusiveGateway_128ycfs" targetRef="EndEvent_1ddbl39" />
+    <bpmn:sequenceFlow id="SequenceFlow_0qreiaa" sourceRef="StartEvent_0128tti" targetRef="ScriptTask_0uhy9lc" />
+    <bpmn:sequenceFlow id="SequenceFlow_1xah9es" sourceRef="ScriptTask_0uhy9lc" targetRef="ExclusiveGateway_128ycfs" />
+  </bpmn:process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateVfModuleVolumeRollback">
+      <bpmndi:BPMNShape id="SubProcess_1p4663w_di" bpmnElement="SubProcess_1p4663w" isExpanded="true">
+        <dc:Bounds x="293" y="165" width="394" height="188" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0by1uwk_di" bpmnElement="ScriptTask_0by1uwk">
+        <dc:Bounds x="441" y="220" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="StartEvent_1j0eixl_di" bpmnElement="StartEvent_1j0eixl">
+        <dc:Bounds x="326" y="242" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="344" y="283" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0jxh015_di" bpmnElement="EndEvent_0jxh015">
+        <dc:Bounds x="602" y="242" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="620" y="283" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0xktw7v_di" bpmnElement="SequenceFlow_0xktw7v">
+        <di:waypoint xsi:type="dc:Point" x="362" y="260" />
+        <di:waypoint xsi:type="dc:Point" x="441" y="260" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="404" y="260" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0soe5t3_di" bpmnElement="SequenceFlow_0soe5t3">
+        <di:waypoint xsi:type="dc:Point" x="541" y="260" />
+        <di:waypoint xsi:type="dc:Point" x="602" y="260" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="576" y="260" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="StartEvent_0128tti_di" bpmnElement="StartEvent_0128tti">
+        <dc:Bounds x="173" y="-93" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="167" y="-52" width="50" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_128ycfs_di" bpmnElement="ExclusiveGateway_128ycfs" isMarkerVisible="true">
+        <dc:Bounds x="465" y="-100" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="450" y="-50" width="79" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ExclusiveGateway_03qps8q_di" bpmnElement="ExclusiveGateway_03qps8q" isMarkerVisible="true">
+        <dc:Bounds x="607" y="-100" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="606" y="-50" width="52" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_03pmk7v_di" bpmnElement="CallActivity_03pmk7v">
+        <dc:Bounds x="786" y="-115" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0h7k68j_di" bpmnElement="SequenceFlow_0h7k68j">
+        <di:waypoint xsi:type="dc:Point" x="657" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="786" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="722" y="-90" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1numqm0_di" bpmnElement="ScriptTask_1numqm0">
+        <dc:Bounds x="998" y="-115" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0bv04qn_di" bpmnElement="SequenceFlow_0bv04qn">
+        <di:waypoint xsi:type="dc:Point" x="886" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="937" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="937" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="998" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="952" y="-75" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_10dawse_di" bpmnElement="SequenceFlow_10dawse">
+        <di:waypoint xsi:type="dc:Point" x="632" y="-50" />
+        <di:waypoint xsi:type="dc:Point" x="632" y="40" />
+        <di:waypoint xsi:type="dc:Point" x="811" y="40" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="648" y="-5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_13nb3n0_di" bpmnElement="SequenceFlow_13nb3n0">
+        <di:waypoint xsi:type="dc:Point" x="1098" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="1151" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1125" y="-90" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1dzejtx_di" bpmnElement="ExclusiveGateway_1dzejtx" isMarkerVisible="true">
+        <dc:Bounds x="811" y="15" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="809" y="65" width="53" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_17k6oyz_di" bpmnElement="SequenceFlow_17k6oyz">
+        <di:waypoint xsi:type="dc:Point" x="861" y="40" />
+        <di:waypoint xsi:type="dc:Point" x="1048" y="40" />
+        <di:waypoint xsi:type="dc:Point" x="1048" y="-35" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="955" y="25" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1do0853_di" bpmnElement="SequenceFlow_1do0853">
+        <di:waypoint xsi:type="dc:Point" x="836" y="65" />
+        <di:waypoint xsi:type="dc:Point" x="836" y="99" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="851" y="82" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_0le8wga_di" bpmnElement="EndEvent_1ddbl39">
+        <dc:Bounds x="818" y="99" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="836" y="135" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_1iibjyo_di" bpmnElement="EndEvent_11duf9p">
+        <dc:Bounds x="1151" y="-93" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1169" y="-57" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_11y7faf_di" bpmnElement="SequenceFlow_11y7faf">
+        <di:waypoint xsi:type="dc:Point" x="515" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="607" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="561" y="-90" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0uhy9lc_di" bpmnElement="ScriptTask_0uhy9lc">
+        <dc:Bounds x="288" y="-115" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wberw3_di" bpmnElement="SequenceFlow_1wberw3">
+        <di:waypoint xsi:type="dc:Point" x="490" y="-50" />
+        <di:waypoint xsi:type="dc:Point" x="490" y="117" />
+        <di:waypoint xsi:type="dc:Point" x="818" y="117" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="505" y="23.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0qreiaa_di" bpmnElement="SequenceFlow_0qreiaa">
+        <di:waypoint xsi:type="dc:Point" x="209" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="288" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="249" y="-100" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1xah9es_di" bpmnElement="SequenceFlow_1xah9es">
+        <di:waypoint xsi:type="dc:Point" x="388" y="-75" />
+        <di:waypoint xsi:type="dc:Point" x="465" y="-75" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="427" y="-100" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV1.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV1.bpmn
deleted file mode 100644
index de88284..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV1.bpmn
+++ /dev/null
@@ -1,675 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_FhrCQG2BEeaNdqnn65BT4A" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
-  <bpmn2:process id="DoCreateVfModuleVolumeV1" name="DoCreateVfModuleVolumeV1" isExecutable="true">
-    <bpmn2:scriptTask id="ScriptTask_preProcessRequest" name="Preprocess Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('preProcessRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_preProcessRequest" targetRef="ScriptTask_callRestAaiCloudRegion"/>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiCloudRegion" name="Call REST AAI Cloud Region" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTQueryAAICloudRegion', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="ScriptTask_callRestAaiCloudRegion" targetRef="ScriptTask_callRestAaiQueryGenericVnf"/>
-    <bpmn2:scriptTask id="ScriptTask_createVolGrpExistsException" name="Build Workflow Exception" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_volGrpName404No</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('buildWorkflowException', execution, 2500, "Volume group $DCVFMODVOLV1_volumeGroupName already exists in the system.", isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_createVolGrpExistsException" targetRef="EndEvent_6"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_aaiReturnCode404" name="AAI Return Code is 404?" default="SequenceFlow_volGrpName404No">
-      <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_volGrpName404Yes</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_volGrpName404No</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_volGrpName404Yes" name="Yes" sourceRef="ExclusiveGateway_aaiReturnCode404" targetRef="ScriptTask_callRestAaiCreateVolumeGrp">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{DCVFMODVOLV1_AaiReturnCode == '404'}</bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_volGrpName404No" name="No" sourceRef="ExclusiveGateway_aaiReturnCode404" targetRef="ScriptTask_createVolGrpExistsException"/>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiQueryGenericVnf" name="Call REST AAI Query Generic VNF" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTQueryAAIGenericVnf', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="ScriptTask_callRestAaiQueryGenericVnf" targetRef="ScriptTask_callRestAaiQueryVolGrpName"/>
-    <bpmn2:boundaryEvent id="BoundaryEvent_catchAaiError" name="" attachedToRef="ScriptTask_callRestAaiQueryVolGrpName">
-      <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_3" errorRef="Error_1"/>
-    </bpmn2:boundaryEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="BoundaryEvent_catchAaiError" targetRef="ExclusiveGateway_aaiReturnCode404"/>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiQueryVolGrpName" name="Call REST AAI Query Volume Grp Name" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTQueryAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_callRestAaiQueryVolGrpName" targetRef="ExclusiveGateway_aaiReturnCode404"/>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiCreateVolumeGrp" name="Call REST AAI Create Volume Group" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_volGrpName404Yes</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTCreateAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="ScriptTask_callRestAaiCreateVolumeGrp" targetRef="ScriptTask_prepareVnfAdapterCreate"/>
-    <bpmn2:callActivity id="CallActivity_callVnfAdapterCreate" name="Call VNF Adapter Create" calledElement="vnfAdapterRestV1">
-      <bpmn2:extensionElements>
-        <camunda:in source="DCVFMODVOLV1_createVnfARequest" target="vnfAdapterRestV1Request"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:out source="vnfAdapterRestV1Response" target="DCVFMODVOLV1_createVnfAResponse"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="VNFREST_vnfAdapterStatusCode" target="DCVFMODVOLV1_createVnfAReturnCode"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="VNFREST_SuccessIndicator" target="VNFREST_SuccessIndicator"/>
-      </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
-    </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="CallActivity_callVnfAdapterCreate" targetRef="ExclusiveGateway_isVnfAdaptyerCallSuccess"/>
-    <bpmn2:boundaryEvent id="BoundaryEvent_5" name="" attachedToRef="ScriptTask_callRestAaiVolumeGrp">
-      <bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_5"/>
-    </bpmn2:boundaryEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="BoundaryEvent_5" targetRef="ExclusiveGateway_isRollbakcEnabled1"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_isVnfAdaptyerCallSuccess" name="Is VNF Adapter call success?" default="SequenceFlow_vnfAdapterFail">
-      <bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_vnfAdapterFail</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_vnfAdapterSuccess</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_vnfAdapterFail" name="No" sourceRef="ExclusiveGateway_isVnfAdaptyerCallSuccess" targetRef="ExclusiveGateway_isRollbackEnabled2"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_vnfAdapterSuccess" name="Yes" sourceRef="ExclusiveGateway_isVnfAdaptyerCallSuccess" targetRef="ScriptTask_callRestAaiRequeryVolGrpNm">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{VNFREST_SuccessIndicator == true}</bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiRequeryVolGrpNm" name="Call REST AAI Requery Volume Group Name" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_vnfAdapterSuccess</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTQueryAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_28" name="" sourceRef="ScriptTask_callRestAaiRequeryVolGrpNm" targetRef="ScriptTask_callRestAaiVolumeGrp"/>
-    <bpmn2:boundaryEvent id="BoundaryEvent_compensateCreateVolGrp" name="" attachedToRef="ScriptTask_callRestAaiCreateVolumeGrp">
-      <bpmn2:compensateEventDefinition id="CompensateEventDefinition_2" waitForCompletion="true"/>
-    </bpmn2:boundaryEvent>
-    <bpmn2:scriptTask id="ScriptTask_prepareDbInfraRequest" name="Set Success Indicator" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('setSuccessIndicator', execution, true)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ScriptTask_prepareDbInfraRequest" targetRef="EndEvent_1"/>
-    <bpmn2:scriptTask id="ScriptTask_deleteVolumeGroup" name="Delete Volume Group" isForCompensation="true" scriptFormat="groovy">
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTDeleteAAIVolumeGroup', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:scriptTask id="ScriptTask_callRestAaiVolumeGrp" name="Call REST AAI Update Volume Group" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_28</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('callRESTUpdateCreatedVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_callRestAaiVolumeGrp" targetRef="ScriptTask_prepareDbInfraRequest"/>
-    <bpmn2:endEvent id="EndEvent_1" name="End">
-      <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
-    </bpmn2:endEvent>
-    <bpmn2:scriptTask id="ScriptTask_prepareVnfAdapterCreate" name="Prepare VNF Adapter Create Request" scriptFormat="groovy">
-      <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVfModuleVolumeV1 = new DoCreateVfModuleVolumeV1()
-doCreateVfModuleVolumeV1.executeMethod('prepareVnfAdapterCreateRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
-    </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="ScriptTask_prepareVnfAdapterCreate" targetRef="CallActivity_callVnfAdapterCreate"/>
-    <bpmn2:boundaryEvent id="BoundaryEvent_compensateVnfAdapterCreate" name="" attachedToRef="CallActivity_callVnfAdapterCreate">
-      <bpmn2:compensateEventDefinition id="CompensateEventDefinition_1" waitForCompletion="true"/>
-    </bpmn2:boundaryEvent>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_rollbackAaiCreateVolumeGroup" name="Rollback AAI Create Volume Group">
-      <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
-      <bpmn2:compensateEventDefinition id="CompensateEventDefinition_rollbackAaiCreateVolumeGroup" activityRef="ScriptTask_callRestAaiCreateVolumeGrp" waitForCompletion="true"/>
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="IntermediateThrowEvent_rollbackAaiCreateVolumeGroup" targetRef="EndEvent_4"/>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_rollbackVnfAdapterCreate" name="Rollback VNF Adapter Create">
-      <bpmn2:incoming>SequenceFlow_rollbackIsEnabled1</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
-      <bpmn2:compensateEventDefinition id="CompensateEventDefinition_3" activityRef="CallActivity_callVnfAdapterCreate" waitForCompletion="true"/>
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="IntermediateThrowEvent_rollbackVnfAdapterCreate" targetRef="IntermediateThrowEvent_rollbackAaiCreateVolumeGroup"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_isRollbakcEnabled1" name="Is rollback enabled?" default="SequenceFlow_rollbackIsNotEnabled1">
-      <bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_rollbackIsEnabled1</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_rollbackIsNotEnabled1</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_rollbackIsEnabled1" name="Yes" sourceRef="ExclusiveGateway_isRollbakcEnabled1" targetRef="IntermediateThrowEvent_rollbackVnfAdapterCreate">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{DCVFMODVOLV1_rollbackEnabled == true}</bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_rollbackIsNotEnabled1" name="No" sourceRef="ExclusiveGateway_isRollbakcEnabled1" targetRef="EndEvent_4"/>
-    <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_rollbackCreateVolGrpFromCallVnf" name="Rollback AAI Create Volume Group">
-      <bpmn2:incoming>SequenceFlow_rollbackIsEnabled2</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
-      <bpmn2:compensateEventDefinition id="CompensateEventDefinition_rollbackCreateVolGrpName1" activityRef="ScriptTask_callRestAaiCreateVolumeGrp" waitForCompletion="true"/>
-    </bpmn2:intermediateThrowEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="IntermediateThrowEvent_rollbackCreateVolGrpFromCallVnf" targetRef="EndEvent_5"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_isRollbackEnabled2" name="Is rollback enabled?" default="SequenceFlow_rollbackIsNotEnabled2">
-      <bpmn2:incoming>SequenceFlow_vnfAdapterFail</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_rollbackIsEnabled2</bpmn2:outgoing>
-      <bpmn2:outgoing>SequenceFlow_rollbackIsNotEnabled2</bpmn2:outgoing>
-    </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_rollbackIsEnabled2" name="Yes" sourceRef="ExclusiveGateway_isRollbackEnabled2" targetRef="IntermediateThrowEvent_rollbackCreateVolGrpFromCallVnf">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{DCVFMODVOLV1_rollbackEnabled == true}</bpmn2:conditionExpression>
-    </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_rollbackIsNotEnabled2" name="No" sourceRef="ExclusiveGateway_isRollbackEnabled2" targetRef="EndEvent_5"/>
-    <bpmn2:startEvent id="StartEvent_doCreateVfModuleVolume" name="Start">
-      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
-    </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_doCreateVfModuleVolume" targetRef="ScriptTask_preProcessRequest"/>
-    <bpmn2:callActivity id="CallActivity_callVnfAdapterCallback" name="Call VNF Adapter Rollback" isForCompensation="true" calledElement="vnfAdapterRestV1">
-      <bpmn2:extensionElements>
-        <camunda:in source="DCVFMODVOLV1_rollbackVnfARequest" target="vnfAdapterRestV1Request"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:out source="vnfAdapterRestV1Response" target="CCINVOL_rollbackVnfAResponse"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-      </bpmn2:extensionElements>
-    </bpmn2:callActivity>
-    <bpmn2:subProcess id="SubProcess_catchTriggeredException" name="Catch Triggered MsoException" triggeredByEvent="true">
-      <bpmn2:intermediateThrowEvent id="IntermediateThrowEvent_rollbackAaiCreateVolume21" name="Rollback Create AAi Volume Group">
-        <bpmn2:incoming>SequenceFlow_rollbackEnabledYes91</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
-        <bpmn2:compensateEventDefinition id="CompensateEventDefinition_rollbackdreateVolume21" activityRef="ScriptTask_callRestAaiCreateVolumeGrp" waitForCompletion="true"/>
-      </bpmn2:intermediateThrowEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_16" name="" sourceRef="IntermediateThrowEvent_rollbackAaiCreateVolume21" targetRef="EndEvent_3"/>
-      <bpmn2:exclusiveGateway id="ExclusiveGateway_isRolbackEnabled90" name="Is Rollback Enabled?" default="SequenceFlow_rollbackNotEnabled92">
-        <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
-        <bpmn2:outgoing>SequenceFlow_rollbackEnabledYes91</bpmn2:outgoing>
-        <bpmn2:outgoing>SequenceFlow_rollbackNotEnabled92</bpmn2:outgoing>
-      </bpmn2:exclusiveGateway>
-      <bpmn2:sequenceFlow id="SequenceFlow_rollbackEnabledYes91" name="Yes" sourceRef="ExclusiveGateway_isRolbackEnabled90" targetRef="IntermediateThrowEvent_rollbackAaiCreateVolume21">
-        <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression">#{DCVFMODVOLV1_rollbackEnabled == true}</bpmn2:conditionExpression>
-      </bpmn2:sequenceFlow>
-      <bpmn2:sequenceFlow id="SequenceFlow_rollbackNotEnabled92" name="No" sourceRef="ExclusiveGateway_isRolbackEnabled90" targetRef="EndEvent_3"/>
-      <bpmn2:startEvent id="StartEvent_catchAllErrors" name="Catch MsoException">
-        <bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_4" errorRef="Error_2"/>
-      </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="StartEvent_catchAllErrors" targetRef="ExclusiveGateway_isRolbackEnabled90"/>
-      <bpmn2:endEvent id="EndEvent_3">
-        <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
-        <bpmn2:incoming>SequenceFlow_rollbackNotEnabled92</bpmn2:incoming>
-      </bpmn2:endEvent>
-    </bpmn2:subProcess>
-    <bpmn2:boundaryEvent id="BoundaryEvent_catchError2" name="" attachedToRef="ScriptTask_callRestAaiRequeryVolGrpNm">
-      <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
-      <bpmn2:errorEventDefinition id="ErrorEventDefinition_9"/>
-    </bpmn2:boundaryEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="BoundaryEvent_catchError2" targetRef="ExclusiveGateway_isRollbakcEnabled1"/>
-    <bpmn2:endEvent id="EndEvent_4" name="End">
-      <bpmn2:incoming>SequenceFlow_rollbackIsNotEnabled1</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
-    </bpmn2:endEvent>
-    <bpmn2:endEvent id="EndEvent_5" name="End">
-      <bpmn2:incoming>SequenceFlow_rollbackIsNotEnabled2</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
-    </bpmn2:endEvent>
-    <bpmn2:endEvent id="EndEvent_6" name="End">
-      <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
-    </bpmn2:endEvent>
-    <bpmn2:textAnnotation id="TextAnnotation_2">
-      <bpmn2:text>WorkflowException should already have been created in VNF create subflow</bpmn2:text>
-    </bpmn2:textAnnotation>
-    <bpmn2:association id="Association_2" sourceRef="TextAnnotation_2" targetRef="EndEvent_5"/>
-    <bpmn2:association id="Association_3" sourceRef="BoundaryEvent_compensateCreateVolGrp" targetRef="ScriptTask_deleteVolumeGroup"/>
-    <bpmn2:association id="Association_1" sourceRef="BoundaryEvent_compensateVnfAdapterCreate" targetRef="CallActivity_callVnfAdapterCallback"/>
-    <bpmn2:textAnnotation id="TextAnnotation_1">
-      <bpmn2:text>Catch MsoException triggered  by Plugin. The vnfAdapterRest subflow is currently not directly throwing the BPMNError(MSOException.</bpmn2:text>
-    </bpmn2:textAnnotation>
-    <bpmn2:association id="Association_4" sourceRef="TextAnnotation_1" targetRef="SubProcess_catchTriggeredException"/>
-  </bpmn2:process>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
-  <bpmn2:error id="Error_2" errorCode="MSOWorkflowException" name="MSOWorkflowException"/>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateVfModuleVolumeV1">
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_65" bpmnElement="StartEvent_doCreateVfModuleVolume">
-        <dc:Bounds height="36.0" width="36.0" x="252.0" y="129.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="34.0" x="253.0" y="170.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_285" bpmnElement="ScriptTask_preProcessRequest">
-        <dc:Bounds height="80.0" width="100.0" x="420.0" y="107.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_287" bpmnElement="ScriptTask_callRestAaiCloudRegion">
-        <dc:Bounds height="80.0" width="100.0" x="588.0" y="106.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_288" bpmnElement="ScriptTask_callRestAaiQueryVolGrpName">
-        <dc:Bounds height="80.0" width="100.0" x="937.0" y="107.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_247" bpmnElement="ExclusiveGateway_aaiReturnCode404" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="1118.0" y="121.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="128.0" x="1079.0" y="176.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_289" bpmnElement="ScriptTask_callRestAaiCreateVolumeGrp">
-        <dc:Bounds height="80.0" width="100.0" x="252.0" y="396.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_290" bpmnElement="ScriptTask_prepareVnfAdapterCreate">
-        <dc:Bounds height="80.0" width="100.0" x="420.0" y="396.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_32" bpmnElement="CallActivity_callVnfAdapterCreate">
-        <dc:Bounds height="80.0" width="100.0" x="576.0" y="396.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_292" bpmnElement="ScriptTask_callRestAaiRequeryVolGrpNm">
-        <dc:Bounds height="80.0" width="100.0" x="923.0" y="396.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_293" bpmnElement="ScriptTask_callRestAaiVolumeGrp">
-        <dc:Bounds height="80.0" width="100.0" x="1068.0" y="396.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_294" bpmnElement="ScriptTask_prepareDbInfraRequest">
-        <dc:Bounds height="80.0" width="100.0" x="1068.0" y="648.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_226" bpmnElement="EndEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="1100.0" y="782.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1104.0" y="823.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_65" targetElement="_BPMNShape_ScriptTask_285">
-        <di:waypoint xsi:type="dc:Point" x="288.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="420.0" y="147.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="315.0" y="147.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_volGrpName404Yes" sourceElement="_BPMNShape_ExclusiveGateway_247" targetElement="_BPMNShape_ScriptTask_289">
-        <di:waypoint xsi:type="dc:Point" x="1143.0" y="171.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1144.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="811.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="301.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="302.0" y="396.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="573.0" y="232.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_ScriptTask_289" targetElement="_BPMNShape_ScriptTask_290">
-        <di:waypoint xsi:type="dc:Point" x="352.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="420.0" y="436.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="383.0" y="544.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ScriptTask_290" targetElement="_BPMNShape_CallActivity_32">
-        <di:waypoint xsi:type="dc:Point" x="520.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="576.0" y="436.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="545.0" y="544.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ScriptTask_285" targetElement="_BPMNShape_ScriptTask_287">
-        <di:waypoint xsi:type="dc:Point" x="520.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="560.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="560.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="588.0" y="146.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="557.0" y="147.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_ScriptTask_287" targetElement="_BPMNShape_ScriptTask_311">
-        <di:waypoint xsi:type="dc:Point" x="688.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="720.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="720.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="750.0" y="147.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="713.0" y="146.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_248" bpmnElement="ExclusiveGateway_isVnfAdaptyerCallSuccess" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="768.0" y="410.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="179.0" x="704.0" y="465.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_CallActivity_32" targetElement="_BPMNShape_ExclusiveGateway_248">
-        <di:waypoint xsi:type="dc:Point" x="676.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="715.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="715.0" y="435.0"/>
-        <di:waypoint xsi:type="dc:Point" x="768.0" y="435.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="712.0" y="435.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_296" bpmnElement="ScriptTask_createVolGrpExistsException">
-        <dc:Bounds height="80.0" width="100.0" x="1248.0" y="106.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_296" targetElement="_BPMNShape_EndEvent_241">
-        <di:waypoint xsi:type="dc:Point" x="1348.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1414.0" y="146.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1373.0" y="146.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_BoundaryEvent_62" targetElement="_BPMNShape_ExclusiveGateway_247">
-        <di:waypoint xsi:type="dc:Point" x="1037.0" y="89.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1037.0" y="59.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1143.0" y="59.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1143.0" y="121.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1050.0" y="59.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_volGrpName404No" sourceElement="_BPMNShape_ExclusiveGateway_247" targetElement="_BPMNShape_ScriptTask_296">
-        <di:waypoint xsi:type="dc:Point" x="1168.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1248.0" y="146.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1196.0" y="146.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_26" bpmnElement="SequenceFlow_vnfAdapterFail" sourceElement="_BPMNShape_ExclusiveGateway_248" targetElement="_BPMNShape_ExclusiveGateway_253">
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="538.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="786.0" y="495.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_vnfAdapterSuccess" sourceElement="_BPMNShape_ExclusiveGateway_248" targetElement="_BPMNShape_ScriptTask_292">
-        <di:waypoint xsi:type="dc:Point" x="818.0" y="435.0"/>
-        <di:waypoint xsi:type="dc:Point" x="870.0" y="435.0"/>
-        <di:waypoint xsi:type="dc:Point" x="870.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="923.0" y="436.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="856.0" y="436.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_28" sourceElement="_BPMNShape_ScriptTask_292" targetElement="_BPMNShape_ScriptTask_293">
-        <di:waypoint xsi:type="dc:Point" x="1023.0" y="436.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1068.0" y="436.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1043.0" y="436.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_TextAnnotation_3" bpmnElement="TextAnnotation_2">
-        <dc:Bounds height="73.0" width="152.0" x="573.0" y="759.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_Association_2" bpmnElement="Association_2" sourceElement="_BPMNShape_TextAnnotation_3" targetElement="_BPMNShape_EndEvent_240">
-        <di:waypoint xsi:type="dc:Point" x="725.0" y="806.0"/>
-        <di:waypoint xsi:type="dc:Point" x="775.0" y="813.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_299" bpmnElement="ScriptTask_deleteVolumeGroup">
-        <dc:Bounds height="80.0" width="100.0" x="372.0" y="518.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_57" bpmnElement="BoundaryEvent_compensateCreateVolGrp">
-        <dc:Bounds height="36.0" width="36.0" x="334.0" y="458.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="349.0" y="499.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_Association_3" bpmnElement="Association_3" sourceElement="_BPMNShape_BoundaryEvent_57" targetElement="_BPMNShape_ScriptTask_299">
-        <di:waypoint xsi:type="dc:Point" x="367.0" y="494.0"/>
-        <di:waypoint xsi:type="dc:Point" x="388.0" y="518.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_3" bpmnElement="IntermediateThrowEvent_rollbackAaiCreateVolumeGroup">
-        <dc:Bounds height="36.0" width="36.0" x="1370.0" y="555.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="210.0" x="1283.0" y="596.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_60" bpmnElement="BoundaryEvent_5">
-        <dc:Bounds height="36.0" width="36.0" x="1150.0" y="378.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1165.0" y="419.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_BoundaryEvent_60" targetElement="_BPMNShape_ExclusiveGateway_252">
-        <di:waypoint xsi:type="dc:Point" x="1168.0" y="378.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1168.0" y="347.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1364.0" y="347.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1193.0" y="387.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_IntermediateThrowEvent_3" targetElement="_BPMNShape_EndEvent_239">
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="591.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="717.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1383.0" y="715.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_35" bpmnElement="CallActivity_callVnfAdapterCallback">
-        <dc:Bounds height="80.0" width="100.0" x="537.0" y="518.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_61" bpmnElement="BoundaryEvent_compensateVnfAdapterCreate">
-        <dc:Bounds height="36.0" width="36.0" x="583.0" y="458.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="598.0" y="499.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_Association_1" bpmnElement="Association_1" sourceElement="_BPMNShape_BoundaryEvent_61" targetElement="_BPMNShape_CallActivity_35">
-        <di:waypoint xsi:type="dc:Point" x="598.0" y="494.0"/>
-        <di:waypoint xsi:type="dc:Point" x="594.0" y="518.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_4" bpmnElement="IntermediateThrowEvent_rollbackVnfAdapterCreate">
-        <dc:Bounds height="36.0" width="36.0" x="1370.0" y="458.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="177.0" x="1300.0" y="499.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_IntermediateThrowEvent_4" targetElement="_BPMNShape_IntermediateThrowEvent_3">
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="494.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="555.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1385.0" y="534.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_293" targetElement="_BPMNShape_ScriptTask_294">
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="476.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="648.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1115.0" y="670.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ScriptTask_294" targetElement="_BPMNShape_EndEvent_226">
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="728.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="782.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1115.0" y="863.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_311" bpmnElement="ScriptTask_callRestAaiQueryGenericVnf">
-        <dc:Bounds height="80.0" width="100.0" x="750.0" y="106.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ScriptTask_311" targetElement="_BPMNShape_ScriptTask_288">
-        <di:waypoint xsi:type="dc:Point" x="850.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="886.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="886.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="937.0" y="147.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="883.0" y="147.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_62" bpmnElement="BoundaryEvent_catchAaiError">
-        <dc:Bounds height="36.0" width="36.0" x="1019.0" y="89.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1034.0" y="130.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_288" targetElement="_BPMNShape_ExclusiveGateway_247">
-        <di:waypoint xsi:type="dc:Point" x="1037.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1077.0" y="147.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1077.0" y="146.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="146.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_5" bpmnElement="IntermediateThrowEvent_rollbackCreateVolGrpFromCallVnf">
-        <dc:Bounds height="36.0" width="36.0" x="775.0" y="648.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="210.0" x="818.0" y="656.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_IntermediateThrowEvent_5" targetElement="_BPMNShape_EndEvent_240">
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="684.0"/>
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="798.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="790.0" y="732.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_252" bpmnElement="ExclusiveGateway_isRollbakcEnabled1" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="1364.0" y="322.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="121.0" x="1329.0" y="377.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_rollbackIsEnabled1" sourceElement="_BPMNShape_ExclusiveGateway_252" targetElement="_BPMNShape_IntermediateThrowEvent_4">
-        <di:waypoint xsi:type="dc:Point" x="1389.0" y="372.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1389.0" y="412.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="412.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1388.0" y="458.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1385.0" y="433.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_rollbackIsNotEnabled1" sourceElement="_BPMNShape_ExclusiveGateway_252" targetElement="_BPMNShape_EndEvent_239">
-        <di:waypoint xsi:type="dc:Point" x="1414.0" y="347.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1524.0" y="347.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1524.0" y="550.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1524.0" y="735.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1406.0" y="735.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="1513.0" y="392.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_253" bpmnElement="ExclusiveGateway_isRollbackEnabled2" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="768.0" y="538.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="793.0" y="593.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_rollbackIsEnabled2" sourceElement="_BPMNShape_ExclusiveGateway_253" targetElement="_BPMNShape_IntermediateThrowEvent_5">
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="588.0"/>
-        <di:waypoint xsi:type="dc:Point" x="793.0" y="648.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_rollbackIsNotEnabled2" sourceElement="_BPMNShape_ExclusiveGateway_253" targetElement="_BPMNShape_EndEvent_240">
-        <di:waypoint xsi:type="dc:Point" x="818.0" y="563.0"/>
-        <di:waypoint xsi:type="dc:Point" x="906.0" y="563.0"/>
-        <di:waypoint xsi:type="dc:Point" x="906.0" y="815.0"/>
-        <di:waypoint xsi:type="dc:Point" x="811.0" y="816.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="768.0" y="695.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_2" bpmnElement="SubProcess_catchTriggeredException" isExpanded="true">
-        <dc:Bounds height="337.0" width="608.0" x="287.0" y="936.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_66" bpmnElement="StartEvent_catchAllErrors">
-        <dc:Bounds height="36.0" width="36.0" x="348.0" y="1112.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="127.0" x="303.0" y="1153.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_IntermediateThrowEvent_6" bpmnElement="IntermediateThrowEvent_rollbackAaiCreateVolume21">
-        <dc:Bounds height="36.0" width="36.0" x="540.0" y="1008.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="210.0" x="453.0" y="1049.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_24" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_StartEvent_66" targetElement="_BPMNShape_ExclusiveGateway_256">
-        <di:waypoint xsi:type="dc:Point" x="384.0" y="1130.0"/>
-        <di:waypoint xsi:type="dc:Point" x="454.0" y="1130.0"/>
-        <di:waypoint xsi:type="dc:Point" x="454.0" y="1129.0"/>
-        <di:waypoint xsi:type="dc:Point" x="532.0" y="1129.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="409.0" y="1130.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_25" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_IntermediateThrowEvent_6" targetElement="_BPMNShape_EndEvent_238">
-        <di:waypoint xsi:type="dc:Point" x="576.0" y="1026.0"/>
-        <di:waypoint xsi:type="dc:Point" x="804.0" y="1026.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="729.0" y="1026.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_TextAnnotation_4" bpmnElement="TextAnnotation_1">
-        <dc:Bounds height="97.0" width="229.0" x="123.0" y="792.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_Association_4" bpmnElement="Association_4" sourceElement="_BPMNShape_TextAnnotation_4" targetElement="_BPMNShape_SubProcess_2">
-        <di:waypoint xsi:type="dc:Point" x="301.0" y="888.0"/>
-        <di:waypoint xsi:type="dc:Point" x="366.0" y="936.0"/>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_64" bpmnElement="BoundaryEvent_catchError2">
-        <dc:Bounds height="36.0" width="36.0" x="1005.0" y="378.0"/>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_29" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_BoundaryEvent_64" targetElement="_BPMNShape_ExclusiveGateway_252">
-        <di:waypoint xsi:type="dc:Point" x="1023.0" y="378.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1023.0" y="290.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1389.0" y="294.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1389.0" y="322.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1118.0" y="291.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_256" bpmnElement="ExclusiveGateway_isRolbackEnabled90" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="532.0" y="1104.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="128.0" x="493.0" y="1159.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_rollbackEnabledYes91" sourceElement="_BPMNShape_ExclusiveGateway_256" targetElement="_BPMNShape_IntermediateThrowEvent_6">
-        <di:waypoint xsi:type="dc:Point" x="557.0" y="1104.0"/>
-        <di:waypoint xsi:type="dc:Point" x="557.0" y="1074.0"/>
-        <di:waypoint xsi:type="dc:Point" x="558.0" y="1074.0"/>
-        <di:waypoint xsi:type="dc:Point" x="558.0" y="1044.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="564.0" y="1084.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_30" bpmnElement="SequenceFlow_rollbackNotEnabled92" sourceElement="_BPMNShape_ExclusiveGateway_256" targetElement="_BPMNShape_EndEvent_238">
-        <di:waypoint xsi:type="dc:Point" x="582.0" y="1129.0"/>
-        <di:waypoint xsi:type="dc:Point" x="657.0" y="1129.0"/>
-        <di:waypoint xsi:type="dc:Point" x="822.0" y="1129.0"/>
-        <di:waypoint xsi:type="dc:Point" x="822.0" y="1044.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="636.0" y="1134.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_238" bpmnElement="EndEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="804.0" y="1008.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="822.0" y="1049.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_239" bpmnElement="EndEvent_4">
-        <dc:Bounds height="36.0" width="36.0" x="1370.0" y="717.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1374.0" y="758.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_240" bpmnElement="EndEvent_5">
-        <dc:Bounds height="36.0" width="36.0" x="775.0" y="798.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="793.0" y="839.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_241" bpmnElement="EndEvent_6">
-        <dc:Bounds height="36.0" width="36.0" x="1414.0" y="128.0"/>
-        <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1418.0" y="169.0"/>
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNShape>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV2.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV2.bpmn
new file mode 100644
index 0000000..693fd36
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVfModuleVolumeV2.bpmn
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_FhrCQG2BEeaNdqnn65BT4A" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+  <bpmn2:process id="DoCreateVfModuleVolumeV2" name="DoCreateVfModuleVolumeV2" isExecutable="true">
+    <bpmn2:scriptTask id="ScriptTask_preProcessRequest" name="Preprocess Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1wi1cf9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('preProcessRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiCloudRegion" name="Call REST AAI Cloud Region" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1dpt7ul</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTQueryAAICloudRegion', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="ScriptTask_callRestAaiCloudRegion" targetRef="ScriptTask_callRestAaiQueryGenericVnf" />
+    <bpmn2:scriptTask id="ScriptTask_createVolGrpExistsException" name="Build Workflow Exception" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_volGrpName404No</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('buildWorkflowException', execution, 2500, "Volume group $DCVFMODVOLV2_volumeGroupName already exists in the system.", isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_createVolGrpExistsException" targetRef="EndEvent_6" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_aaiReturnCode404" name="AAI Return Code is 404?" default="SequenceFlow_volGrpName404No">
+      <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_volGrpName404Yes</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_volGrpName404No</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_volGrpName404Yes" name="Yes" sourceRef="ExclusiveGateway_aaiReturnCode404" targetRef="ScriptTask_callRestAaiCreateVolumeGrp">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{DCVFMODVOLV2_AaiReturnCode == '404'}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_volGrpName404No" name="No" sourceRef="ExclusiveGateway_aaiReturnCode404" targetRef="ScriptTask_createVolGrpExistsException" />
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiQueryGenericVnf" name="Call REST AAI Query Generic VNF" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTQueryAAIGenericVnf', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="" sourceRef="ScriptTask_callRestAaiQueryGenericVnf" targetRef="ScriptTask_callRestAaiQueryVolGrpName" />
+    <bpmn2:boundaryEvent id="BoundaryEvent_catchAaiError" name="" attachedToRef="ScriptTask_callRestAaiQueryVolGrpName">
+      <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
+      <bpmn2:errorEventDefinition id="ErrorEventDefinition_3" errorRef="Error_1" />
+    </bpmn2:boundaryEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="BoundaryEvent_catchAaiError" targetRef="ExclusiveGateway_aaiReturnCode404" />
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiQueryVolGrpName" name="Call REST AAI Query Volume Grp Name" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTQueryAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="ScriptTask_callRestAaiQueryVolGrpName" targetRef="ExclusiveGateway_aaiReturnCode404" />
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiCreateVolumeGrp" name="Call REST AAI Create Volume Group" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_volGrpName404Yes</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTCreateAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="ScriptTask_callRestAaiCreateVolumeGrp" targetRef="ScriptTask_prepareVnfAdapterCreate" />
+    <bpmn2:callActivity id="CallActivity_callVnfAdapterCreate" name="Call VNF Adapter Create" calledElement="vnfAdapterRestV1">
+      <bpmn2:extensionElements>
+        <camunda:in source="DCVFMODVOLV2_createVnfARequest" target="vnfAdapterRestV1Request" />
+        <camunda:in source="msoRequestId" target="mso-request-id" />
+        <camunda:in source="serviceInstanceId" target="mso-service-instance-id" />
+        <camunda:out source="vnfAdapterRestV1Response" target="DCVFMODVOLV2_createVnfAResponse" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="VNFREST_vnfAdapterStatusCode" target="DCVFMODVOLV2_createVnfAReturnCode" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="VNFREST_SuccessIndicator" target="VNFREST_SuccessIndicator" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1qwurc5</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiRequeryVolGrpNm" name="Call REST AAI Requery Volume Group Name" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1gbt2n5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTQueryAAIVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_28" name="" sourceRef="ScriptTask_callRestAaiRequeryVolGrpNm" targetRef="ScriptTask_callRestAaiVolumeGrp" />
+    <bpmn2:scriptTask id="ScriptTask_prepareDbInfraRequest" name="Set Success Indicator" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('setSuccessIndicator', execution, true)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_8" name="" sourceRef="ScriptTask_prepareDbInfraRequest" targetRef="EndEvent_1" />
+    <bpmn2:scriptTask id="ScriptTask_callRestAaiVolumeGrp" name="Call REST AAI Update Volume Group" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_28</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('callRESTUpdateCreatedVolGrpName', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_callRestAaiVolumeGrp" targetRef="ScriptTask_prepareDbInfraRequest" />
+    <bpmn2:endEvent id="EndEvent_1" name="End">
+      <bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="ScriptTask_prepareVnfAdapterCreate" name="Prepare VNF Adapter Create Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('prepareVnfAdapterCreateRequest', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_10" name="" sourceRef="ScriptTask_prepareVnfAdapterCreate" targetRef="CallActivity_callVnfAdapterCreate" />
+    <bpmn2:startEvent id="StartEvent_doCreateVfModuleVolume" name="Start">
+      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_doCreateVfModuleVolume" targetRef="ScriptTask_preProcessRequest" />
+    <bpmn2:endEvent id="EndEvent_6" name="End">
+      <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
+    </bpmn2:endEvent>
+    <bpmn2:scriptTask id="Task_07psich" name="Validate VNF Response" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1qwurc5</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1gbt2n5</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('validateVnfResponse', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1qwurc5" sourceRef="CallActivity_callVnfAdapterCreate" targetRef="Task_07psich" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1gbt2n5" sourceRef="Task_07psich" targetRef="ScriptTask_callRestAaiRequeryVolGrpNm" />
+    <bpmn2:callActivity id="Task_1u766ge" name="Call Generic Get Service instance" calledElement="GenericGetService">
+      <bpmn2:extensionElements>
+        <camunda:in source="serviceInstanceId" target="GENGS_serviceInstanceId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="GENGS_type" target="GENGS_type" />
+        <camunda:out source="GENGS_FoundIndicator" target="GENGS_FoundIndicator" />
+        <camunda:out source="GENGS_SuccessIndicator" target="GENGS_SuccessIndicator" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_1wi1cf9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1vmbvy8</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="Task_0qbm5cz" name="Validate Get Service Instance Call" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1vmbvy8</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1dpt7ul</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVfModuleVolumeV2 = new DoCreateVfModuleVolumeV2()
+doCreateVfModuleVolumeV2.executeMethod('validateGetServiceInstanceCall', execution, isDebugLogEnabled)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1wi1cf9" sourceRef="ScriptTask_preProcessRequest" targetRef="Task_1u766ge" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1vmbvy8" sourceRef="Task_1u766ge" targetRef="Task_0qbm5cz" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1dpt7ul" sourceRef="Task_0qbm5cz" targetRef="ScriptTask_callRestAaiCloudRegion" />
+  </bpmn2:process>
+  <bpmn2:error id="Error_1" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateVfModuleVolumeV2">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_65" bpmnElement="StartEvent_doCreateVfModuleVolume">
+        <dc:Bounds x="270" y="128" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="276" y="169" width="23" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_285" bpmnElement="ScriptTask_preProcessRequest">
+        <dc:Bounds x="369" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_287" bpmnElement="ScriptTask_callRestAaiCloudRegion">
+        <dc:Bounds x="768" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_288" bpmnElement="ScriptTask_callRestAaiQueryVolGrpName">
+        <dc:Bounds x="1045" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_247" bpmnElement="ExclusiveGateway_aaiReturnCode404" isMarkerVisible="true">
+        <dc:Bounds x="1242" y="121" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1224" y="176" width="85" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_289" bpmnElement="ScriptTask_callRestAaiCreateVolumeGrp">
+        <dc:Bounds x="256" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_290" bpmnElement="ScriptTask_prepareVnfAdapterCreate">
+        <dc:Bounds x="420" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_CallActivity_32" bpmnElement="CallActivity_callVnfAdapterCreate">
+        <dc:Bounds x="576" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_292" bpmnElement="ScriptTask_callRestAaiRequeryVolGrpNm">
+        <dc:Bounds x="857" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_293" bpmnElement="ScriptTask_callRestAaiVolumeGrp">
+        <dc:Bounds x="995" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_294" bpmnElement="ScriptTask_prepareDbInfraRequest">
+        <dc:Bounds x="1142" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_226" bpmnElement="EndEvent_1">
+        <dc:Bounds x="1283" y="328" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1292" y="369" width="19" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_65" targetElement="_BPMNShape_ScriptTask_285">
+        <di:waypoint xsi:type="dc:Point" x="306" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="369" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="338" y="131" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_volGrpName404Yes" sourceElement="_BPMNShape_ExclusiveGateway_247" targetElement="_BPMNShape_ScriptTask_289">
+        <di:waypoint xsi:type="dc:Point" x="1267" y="171" />
+        <di:waypoint xsi:type="dc:Point" x="1267" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="811" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="306" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="306" y="307" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="582" y="232" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_ScriptTask_289" targetElement="_BPMNShape_ScriptTask_290">
+        <di:waypoint xsi:type="dc:Point" x="356" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="420" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="388" y="332" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ScriptTask_290" targetElement="_BPMNShape_CallActivity_32">
+        <di:waypoint xsi:type="dc:Point" x="520" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="576" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="548" y="455" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_ScriptTask_287" targetElement="_BPMNShape_ScriptTask_311">
+        <di:waypoint xsi:type="dc:Point" x="868" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="911" y="147" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="890" y="132" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_296" bpmnElement="ScriptTask_createVolGrpExistsException">
+        <dc:Bounds x="1355" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_296" targetElement="_BPMNShape_EndEvent_241">
+        <di:waypoint xsi:type="dc:Point" x="1455" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="1493" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1474" y="131" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_BoundaryEvent_62" targetElement="_BPMNShape_ExclusiveGateway_247">
+        <di:waypoint xsi:type="dc:Point" x="1145" y="88" />
+        <di:waypoint xsi:type="dc:Point" x="1145" y="59" />
+        <di:waypoint xsi:type="dc:Point" x="1267" y="59" />
+        <di:waypoint xsi:type="dc:Point" x="1267" y="121" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1206" y="44" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_volGrpName404No" sourceElement="_BPMNShape_ExclusiveGateway_247" targetElement="_BPMNShape_ScriptTask_296">
+        <di:waypoint xsi:type="dc:Point" x="1292" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="1355" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1320" y="146" width="14" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_28" sourceElement="_BPMNShape_ScriptTask_292" targetElement="_BPMNShape_ScriptTask_293">
+        <di:waypoint xsi:type="dc:Point" x="957" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="995" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="976" y="332" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_293" targetElement="_BPMNShape_ScriptTask_294">
+        <di:waypoint xsi:type="dc:Point" x="1095" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="1142" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1119" y="332" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_ScriptTask_294" targetElement="_BPMNShape_EndEvent_226">
+        <di:waypoint xsi:type="dc:Point" x="1242" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="1283" y="346" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1263" y="332" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_311" bpmnElement="ScriptTask_callRestAaiQueryGenericVnf">
+        <dc:Bounds x="911" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ScriptTask_311" targetElement="_BPMNShape_ScriptTask_288">
+        <di:waypoint xsi:type="dc:Point" x="1011" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="1045" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1028" y="131" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_62" bpmnElement="BoundaryEvent_catchAaiError">
+        <dc:Bounds x="1127" y="88" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1145" y="129" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_ScriptTask_288" targetElement="_BPMNShape_ExclusiveGateway_247">
+        <di:waypoint xsi:type="dc:Point" x="1145" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="1242" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1194" y="131" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_241" bpmnElement="EndEvent_6">
+        <dc:Bounds x="1493" y="128" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1502" y="169" width="19" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_00lua86_di" bpmnElement="Task_07psich">
+        <dc:Bounds x="716" y="307" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qwurc5_di" bpmnElement="SequenceFlow_1qwurc5">
+        <di:waypoint xsi:type="dc:Point" x="676" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="716" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="696" y="322" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1gbt2n5_di" bpmnElement="SequenceFlow_1gbt2n5">
+        <di:waypoint xsi:type="dc:Point" x="816" y="347" />
+        <di:waypoint xsi:type="dc:Point" x="857" y="347" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="837" y="322" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_1u596hd_di" bpmnElement="Task_1u766ge">
+        <dc:Bounds x="506" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1n9cmka_di" bpmnElement="Task_0qbm5cz">
+        <dc:Bounds x="640" y="106" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wi1cf9_di" bpmnElement="SequenceFlow_1wi1cf9">
+        <di:waypoint xsi:type="dc:Point" x="469" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="506" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="488" y="121" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1vmbvy8_di" bpmnElement="SequenceFlow_1vmbvy8">
+        <di:waypoint xsi:type="dc:Point" x="606" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="640" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="623" y="121" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1dpt7ul_di" bpmnElement="SequenceFlow_1dpt7ul">
+        <di:waypoint xsi:type="dc:Point" x="740" y="146" />
+        <di:waypoint xsi:type="dc:Point" x="768" y="146" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="754" y="121" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnf.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnf.bpmn
index 8411c56..5aa4d22 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnf.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnf.bpmn
@@ -8,7 +8,7 @@
     <bpmn2:scriptTask id="initialization" name="Initialization" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 DoCreateVnf createVnf = new DoCreateVnf()
 createVnf.preProcessRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -88,7 +88,7 @@
       <bpmn2:incoming>vnfExistNo</bpmn2:incoming>
       <bpmn2:incoming>VnfNameNotSpecified1</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 DoCreateVnf createVnf = new DoCreateVnf()
 createVnf.prepareCreateGenericVnf(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -136,7 +136,7 @@
     <bpmn2:scriptTask id="preProcessSDNCAssignRequest" name="PreProcess SDNC Assign Request" scriptFormat="groovy">
       <bpmn2:incoming>SdncInteractionEnabled</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1q6udwm</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 DoCreateVnf createVnf = new DoCreateVnf()
 createVnf.preProcessSDNCAssignRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -155,9 +155,8 @@
     </bpmn2:callActivity>
     <bpmn2:scriptTask id="postProcessSDNCAssignRequest" name="PostProcess SDNC Assign Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_15knw0q</bpmn2:incoming>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

       <bpmn2:outgoing>SequenceFlow_0lnh79j</bpmn2:outgoing>
-
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 String response = execution.getVariable("DoCVNF_assignSDNCAdapterResponse")
 
 def createVnfInfra = new DoCreateVnf()
@@ -167,7 +166,7 @@
       <bpmn2:incoming>SequenceFlow_1q1poly</bpmn2:incoming>
       <bpmn2:incoming>VnfNameSpecified2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1lalmvp</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 DoCreateVnf createVnf = new DoCreateVnf()
 createVnf.preProcessSDNCActivateRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -187,7 +186,7 @@
     <bpmn2:scriptTask id="postProcessSDNCActivateRequest" name="PostProcess SDNC Activate Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0eb41vb</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_15z3gpq</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 
 String response = execution.getVariable("DoCVNF_assignSDNCAdapterResponse")
 
@@ -208,7 +207,7 @@
     <bpmn2:scriptTask id="postProcessCreateGenericVnf" name="PostProcess Create Generic Vnf" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0seif8n</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1gc18ih</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 DoCreateVnf createVnf = new DoCreateVnf()
 createVnf.postProcessCreateGenericVnf(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -655,4 +654,4 @@
       </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
+</bpmn2:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModules.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModules.bpmn
index be54119..a90c816 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModules.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModules.bpmn
@@ -25,11 +25,11 @@
         <camunda:in source="volumeGroupName" target="volumeGroupName" />
         <camunda:in source="baseVfModuleId" target="vfModuleId" />
         <camunda:in source="baseVfModuleModelInfo" target="vfModuleModelInfo" />
-        <camunda:in source="&#34;true&#34;" target="isBaseVfModule" />
+        <camunda:in source="isBaseVfModule" target="isBaseVfModule" />
         <camunda:in source="asdcServiceModelVersion" target="asdcServiceModelVersion" />
         <camunda:out source="vfModuleId" target="createdVfModuleId" />
         <camunda:out source="vfModuleOutputParams" target="createdVfModuleOutputParams" />
-        <camunda:out source="RollbackData" target="DCVAM_baseRollbackData" />
+        <camunda:out source="rollbackData" target="DCVAM_baseRollbackData" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
         <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
@@ -44,7 +44,7 @@
       <bpmn:outgoing>SequenceFlow_1ixcnb6</bpmn:outgoing>
     </bpmn:callActivity>
     <bpmn:sequenceFlow id="SequenceFlow_0o4vuzt" sourceRef="StartEvent_1" targetRef="PreProcessRequest" />
-    <bpmn:sequenceFlow id="SequenceFlow_1xd3ri5" sourceRef="PreProcessRequest" targetRef="CreateVNF" />
+    <bpmn:sequenceFlow id="SequenceFlow_1xd3ri5" sourceRef="PreProcessRequest" targetRef="QueryCatalogDB" />
     <bpmn:callActivity id="CreateAddOnVfModule" name="Create Add-On VF Module" calledElement="DoCreateVfModule">
       <bpmn:extensionElements>
         <camunda:in source="msoRequestId" target="msoRequestId" />
@@ -59,11 +59,11 @@
         <camunda:in source="volumeGroupId" target="volumeGroupId" />
         <camunda:in source="volumeGroupName" target="volumeGroupName" />
         <camunda:in source="addOnVfModuleModelInfo" target="vfModuleModelInfo" />
-        <camunda:in source="&#34;false&#34;" target="isBaseVfModule" />
+        <camunda:in source="isBaseVfModule" target="isBaseVfModule" />
         <camunda:in source="asdcServiceModelVersion" target="asdcServiceModelVersion" />
         <camunda:out source="vfModuleId" target="createdVfModuleId" />
         <camunda:out source="vfModuleOutputParameters" target="createdVfModuleOutputParameters" />
-        <camunda:out source="RollbackData" target="DCVAM_addOnRollbackData" />
+        <camunda:out source="rollbackData" target="DCVAM_addOnRollbackData" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
         <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
@@ -95,8 +95,8 @@
           <camunda:property />
         </camunda:properties>
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_07gl6gw</bpmn:incoming>
       <bpmn:incoming>SequenceFlow_1a6wyuu</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_0j52dxv</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_132bohl</bpmn:outgoing>
       <bpmn:outgoing>SequenceFlow_0jz6bqn</bpmn:outgoing>
     </bpmn:exclusiveGateway>
@@ -115,7 +115,7 @@
         <camunda:in source="productFamilyId" target="productFamilyId" />
         <camunda:out source="vnfId" target="vnfId" />
         <camunda:out source="vnfOutputParams" target="vnfOutputParams" />
-        <camunda:out source="RollbackData" target="RollbackData" />
+        <camunda:out source="rollbackData" target="rollbackData" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
         <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
@@ -123,9 +123,11 @@
         <camunda:out source="vnfName" target="vnfName" />
         <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
         <camunda:in source="tenantId" target="tenantId" />
+        <camunda:in source="rollbackData" target="rollbackData" />
+        <camunda:in source="vnfResourceDecomposition" target="vnfResourceDecomposition" />
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_1xd3ri5</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_08i3uo6</bpmn:outgoing>
+      <bpmn:incoming>SequenceFlow_19ohb1a</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_07u8e3l</bpmn:outgoing>
     </bpmn:callActivity>
     <bpmn:scriptTask id="PreProcessAddOnModule" name="PreProcess Add-On Module" scriptFormat="groovy">
       <bpmn:incoming>SequenceFlow_0jz6bqn</bpmn:incoming>
@@ -135,13 +137,12 @@
 doCreateVnfAndModules.preProcessAddOnModule(execution)]]></bpmn:script>
     </bpmn:scriptTask>
     <bpmn:scriptTask id="QueryCatalogDB" name="Query Catalog DB for VF Modules" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_08i3uo6</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_1ifw9tw</bpmn:outgoing>
+      <bpmn:incoming>SequenceFlow_1xd3ri5</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_19ohb1a</bpmn:outgoing>
       <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def doCreateVnfAndModules = new DoCreateVnfAndModules()
 doCreateVnfAndModules.queryCatalogDB(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:sequenceFlow id="SequenceFlow_08i3uo6" sourceRef="CreateVNF" targetRef="QueryCatalogDB" />
     <bpmn:exclusiveGateway id="ExclusiveGateway_1hx9s0y" name="Less than initialCount?" default="SequenceFlow_1vrogpr">
       <bpmn:incoming>SequenceFlow_1mguf2m</bpmn:incoming>
       <bpmn:incoming>SequenceFlow_12x4dvf</bpmn:incoming>
@@ -155,9 +156,7 @@
       <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("instancesOfThisModuleDeployed") < execution.getVariable("initialCount")}]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="SequenceFlow_1mguf2m" sourceRef="Task_1lfmdks" targetRef="ExclusiveGateway_1hx9s0y" />
-    <bpmn:sequenceFlow id="SequenceFlow_1vrogpr" name="no" sourceRef="ExclusiveGateway_1hx9s0y" targetRef="FinishProcessingInitialCountDeployment" />
-    <bpmn:sequenceFlow id="SequenceFlow_07gl6gw" sourceRef="FinishProcessingInitialCountDeployment" targetRef="ExclusiveGateway_1vyqr5o" />
-    <bpmn:sequenceFlow id="SequenceFlow_1ifw9tw" sourceRef="QueryCatalogDB" targetRef="GenerateBaseModuleName" />
+    <bpmn:sequenceFlow id="SequenceFlow_1vrogpr" name="no" sourceRef="ExclusiveGateway_1hx9s0y" targetRef="PostProcessAddOnModule" />
     <bpmn:sequenceFlow id="SequenceFlow_1hf7k7q" sourceRef="GenerateBaseModuleName" targetRef="CreateBaseVfModule" />
     <bpmn:callActivity id="GenerateBaseModuleName" name="Generate Base Module Name" calledElement="GenerateVfModuleName">
       <bpmn:extensionElements>
@@ -169,7 +168,7 @@
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_1ifw9tw</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_07u8e3l</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1hf7k7q</bpmn:outgoing>
     </bpmn:callActivity>
     <bpmn:callActivity id="GenerateAddOnModuleName" name="Generate Add-On Module Name" calledElement="GenerateVfModuleName">
@@ -187,13 +186,6 @@
     </bpmn:callActivity>
     <bpmn:sequenceFlow id="SequenceFlow_1lh21yl" sourceRef="GenerateAddOnModuleName" targetRef="CreateAddOnVfModule" />
     <bpmn:sequenceFlow id="SequenceFlow_12x4dvf" sourceRef="PreProcessAddOnModule" targetRef="ExclusiveGateway_1hx9s0y" />
-    <bpmn:scriptTask id="FinishProcessingInitialCountDeployment" name="Finish Processing Initial Count Deployment" scriptFormat="groovy">
-      <bpmn:incoming>SequenceFlow_1vrogpr</bpmn:incoming>
-      <bpmn:outgoing>SequenceFlow_07gl6gw</bpmn:outgoing>
-      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
-def doCreateVnfAndModules = new DoCreateVnfAndModules()
-doCreateVnfAndModules.finisthProcessingInitialCountDeployment(execution)]]></bpmn:script>
-    </bpmn:scriptTask>
     <bpmn:sequenceFlow id="SequenceFlow_1ixcnb6" sourceRef="CreateBaseVfModule" targetRef="Task_054rz9i" />
     <bpmn:sequenceFlow id="SequenceFlow_1a6wyuu" sourceRef="Task_054rz9i" targetRef="ExclusiveGateway_1vyqr5o" />
     <bpmn:scriptTask id="Task_054rz9i" name="Validate Create Base VF Module Response" scriptFormat="groovy">
@@ -203,24 +195,55 @@
 def doCreateVnfAndModules = new DoCreateVnfAndModules()
 doCreateVnfAndModules.validateBaseModule(execution)]]></bpmn:script>
     </bpmn:scriptTask>
-    <bpmn:subProcess id="SubProcess_1ktx0cx" name="Java Exception Handling Sub Process" triggeredByEvent="true">
-      <bpmn:scriptTask id="processJavaError" name="Process Error" scriptFormat="groovy">
-        <bpmn:incoming>SequenceFlow_11bmhi4</bpmn:incoming>
-        <bpmn:outgoing>SequenceFlow_1kjlzrn</bpmn:outgoing>
-        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
-ExceptionUtil exceptionUtil = new ExceptionUtil()
-exceptionUtil.processJavaException(execution)]]></bpmn:script>
-      </bpmn:scriptTask>
-      <bpmn:endEvent id="EndEvent_2">
-        <bpmn:incoming>SequenceFlow_1kjlzrn</bpmn:incoming>
+    <bpmn:subProcess id="SubProcess_0u7tbb2" name="Sub-process for Application Errors" triggeredByEvent="true">
+      <bpmn:endEvent id="EndEvent_16s0a3q">
+        <bpmn:incoming>SequenceFlow_1h74w1v</bpmn:incoming>
       </bpmn:endEvent>
-      <bpmn:startEvent id="StartEvent_2">
-        <bpmn:outgoing>SequenceFlow_11bmhi4</bpmn:outgoing>
-        <bpmn:errorEventDefinition errorRef="Error_1" />
+      <bpmn:callActivity id="CallActivity_0gtajjm" name="Call DoCreateVnfAndModulesRollback" calledElement="DoCreateVnfAndModulesRollback">
+        <bpmn:extensionElements>
+          <camunda:in source="msoRequestId" target="msoRequestId" />
+          <camunda:in source="rollbackData" target="rollbackData" />
+          <camunda:in source="disableRollback" target="disableRollback" />
+          <camunda:out source="rolledBack" target="rolledBack" />
+          <camunda:out source="rollbackError" target="rollbackError" />
+          <camunda:in source="sdncVersion" target="sdncVersion" />
+        </bpmn:extensionElements>
+        <bpmn:incoming>SequenceFlow_03v8mmc</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_0yu0im2</bpmn:outgoing>
+      </bpmn:callActivity>
+      <bpmn:scriptTask id="PreProcessRollback" name="Pre Process Rollback" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_1l0rxnh</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_03v8mmc</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvam = new DoCreateVnfAndModules()
+dcvam.preProcessRollback(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:scriptTask id="PostProcessRollback" name="Post Process Rollback" scriptFormat="groovy">
+        <bpmn:incoming>SequenceFlow_0yu0im2</bpmn:incoming>
+        <bpmn:outgoing>SequenceFlow_1h74w1v</bpmn:outgoing>
+        <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvam = new DoCreateVnfAndModules()
+dcvam.postProcessRollback(execution)]]></bpmn:script>
+      </bpmn:scriptTask>
+      <bpmn:sequenceFlow id="SequenceFlow_1l0rxnh" sourceRef="StartEvent_1nbwxby" targetRef="PreProcessRollback" />
+      <bpmn:sequenceFlow id="SequenceFlow_1h74w1v" sourceRef="PostProcessRollback" targetRef="EndEvent_16s0a3q" />
+      <bpmn:sequenceFlow id="SequenceFlow_03v8mmc" sourceRef="PreProcessRollback" targetRef="CallActivity_0gtajjm" />
+      <bpmn:sequenceFlow id="SequenceFlow_0yu0im2" sourceRef="CallActivity_0gtajjm" targetRef="PostProcessRollback" />
+      <bpmn:startEvent id="StartEvent_1nbwxby">
+        <bpmn:outgoing>SequenceFlow_1l0rxnh</bpmn:outgoing>
+        <bpmn:errorEventDefinition errorRef="Error_2" />
       </bpmn:startEvent>
-      <bpmn:sequenceFlow id="SequenceFlow_11bmhi4" name="" sourceRef="StartEvent_2" targetRef="processJavaError" />
-      <bpmn:sequenceFlow id="SequenceFlow_1kjlzrn" name="" sourceRef="processJavaError" targetRef="EndEvent_2" />
     </bpmn:subProcess>
+    <bpmn:sequenceFlow id="SequenceFlow_19ohb1a" sourceRef="QueryCatalogDB" targetRef="CreateVNF" />
+    <bpmn:sequenceFlow id="SequenceFlow_07u8e3l" sourceRef="CreateVNF" targetRef="GenerateBaseModuleName" />
+    <bpmn:sequenceFlow id="SequenceFlow_0j52dxv" sourceRef="PostProcessAddOnModule" targetRef="ExclusiveGateway_1vyqr5o" />
+    <bpmn:scriptTask id="PostProcessAddOnModule" name="PostProcess Add-On Module" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1vrogpr</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0j52dxv</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def doCreateVnfAndModules = new DoCreateVnfAndModules()
+doCreateVnfAndModules.postProcessAddOnModule(execution)]]></bpmn:script>
+    </bpmn:scriptTask>
   </bpmn:process>
   <bpmn:error id="Error_1" name="Java Lang Exception" errorCode="java.lang.Exception" />
   <bpmn:error id="Error_2" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
@@ -247,9 +270,9 @@
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1xd3ri5_di" bpmnElement="SequenceFlow_1xd3ri5">
         <di:waypoint xsi:type="dc:Point" x="356" y="165" />
-        <di:waypoint xsi:type="dc:Point" x="430" y="165" />
+        <di:waypoint xsi:type="dc:Point" x="418" y="165" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="393" y="150" width="0" height="0" />
+          <dc:Bounds x="387" y="150" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_0auiwq0_di" bpmnElement="CreateAddOnVfModule">
@@ -287,21 +310,14 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_0zr4ioh_di" bpmnElement="CreateVNF">
-        <dc:Bounds x="430" y="125" width="100" height="80" />
+        <dc:Bounds x="574" y="125" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_0tknqn1_di" bpmnElement="PreProcessAddOnModule">
         <dc:Bounds x="1300" y="125" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1u6qcio_di" bpmnElement="QueryCatalogDB">
-        <dc:Bounds x="590" y="125" width="100" height="80" />
+        <dc:Bounds x="418" y="125" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_08i3uo6_di" bpmnElement="SequenceFlow_08i3uo6">
-        <di:waypoint xsi:type="dc:Point" x="530" y="165" />
-        <di:waypoint xsi:type="dc:Point" x="590" y="165" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="560" y="150" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ExclusiveGateway_1hx9s0y_di" bpmnElement="ExclusiveGateway_1hx9s0y" isMarkerVisible="true">
         <dc:Bounds x="1493" y="140" width="50" height="50" />
         <bpmndi:BPMNLabel>
@@ -337,24 +353,10 @@
         <di:waypoint xsi:type="dc:Point" x="1518" y="190" />
         <di:waypoint xsi:type="dc:Point" x="1518" y="221" />
         <di:waypoint xsi:type="dc:Point" x="1518" y="221" />
-        <di:waypoint xsi:type="dc:Point" x="1518" y="258" />
+        <di:waypoint xsi:type="dc:Point" x="1518" y="301" />
+        <di:waypoint xsi:type="dc:Point" x="1400" y="301" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1527" y="221" width="12" height="12" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_07gl6gw_di" bpmnElement="SequenceFlow_07gl6gw">
-        <di:waypoint xsi:type="dc:Point" x="1468" y="298" />
-        <di:waypoint xsi:type="dc:Point" x="1192" y="298" />
-        <di:waypoint xsi:type="dc:Point" x="1191" y="190" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1330" y="283" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1ifw9tw_di" bpmnElement="SequenceFlow_1ifw9tw">
-        <di:waypoint xsi:type="dc:Point" x="690" y="165" />
-        <di:waypoint xsi:type="dc:Point" x="740" y="165" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="715" y="150" width="0" height="0" />
+          <dc:Bounds x="1528" y="247.2077922077922" width="12" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1hf7k7q_di" bpmnElement="SequenceFlow_1hf7k7q">
@@ -384,9 +386,6 @@
           <dc:Bounds x="1447" y="140" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="ScriptTask_144n0mg_di" bpmnElement="FinishProcessingInitialCountDeployment">
-        <dc:Bounds x="1468" y="258" width="100" height="80" />
-      </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1ixcnb6_di" bpmnElement="SequenceFlow_1ixcnb6">
         <di:waypoint xsi:type="dc:Point" x="988" y="165" />
         <di:waypoint xsi:type="dc:Point" x="1030" y="165" />
@@ -404,38 +403,85 @@
       <bpmndi:BPMNShape id="ScriptTask_1obevnp_di" bpmnElement="Task_054rz9i">
         <dc:Bounds x="1030" y="125" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="SubProcess_1ktx0cx_di" bpmnElement="SubProcess_1ktx0cx" isExpanded="true">
-        <dc:Bounds x="208" y="438" width="313" height="169" />
+      <bpmndi:BPMNShape id="SubProcess_0u7tbb2_di" bpmnElement="SubProcess_0u7tbb2" isExpanded="true">
+        <dc:Bounds x="113" y="382" width="783" height="195" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="ScriptTask_1j93kr8_di" bpmnElement="processJavaError">
-        <dc:Bounds x="316" y="484" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="EndEvent_1s63ccl_di" bpmnElement="EndEvent_2">
-        <dc:Bounds x="461" y="506" width="36" height="36" />
+      <bpmndi:BPMNShape id="EndEvent_16s0a3q_di" bpmnElement="EndEvent_16s0a3q">
+        <dc:Bounds x="843" y="460" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="479" y="547" width="0" height="0" />
+          <dc:Bounds x="861" y="501" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="StartEvent_028j51v_di" bpmnElement="StartEvent_2">
-        <dc:Bounds x="233" y="506" width="36" height="36" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="251" y="547" width="0" height="0" />
-        </bpmndi:BPMNLabel>
+      <bpmndi:BPMNShape id="CallActivity_0gtajjm_di" bpmnElement="CallActivity_0gtajjm">
+        <dc:Bounds x="508" y="438" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_11bmhi4_di" bpmnElement="SequenceFlow_11bmhi4">
-        <di:waypoint xsi:type="dc:Point" x="269" y="524" />
-        <di:waypoint xsi:type="dc:Point" x="316" y="524" />
+      <bpmndi:BPMNShape id="ScriptTask_12g5tld_di" bpmnElement="PreProcessRollback">
+        <dc:Bounds x="345" y="438" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1nk6apr_di" bpmnElement="PostProcessRollback">
+        <dc:Bounds x="676" y="438" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1l0rxnh_di" bpmnElement="SequenceFlow_1l0rxnh">
+        <di:waypoint xsi:type="dc:Point" x="246" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="345" y="478" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="290" y="524" width="0" height="0" />
+          <dc:Bounds x="296" y="463" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="SequenceFlow_1kjlzrn_di" bpmnElement="SequenceFlow_1kjlzrn">
-        <di:waypoint xsi:type="dc:Point" x="416" y="524" />
-        <di:waypoint xsi:type="dc:Point" x="461" y="524" />
+      <bpmndi:BPMNEdge id="SequenceFlow_1h74w1v_di" bpmnElement="SequenceFlow_1h74w1v">
+        <di:waypoint xsi:type="dc:Point" x="776" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="808" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="808" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="843" y="478" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="436" y="524" width="0" height="0" />
+          <dc:Bounds x="823" y="478" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_03v8mmc_di" bpmnElement="SequenceFlow_03v8mmc">
+        <di:waypoint xsi:type="dc:Point" x="445" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="508" y="478" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="477" y="463" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0yu0im2_di" bpmnElement="SequenceFlow_0yu0im2">
+        <di:waypoint xsi:type="dc:Point" x="608" y="478" />
+        <di:waypoint xsi:type="dc:Point" x="676" y="478" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="642" y="463" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="StartEvent_00jdkur_di" bpmnElement="StartEvent_1nbwxby">
+        <dc:Bounds x="210" y="460" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="228" y="501" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_19ohb1a_di" bpmnElement="SequenceFlow_19ohb1a">
+        <di:waypoint xsi:type="dc:Point" x="518" y="165" />
+        <di:waypoint xsi:type="dc:Point" x="574" y="165" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="546" y="140" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_07u8e3l_di" bpmnElement="SequenceFlow_07u8e3l">
+        <di:waypoint xsi:type="dc:Point" x="674" y="165" />
+        <di:waypoint xsi:type="dc:Point" x="740" y="165" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="707" y="140" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0j52dxv_di" bpmnElement="SequenceFlow_0j52dxv">
+        <di:waypoint xsi:type="dc:Point" x="1300" y="301" />
+        <di:waypoint xsi:type="dc:Point" x="1192" y="301" />
+        <di:waypoint xsi:type="dc:Point" x="1191" y="190" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1246" y="286" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0srhar8_di" bpmnElement="PostProcessAddOnModule">
+        <dc:Bounds x="1300" y="262" width="100" height="80" />
+      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModulesRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModulesRollback.bpmn
index 2fba166..aa36202 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModulesRollback.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVnfAndModulesRollback.bpmn
@@ -9,9 +9,9 @@
       <bpmn2:endEvent id="EndEvent_1">
         <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
       </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="CatchExceptions" targetRef="LogSaveWorkflowException" />
+      <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="CatchExceptions" targetRef="SetFailedRollbackStatus" />
       <bpmn2:scriptTask id="LogSaveWorkflowException" name="Log and Save Workflow Exception" scriptFormat="groovy">
-        <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
+        <bpmn2:incoming>SequenceFlow_1wch84s</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
         <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def dcvfmr = new DoCreateVfModuleRollback()
@@ -19,6 +19,14 @@
 dcvfmr.saveWorkflowException(execution, 'DCVFMR_CaughtWorkflowException1')]]></bpmn2:script>
       </bpmn2:scriptTask>
       <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="LogSaveWorkflowException" targetRef="EndEvent_1" />
+      <bpmn2:sequenceFlow id="SequenceFlow_1wch84s" sourceRef="SetFailedRollbackStatus" targetRef="LogSaveWorkflowException" />
+      <bpmn2:scriptTask id="SetFailedRollbackStatus" name="Set Failed Rollback Status" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_1wch84s</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr= new DoCreateVnfAndModulesRollback()
+dcvamr.setFailedRollbackStatus(execution)]]></bpmn2:script>
+      </bpmn2:scriptTask>
     </bpmn2:subProcess>
     <bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="SubProcess_1">
       <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
@@ -32,19 +40,21 @@
       <bpmn2:outgoing>SequenceFlow_1537b7m</bpmn2:outgoing>
     </bpmn2:startEvent>
     <bpmn2:exclusiveGateway id="ExclusiveGateway_12v8g91" name="Are there VF Modules to roll back?" default="SequenceFlow_1r6wyy6">
-      <bpmn2:incoming>SequenceFlow_0bmsi5h</bpmn2:incoming>
       <bpmn2:incoming>SequenceFlow_1srw52v</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0zjzorm</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_19xaddm</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1r6wyy6</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_0v85t87</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:exclusiveGateway id="ExclusiveGateway_09ajxqr" name="Delete VNF?" default="SequenceFlow_1yas9ol">
-      <bpmn2:incoming>SequenceFlow_1r6wyy6</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1g6psjt</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_152tazp</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1kr0r4a</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_1yas9ol</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:endEvent id="EndEvent_1seag7u">
-      <bpmn2:incoming>SequenceFlow_04yd2yr</bpmn2:incoming>
-      <bpmn2:incoming>SequenceFlow_1yas9ol</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0mk9lrj</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_03cc9y6</bpmn2:incoming>
     </bpmn2:endEvent>
     <bpmn2:sequenceFlow id="SequenceFlow_1537b7m" sourceRef="StartEvent_1gai4qr" targetRef="PreProcessRequest" />
     <bpmn2:scriptTask id="PreProcessRequest" name="PreProcess Request" scriptFormat="groovy">
@@ -54,8 +64,8 @@
 def dcvamr = new DoCreateVnfAndModulesRollback()
 dcvamr.preProcessRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_0bmsi5h" sourceRef="PreProcessRequest" targetRef="ExclusiveGateway_12v8g91" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1ycq005" sourceRef="Task_1sbxjc8" targetRef="Task_0ifyxgt" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0bmsi5h" sourceRef="PreProcessRequest" targetRef="ExclusiveGateway_01o1lkn" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1ycq005" sourceRef="Task_1sbxjc8" targetRef="RollbackCreateVFModule" />
     <bpmn2:scriptTask id="Task_1sbxjc8" name="Prepare Rollback Create VF Module Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0v85t87</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1ycq005</bpmn2:outgoing>
@@ -63,26 +73,30 @@
 def dcvamr = new DoCreateVnfAndModulesRollback()
 dcvamr.preProcessCreateVfModuleRollback(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:callActivity id="Task_0ifyxgt" name="Rollback Create VF Module " calledElement="DoCreateVfModuleRollback">
+    <bpmn2:callActivity id="RollbackCreateVFModule" name="Rollback Create VF Module " calledElement="DoCreateVfModuleRollback">
       <bpmn2:extensionElements>
-        <camunda:in source="DCVAMR_RollbackData" target="RollbackData" />
+        <camunda:in source="DCVAMR_RollbackData" target="rollbackData" />
         <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
         <camunda:in source="&#34;true&#34;" target="isVidRequest" />
         <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="disableRollback" target="disableRollback" />
+        <camunda:in source="sdncVersion" target="sdncVersion" />
+        <camunda:out source="rolledBack" target="DCVM_rolledBack" />
+        <camunda:out source="rollbackError" target="rollbackError" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_1ycq005</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_181hb2a</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_1r6wyy6" name="no" sourceRef="ExclusiveGateway_12v8g91" targetRef="ExclusiveGateway_09ajxqr" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1r6wyy6" name="no" sourceRef="ExclusiveGateway_12v8g91" targetRef="ExclusiveGateway_07kr3gt" />
     <bpmn2:sequenceFlow id="SequenceFlow_0v85t87" name="yes" sourceRef="ExclusiveGateway_12v8g91" targetRef="Task_1sbxjc8">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAMR_numOfModulesToDelete") > 0}]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:sequenceFlow id="SequenceFlow_1kr0r4a" name="yes" sourceRef="ExclusiveGateway_09ajxqr" targetRef="Task_0p8fmrm">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAMR_vnfId") != null}]]></bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAMR_rollbackVnfCreate")  == "true"}]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_04yd2yr" sourceRef="Task_0p8fmrm" targetRef="EndEvent_1seag7u" />
-    <bpmn2:sequenceFlow id="SequenceFlow_1yas9ol" name="no" sourceRef="ExclusiveGateway_09ajxqr" targetRef="EndEvent_1seag7u" />
+    <bpmn2:sequenceFlow id="SequenceFlow_04yd2yr" sourceRef="Task_0p8fmrm" targetRef="SetSuccessfulRollbackStatus" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1yas9ol" name="no" sourceRef="ExclusiveGateway_09ajxqr" targetRef="SetSuccessfulRollbackStatus" />
     <bpmn2:callActivity id="Task_0p8fmrm" name="Delete VNF" calledElement="DoDeleteVnf">
       <bpmn2:extensionElements>
         <camunda:in source="DCVAMR_vnfId" target="vnfId" />
@@ -92,7 +106,7 @@
       <bpmn2:incoming>SequenceFlow_1kr0r4a</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_04yd2yr</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_181hb2a" sourceRef="Task_0ifyxgt" targetRef="Task_0kf9oby" />
+    <bpmn2:sequenceFlow id="SequenceFlow_181hb2a" sourceRef="RollbackCreateVFModule" targetRef="Task_0kf9oby" />
     <bpmn2:scriptTask id="Task_0kf9oby" name="PostProcess Rollback Create VF Module" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_181hb2a</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1srw52v</bpmn2:outgoing>
@@ -101,13 +115,111 @@
 dcvamr.postProcessCreateVfModuleRollback(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1srw52v" sourceRef="Task_0kf9oby" targetRef="ExclusiveGateway_12v8g91" />
+    <bpmn2:scriptTask id="PreProcessSDNCDeactivateRequest" name="PreProcess SDNC Deactivate Request" scriptFormat="groovy">
+      <bpmn2:incoming>SDNCDeactivateYes</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0nysmc9</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr= new DoCreateVnfAndModulesRollback()
+dcvamr.preProcessSDNCDeactivateRequest(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="ScriptTask_1ug98j4" name="PostProcess SDNC Deactivate Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1hc04x2</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_19xaddm</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr = new DoDeleteVnfAndModules()
+String response = execution.getVariable("DCVAMR_deactivateSDNCAdapterResponse")
+dcvamr.validateSDNCResponse(execution, response, "deactivate")]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:callActivity id="SDNCAdapterTopologyDeactivate" name="Call SDNC Adapter Topology Deactivate" calledElement="sdncAdapter">
+      <bpmn2:extensionElements>
+        <camunda:in source="DCVAMR_deactivateSDNCRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="sdncAdapterResponse" target="DCVAMR_deactivateSDNCAdapterResponse" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0nysmc9</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1hc04x2</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_0nysmc9" sourceRef="PreProcessSDNCDeactivateRequest" targetRef="SDNCAdapterTopologyDeactivate" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1hc04x2" sourceRef="SDNCAdapterTopologyDeactivate" targetRef="ScriptTask_1ug98j4" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1sr014x" name="Send SDNC Deactivate?" default="SequenceFlow_0zjzorm">
+      <bpmn2:incoming>SequenceFlow_1rezswi</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0zjzorm</bpmn2:outgoing>
+      <bpmn2:outgoing>SDNCDeactivateYes</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_0zjzorm" name="no" sourceRef="ExclusiveGateway_1sr014x" targetRef="ExclusiveGateway_12v8g91" />
+    <bpmn2:sequenceFlow id="SDNCDeactivateYes" name="yes" sourceRef="ExclusiveGateway_1sr014x" targetRef="PreProcessSDNCDeactivateRequest">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAMR_rollbackSDNCActivate")  == "true"}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_19xaddm" sourceRef="ScriptTask_1ug98j4" targetRef="ExclusiveGateway_12v8g91" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_07kr3gt" name="Send SDNC Unassign?" default="SequenceFlow_1g6psjt">
+      <bpmn2:incoming>SequenceFlow_1r6wyy6</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1g6psjt</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_01am36p</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_1g6psjt" name="no" sourceRef="ExclusiveGateway_07kr3gt" targetRef="ExclusiveGateway_09ajxqr" />
+    <bpmn2:scriptTask id="ScriptTask_1ma7nvr" name="PreProcess SDNC Unassign Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_01am36p</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0a5ecvu</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr= new DoCreateVnfAndModulesRollback()
+dcvamr.preProcessSDNCUnassignRequest(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:callActivity id="CallActivity_018fqnd" name="Call SDNC Adapter Topology Unassign" calledElement="sdncAdapter">
+      <bpmn2:extensionElements>
+        <camunda:in source="DCVAMR_unassignSDNCRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="sdncAdapterResponse" target="DCVAMR_unassignSDNCAdapterResponse" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_0a5ecvu</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1ilok6u</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="ScriptTask_0b3jyb7" name="PostProcess SDNC Unassign Request" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1ilok6u</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_152tazp</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr = new DoDeleteVnfAndModules()
+String response = execution.getVariable("DCVAMR_unassignSDNCAdapterResponse")
+dcvamr.validateSDNCResponse(execution, response, "unassign")]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_0a5ecvu" sourceRef="ScriptTask_1ma7nvr" targetRef="CallActivity_018fqnd" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1ilok6u" sourceRef="CallActivity_018fqnd" targetRef="ScriptTask_0b3jyb7" />
+    <bpmn2:sequenceFlow id="SequenceFlow_152tazp" sourceRef="ScriptTask_0b3jyb7" targetRef="ExclusiveGateway_09ajxqr" />
+    <bpmn2:sequenceFlow id="SequenceFlow_01am36p" name="yes" sourceRef="ExclusiveGateway_07kr3gt" targetRef="ScriptTask_1ma7nvr">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("DCVAMR_rollbackSDNCAssign")  == "true"}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_01o1lkn" name="Skip rollback?" default="SequenceFlow_1rezswi">
+      <bpmn2:incoming>SequenceFlow_0bmsi5h</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1rezswi</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_0mk9lrj</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_1rezswi" name="no" sourceRef="ExclusiveGateway_01o1lkn" targetRef="ExclusiveGateway_1sr014x" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0mk9lrj" name="yes" sourceRef="ExclusiveGateway_01o1lkn" targetRef="EndEvent_1seag7u">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("skipRollback" )  == true}]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:sequenceFlow id="SequenceFlow_03cc9y6" sourceRef="SetSuccessfulRollbackStatus" targetRef="EndEvent_1seag7u" />
+    <bpmn2:scriptTask id="SetSuccessfulRollbackStatus" name="Set Successful Rollback Status" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1yas9ol</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_04yd2yr</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_03cc9y6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def dcvamr= new DoCreateVnfAndModulesRollback()
+dcvamr.setSuccessfulRollbackStatus(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
   </bpmn2:process>
   <bpmn2:error id="Error_1" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
   <bpmn2:message id="Message_1" name="DoCreateVfModuleRollbackRequest" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateVnfAndModulesRollback">
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_22" bpmnElement="SubProcess_1" isExpanded="true">
-        <dc:Bounds x="18" y="1012" width="469" height="150" />
+        <dc:Bounds x="16" y="1012" width="621" height="152" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_59" bpmnElement="CatchExceptions">
         <dc:Bounds x="36" y="1063" width="36" height="36" />
@@ -116,167 +228,313 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_281" bpmnElement="LogSaveWorkflowException">
-        <dc:Bounds x="174" y="1041" width="100" height="80" />
+        <dc:Bounds x="361" y="1041" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_188" bpmnElement="EndEvent_1">
-        <dc:Bounds x="349" y="1062" width="36" height="36" />
+        <dc:Bounds x="537" y="1063" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="367" y="1098" width="0" height="0" />
+          <dc:Bounds x="555" y="1099" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_55" bpmnElement="BoundaryEvent_1">
-        <dc:Bounds x="469" y="1058" width="36" height="36" />
+        <dc:Bounds x="619" y="1059" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="487" y="1094" width="0" height="0" />
+          <dc:Bounds x="637" y="1095" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_189" bpmnElement="EndEvent_2">
-        <dc:Bounds x="593" y="1058" width="36" height="36" />
+        <dc:Bounds x="710" y="1058" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="611" y="1099" width="0" height="0" />
+          <dc:Bounds x="728" y="1099" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_StartEvent_59" targetElement="_BPMNShape_ScriptTask_281">
         <di:waypoint xsi:type="dc:Point" x="72" y="1081" />
-        <di:waypoint xsi:type="dc:Point" x="174" y="1081" />
+        <di:waypoint xsi:type="dc:Point" x="161" y="1081" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="120" y="1081" width="0" height="0" />
+          <dc:Bounds x="117" y="1066" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ScriptTask_281" targetElement="_BPMNShape_EndEvent_188">
-        <di:waypoint xsi:type="dc:Point" x="274" y="1081" />
-        <di:waypoint xsi:type="dc:Point" x="311" y="1081" />
-        <di:waypoint xsi:type="dc:Point" x="311" y="1080" />
-        <di:waypoint xsi:type="dc:Point" x="349" y="1080" />
+        <di:waypoint xsi:type="dc:Point" x="461" y="1081" />
+        <di:waypoint xsi:type="dc:Point" x="537" y="1081" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="326" y="1071" width="0" height="0" />
+          <dc:Bounds x="499" y="1066" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_BoundaryEvent_55" targetElement="_BPMNShape_EndEvent_189">
-        <di:waypoint xsi:type="dc:Point" x="505" y="1076" />
-        <di:waypoint xsi:type="dc:Point" x="593" y="1076" />
+        <di:waypoint xsi:type="dc:Point" x="655" y="1077" />
+        <di:waypoint xsi:type="dc:Point" x="710" y="1076" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="550" y="1051" width="0" height="0" />
+          <dc:Bounds x="683" y="1061.5" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="StartEvent_1gai4qr_di" bpmnElement="StartEvent_1gai4qr">
-        <dc:Bounds x="7.752742616033771" y="654.7502109704641" width="36" height="36" />
+        <dc:Bounds x="-91" y="655" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="26" y="690.7502109704641" width="0" height="0" />
+          <dc:Bounds x="-73" y="691" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ExclusiveGateway_12v8g91_di" bpmnElement="ExclusiveGateway_12v8g91" isMarkerVisible="true">
-        <dc:Bounds x="284.2253164556962" y="648.1721518987342" width="50" height="50" />
+        <dc:Bounds x="806" y="648" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="273" y="698" width="73" height="36" />
+          <dc:Bounds x="753" y="619" width="73" height="36" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ExclusiveGateway_09ajxqr_di" bpmnElement="ExclusiveGateway_09ajxqr" isMarkerVisible="true">
-        <dc:Bounds x="833.4869198312236" y="648" width="50" height="50" />
+        <dc:Bounds x="1291" y="799" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="828" y="698" width="62" height="12" />
+          <dc:Bounds x="1241" y="786" width="62" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_1seag7u_di" bpmnElement="EndEvent_1seag7u">
-        <dc:Bounds x="1101.651476793249" y="655" width="36" height="36" />
+        <dc:Bounds x="1678" y="806" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1120" y="691" width="0" height="0" />
+          <dc:Bounds x="2135" y="827" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1537b7m_di" bpmnElement="SequenceFlow_1537b7m">
-        <di:waypoint xsi:type="dc:Point" x="44" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="131" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="-55" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="-3" y="673" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="88" y="658" width="0" height="0" />
+          <dc:Bounds x="-29" y="658" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_0fckboe_di" bpmnElement="PreProcessRequest">
-        <dc:Bounds x="131" y="633" width="100" height="80" />
+        <dc:Bounds x="-3" y="633" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0bmsi5h_di" bpmnElement="SequenceFlow_0bmsi5h">
-        <di:waypoint xsi:type="dc:Point" x="231" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="257" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="257" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="284" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="97" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="124" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="124" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="150" y="673" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="272" y="673" width="0" height="0" />
+          <dc:Bounds x="139" y="673" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1ycq005_di" bpmnElement="SequenceFlow_1ycq005">
-        <di:waypoint xsi:type="dc:Point" x="469" y="509" />
-        <di:waypoint xsi:type="dc:Point" x="502" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="983" y="494" />
+        <di:waypoint xsi:type="dc:Point" x="1016" y="495" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="486" y="494.5" width="0" height="0" />
+          <dc:Bounds x="1000" y="480" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_1sc2oye_di" bpmnElement="Task_1sbxjc8">
-        <dc:Bounds x="369" y="470" width="100" height="80" />
+        <dc:Bounds x="883" y="455" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="CallActivity_1lj1iud_di" bpmnElement="Task_0ifyxgt">
-        <dc:Bounds x="502" y="470" width="100" height="80" />
+      <bpmndi:BPMNShape id="CallActivity_1lj1iud_di" bpmnElement="RollbackCreateVFModule">
+        <dc:Bounds x="1016" y="455" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1r6wyy6_di" bpmnElement="SequenceFlow_1r6wyy6">
-        <di:waypoint xsi:type="dc:Point" x="309" y="698" />
-        <di:waypoint xsi:type="dc:Point" x="309" y="755" />
-        <di:waypoint xsi:type="dc:Point" x="769" y="755" />
-        <di:waypoint xsi:type="dc:Point" x="769" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="833" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="831" y="698" />
+        <di:waypoint xsi:type="dc:Point" x="831" y="799" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="533" y="740" width="12" height="12" />
+          <dc:Bounds x="838" y="759.6519350414114" width="12" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0v85t87_di" bpmnElement="SequenceFlow_0v85t87">
-        <di:waypoint xsi:type="dc:Point" x="309" y="648" />
-        <di:waypoint xsi:type="dc:Point" x="309" y="510" />
-        <di:waypoint xsi:type="dc:Point" x="369" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="831" y="648" />
+        <di:waypoint xsi:type="dc:Point" x="831" y="495" />
+        <di:waypoint xsi:type="dc:Point" x="883" y="495" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="315" y="579" width="18" height="12" />
+          <dc:Bounds x="837" y="572.1521739130435" width="18" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1kr0r4a_di" bpmnElement="SequenceFlow_1kr0r4a">
-        <di:waypoint xsi:type="dc:Point" x="858" y="648" />
-        <di:waypoint xsi:type="dc:Point" x="858" y="589" />
-        <di:waypoint xsi:type="dc:Point" x="945" y="589" />
+        <di:waypoint xsi:type="dc:Point" x="1316" y="799" />
+        <di:waypoint xsi:type="dc:Point" x="1316" y="733" />
+        <di:waypoint xsi:type="dc:Point" x="1390" y="733" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="864" y="619" width="18" height="12" />
+          <dc:Bounds x="1322" y="765.8928772635815" width="18" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_04yd2yr_di" bpmnElement="SequenceFlow_04yd2yr">
-        <di:waypoint xsi:type="dc:Point" x="1045" y="589" />
-        <di:waypoint xsi:type="dc:Point" x="1120" y="589" />
-        <di:waypoint xsi:type="dc:Point" x="1120" y="655" />
+        <di:waypoint xsi:type="dc:Point" x="1490" y="733" />
+        <di:waypoint xsi:type="dc:Point" x="1592" y="733" />
+        <di:waypoint xsi:type="dc:Point" x="1592" y="784" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1083" y="574" width="0" height="0" />
+          <dc:Bounds x="1541" y="718" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1yas9ol_di" bpmnElement="SequenceFlow_1yas9ol">
-        <di:waypoint xsi:type="dc:Point" x="883" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="1102" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="1341" y="824" />
+        <di:waypoint xsi:type="dc:Point" x="1542" y="824" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="987" y="658" width="12" height="12" />
+          <dc:Bounds x="1503" y="807" width="12" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_01fs058_di" bpmnElement="Task_0p8fmrm">
-        <dc:Bounds x="945" y="549" width="100" height="80" />
+        <dc:Bounds x="1390" y="693" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_181hb2a_di" bpmnElement="SequenceFlow_181hb2a">
-        <di:waypoint xsi:type="dc:Point" x="602" y="510" />
-        <di:waypoint xsi:type="dc:Point" x="641" y="510" />
+        <di:waypoint xsi:type="dc:Point" x="1116" y="495" />
+        <di:waypoint xsi:type="dc:Point" x="1155" y="495" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="622" y="495" width="0" height="0" />
+          <dc:Bounds x="1136" y="480" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_196e1px_di" bpmnElement="Task_0kf9oby">
-        <dc:Bounds x="641" y="470" width="100" height="80" />
+        <dc:Bounds x="1155" y="455" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1srw52v_di" bpmnElement="SequenceFlow_1srw52v">
-        <di:waypoint xsi:type="dc:Point" x="691" y="550" />
-        <di:waypoint xsi:type="dc:Point" x="691" y="673" />
-        <di:waypoint xsi:type="dc:Point" x="334" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="1205" y="535" />
+        <di:waypoint xsi:type="dc:Point" x="1205" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="856" y="673" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="706" y="611.5" width="0" height="0" />
+          <dc:Bounds x="1220" y="604" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_12w53bf_di" bpmnElement="PreProcessSDNCDeactivateRequest">
+        <dc:Bounds x="323" y="795" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1ug98j4_di" bpmnElement="ScriptTask_1ug98j4">
+        <dc:Bounds x="617" y="795" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_1gvc90m_di" bpmnElement="SDNCAdapterTopologyDeactivate">
+        <dc:Bounds x="473" y="795" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0nysmc9_di" bpmnElement="SequenceFlow_0nysmc9">
+        <di:waypoint xsi:type="dc:Point" x="423" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="473" y="835" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="449" y="820" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1hc04x2_di" bpmnElement="SequenceFlow_1hc04x2">
+        <di:waypoint xsi:type="dc:Point" x="573" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="617" y="835" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="595" y="820" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1sr014x_di" bpmnElement="ExclusiveGateway_1sr014x" isMarkerVisible="true">
+        <dc:Bounds x="277" y="648" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="271" y="608" width="62" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0zjzorm_di" bpmnElement="SequenceFlow_0zjzorm">
+        <di:waypoint xsi:type="dc:Point" x="327" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="806" y="673" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="561" y="658" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1tgi77m_di" bpmnElement="SDNCDeactivateYes">
+        <di:waypoint xsi:type="dc:Point" x="302" y="698" />
+        <di:waypoint xsi:type="dc:Point" x="302" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="323" y="835" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="308" y="756.5" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_19xaddm_di" bpmnElement="SequenceFlow_19xaddm">
+        <di:waypoint xsi:type="dc:Point" x="717" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="781" y="835" />
+        <di:waypoint xsi:type="dc:Point" x="781" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="806" y="673" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="796" y="754" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_07kr3gt_di" bpmnElement="ExclusiveGateway_07kr3gt" isMarkerVisible="true">
+        <dc:Bounds x="806" y="799" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="841" y="858" width="62" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1g6psjt_di" bpmnElement="SequenceFlow_1g6psjt">
+        <di:waypoint xsi:type="dc:Point" x="856" y="824" />
+        <di:waypoint xsi:type="dc:Point" x="1074" y="824" />
+        <di:waypoint xsi:type="dc:Point" x="1074" y="824" />
+        <di:waypoint xsi:type="dc:Point" x="1291" y="824" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1083" y="824" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1ma7nvr_di" bpmnElement="ScriptTask_1ma7nvr">
+        <dc:Bounds x="873" y="905" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_018fqnd_di" bpmnElement="CallActivity_018fqnd">
+        <dc:Bounds x="1034" y="905" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0b3jyb7_di" bpmnElement="ScriptTask_0b3jyb7">
+        <dc:Bounds x="1195" y="905" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0a5ecvu_di" bpmnElement="SequenceFlow_0a5ecvu">
+        <di:waypoint xsi:type="dc:Point" x="973" y="945" />
+        <di:waypoint xsi:type="dc:Point" x="1034" y="945" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1004" y="930" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ilok6u_di" bpmnElement="SequenceFlow_1ilok6u">
+        <di:waypoint xsi:type="dc:Point" x="1134" y="945" />
+        <di:waypoint xsi:type="dc:Point" x="1195" y="945" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1165" y="930" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_152tazp_di" bpmnElement="SequenceFlow_152tazp">
+        <di:waypoint xsi:type="dc:Point" x="1295" y="945" />
+        <di:waypoint xsi:type="dc:Point" x="1316" y="945" />
+        <di:waypoint xsi:type="dc:Point" x="1316" y="849" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1306" y="920" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_01am36p_di" bpmnElement="SequenceFlow_01am36p">
+        <di:waypoint xsi:type="dc:Point" x="831" y="849" />
+        <di:waypoint xsi:type="dc:Point" x="831" y="945" />
+        <di:waypoint xsi:type="dc:Point" x="873" y="945" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="838" y="897" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_01o1lkn_di" bpmnElement="ExclusiveGateway_01o1lkn" isMarkerVisible="true">
+        <dc:Bounds x="150" y="648" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="136" y="614" width="68" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1rezswi_di" bpmnElement="SequenceFlow_1rezswi">
+        <di:waypoint xsi:type="dc:Point" x="200" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="239" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="239" y="673" />
+        <di:waypoint xsi:type="dc:Point" x="277" y="673" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="214" y="648" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0mk9lrj_di" bpmnElement="SequenceFlow_0mk9lrj">
+        <di:waypoint xsi:type="dc:Point" x="175" y="698" />
+        <di:waypoint xsi:type="dc:Point" x="175" y="991" />
+        <di:waypoint xsi:type="dc:Point" x="1696" y="1002" />
+        <di:waypoint xsi:type="dc:Point" x="1696" y="842" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="147" y="775" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_03cc9y6_di" bpmnElement="SequenceFlow_03cc9y6">
+        <di:waypoint xsi:type="dc:Point" x="1642" y="824" />
+        <di:waypoint xsi:type="dc:Point" x="1678" y="824" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1660" y="809" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1a3lghn_di" bpmnElement="SetSuccessfulRollbackStatus">
+        <dc:Bounds x="1542" y="784" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1wch84s_di" bpmnElement="SequenceFlow_1wch84s">
+        <di:waypoint xsi:type="dc:Point" x="261" y="1081" />
+        <di:waypoint xsi:type="dc:Point" x="361" y="1081" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="311" y="1066" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1od8f5n_di" bpmnElement="SetFailedRollbackStatus">
+        <dc:Bounds x="161" y="1041" width="100" height="80" />
+      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
+</bpmn2:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstance.bpmn
index 3c58186..6f58f62 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstance.bpmn
@@ -268,7 +268,7 @@
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_1pbgnr2" sourceRef="ScriptTask_01xjfhu" targetRef="EndEvent_3" />
     <bpmn2:sequenceFlow id="SequenceFlow_1pdp4d2" sourceRef="prepareSDNCTopoRequest_ScriptTask" targetRef="callDeleteSDNCAdapter_CallActivity" />
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_02t94x3" name="is &#39;1702&#39; SNDC Call?" default="SequenceFlow_0r3pvf8">
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_02t94x3" name="is not &#39;1610&#39; SNDC Call?" default="SequenceFlow_0r3pvf8">
       <bpmn2:incoming>SequenceFlow_20</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0r3pvf8</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_0kqnddy</bpmn2:outgoing>
@@ -298,7 +298,7 @@
     <bpmn2:sequenceFlow id="SequenceFlow_1jnva78" sourceRef="CallActivity_03wzdas" targetRef="validateSDNCResponse_ScriptTask" />
     <bpmn2:sequenceFlow id="SequenceFlow_0zlbzad" sourceRef="ScriptTask_0iqzbz6" targetRef="CallActivity_03wzdas" />
     <bpmn2:sequenceFlow id="SequenceFlow_0kqnddy" name="Yes" sourceRef="ExclusiveGateway_02t94x3" targetRef="ScriptTask_1wf192s">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:scriptTask id="ScriptTask_01w2cd9" name="PreProcess Incoming Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
@@ -699,7 +699,7 @@
       <bpmndi:BPMNShape id="ExclusiveGateway_02t94x3_di" bpmnElement="ExclusiveGateway_02t94x3" isMarkerVisible="true">
         <dc:Bounds x="1156" y="648" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="1143" y="707" width="76" height="24" />
+          <dc:Bounds x="1150" y="707" width="61" height="24" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0r3pvf8_di" bpmnElement="SequenceFlow_0r3pvf8">
@@ -930,4 +930,4 @@
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
+</bpmn2:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstanceRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstanceRollback.bpmn
index 2c5fa5a..fabcb5e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstanceRollback.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteNetworkInstanceRollback.bpmn
@@ -121,7 +121,7 @@
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="SequenceFlow_1wy1aba" name="No" sourceRef="ExclusiveGateway_1ga27si" targetRef="Task_00chyig" />
     <bpmn:sequenceFlow id="SequenceFlow_1yltkyg" name="Yes" sourceRef="ExclusiveGateway_1ga27si" targetRef="Task_1iuumxi">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="SequenceFlow_1hcmrh9" sourceRef="Task_1iuumxi" targetRef="ExclusiveGateway_0798yby" />
     <bpmn:sequenceFlow id="SequenceFlow_1pi168e" sourceRef="Task_00chyig" targetRef="ExclusiveGateway_0798yby" />
@@ -543,4 +543,4 @@
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+</bpmn:definitions>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteServiceInstance.bpmn
index 49274bd..10f688b 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteServiceInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteServiceInstance.bpmn
@@ -7,7 +7,7 @@
     <bpmn2:scriptTask id="preProcessRequest_ScriptTask" name="PreProcess Incoming Request" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0jfgn05</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1jqc16k</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def ddsi = new DoDeleteServiceInstance()
 ddsi.preProcessRequest(execution)
 ]]></bpmn2:script>
@@ -41,13 +41,13 @@
         <camunda:out source="sdncAdapterResponse" target="sdncDeactivateResponse" />
         <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
       </bpmn2:extensionElements>
-      <bpmn2:incoming>SequenceFlow_0rtflal</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_0yohjl7</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_0k28xib</bpmn2:outgoing>
     </bpmn2:callActivity>
     <bpmn2:scriptTask id="ScriptTask_1uxr0cx" name="Post Process SDNC Deactivate" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_0k28xib</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1w8ao21</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 
 String response = execution.getVariable("sdncDeactivateResponse")
 def ddsi = new DoDeleteServiceInstance()
@@ -56,12 +56,11 @@
     <bpmn2:sequenceFlow id="SequenceFlow_0jfgn05" sourceRef="deleteSI_startEven" targetRef="preProcessRequest_ScriptTask" />
     <bpmn2:scriptTask id="ScriptTask_0xxwbdq" name="PreProcess SDNC Delete" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1dwch0k</bpmn2:incoming>
-      <bpmn2:outgoing>SequenceFlow_0rtflal</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:outgoing>SequenceFlow_1ju26o1</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def ddsi = new DoDeleteServiceInstance()
 ddsi.preProcessSDNCDelete(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_0rtflal" sourceRef="ScriptTask_0xxwbdq" targetRef="CallActivity_0ak0ezb" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_0590oev" name="SI found in AAI" default="SequenceFlow_05jfuko">
       <bpmn2:incoming>SequenceFlow_1up0j5r</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1hcfvcj</bpmn2:outgoing>
@@ -101,7 +100,7 @@
     <bpmn2:scriptTask id="ScriptTask_02da0lj" name="Post Process AAI GET" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_1grea1r</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1up0j5r</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def ddsi = new DoDeleteServiceInstance()
 ddsi.postProcessAAIGET(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -110,7 +109,7 @@
     <bpmn2:scriptTask id="ScriptTask_1ybdq3e" name="Post Process AAI Delete" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_05wu9i7</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_1wyvxwi</bpmn2:outgoing>
-      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*

+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
 def ddsi = new DoDeleteServiceInstance()
 ddsi.postProcessAAIDEL(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
@@ -126,7 +125,7 @@
       <bpmn2:scriptTask id="ScriptTask_1va95un" name="Log / Print Unexpected Error" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_0u33vy6</bpmn2:incoming>
         <bpmn2:outgoing>SequenceFlow_0hevfee</bpmn2:outgoing>
-        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*

+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
 ExceptionUtil ex = new ExceptionUtil()
 ex.processJavaException(execution)]]></bpmn2:script>
       </bpmn2:scriptTask>
@@ -143,6 +142,7 @@
         <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_1w8ao21</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1swzrij</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14x55db</bpmn2:outgoing>
     </bpmn2:callActivity>
     <bpmn2:scriptTask id="ScriptTask_0lc115e" name="Post Process SDNC Delete" scriptFormat="groovy">
@@ -156,6 +156,16 @@
     </bpmn2:scriptTask>
     <bpmn2:sequenceFlow id="SequenceFlow_14x55db" sourceRef="CallActivity_1c5wru8" targetRef="ScriptTask_0lc115e" />
     <bpmn2:sequenceFlow id="SequenceFlow_0znbzxu" sourceRef="ScriptTask_0lc115e" targetRef="callGenericDeleteService" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1xbefi3" name="skipDeactivate for TRANSPORT" default="SequenceFlow_0yohjl7">
+      <bpmn2:incoming>SequenceFlow_1ju26o1</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0yohjl7</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_1swzrij</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_1ju26o1" sourceRef="ScriptTask_0xxwbdq" targetRef="ExclusiveGateway_1xbefi3" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0yohjl7" name="no" sourceRef="ExclusiveGateway_1xbefi3" targetRef="CallActivity_0ak0ezb" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1swzrij" name="yes" sourceRef="ExclusiveGateway_1xbefi3" targetRef="CallActivity_1c5wru8">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression"><![CDATA[#{ execution.getVariable("skipDeactivate" )   == true }]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
   </bpmn2:process>
   <bpmn2:error id="Error_2" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
   <bpmn2:error id="Error_1" name="java.lang.Exception" errorCode="java.lang.Exception" />
@@ -168,7 +178,7 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_61" bpmnElement="preProcessRequest_ScriptTask">
-        <dc:Bounds x="-229" y="57" width="100" height="80" />
+        <dc:Bounds x="-265" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_177" bpmnElement="EndEvent_3">
         <dc:Bounds x="1384" y="201" width="36" height="36" />
@@ -187,61 +197,52 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_0k28xib_di" bpmnElement="SequenceFlow_0k28xib">
-        <di:waypoint xsi:type="dc:Point" x="738" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="713" y="97" />
         <di:waypoint xsi:type="dc:Point" x="776" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="757" y="82" width="0" height="0" />
+          <dc:Bounds x="745" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_0ak0ezb_di" bpmnElement="CallActivity_0ak0ezb">
-        <dc:Bounds x="638" y="57" width="100" height="80" />
+        <dc:Bounds x="613" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ScriptTask_1uxr0cx_di" bpmnElement="ScriptTask_1uxr0cx">
         <dc:Bounds x="776" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0jfgn05_di" bpmnElement="SequenceFlow_0jfgn05">
         <di:waypoint xsi:type="dc:Point" x="-298" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-262" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-262" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-229" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="-265" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="-247" y="97" width="0" height="0" />
+          <dc:Bounds x="-281" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_0xxwbdq_di" bpmnElement="ScriptTask_0xxwbdq">
-        <dc:Bounds x="492" y="57" width="100" height="80" />
+        <dc:Bounds x="354" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
-      <bpmndi:BPMNEdge id="SequenceFlow_0rtflal_di" bpmnElement="SequenceFlow_0rtflal">
-        <di:waypoint xsi:type="dc:Point" x="592" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="638" y="97" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="615" y="82" width="0" height="0" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ExclusiveGateway_0590oev_di" bpmnElement="ExclusiveGateway_0590oev" isMarkerVisible="true">
-        <dc:Bounds x="305" y="72" width="50" height="50" />
+        <dc:Bounds x="150" y="72" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="293" y="51" width="73" height="13" />
+          <dc:Bounds x="138" y="51" width="74" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1hcfvcj_di" bpmnElement="SequenceFlow_1hcfvcj">
-        <di:waypoint xsi:type="dc:Point" x="355" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="403" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="200" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="236" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="384" y="99" width="18" height="12" />
+          <dc:Bounds x="222" y="99" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="EndEvent_0ronxsz_di" bpmnElement="EndEvent_0ronxsz">
-        <dc:Bounds x="312" y="186" width="36" height="36" />
+        <dc:Bounds x="157" y="221" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="330" y="227" width="0" height="0" />
+          <dc:Bounds x="175" y="262" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_05jfuko_di" bpmnElement="SequenceFlow_05jfuko">
-        <di:waypoint xsi:type="dc:Point" x="330" y="122" />
-        <di:waypoint xsi:type="dc:Point" x="330" y="186" />
+        <di:waypoint xsi:type="dc:Point" x="175" y="122" />
+        <di:waypoint xsi:type="dc:Point" x="175" y="221" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="310" y="127.1200546314796" width="13" height="13" />
+          <dc:Bounds x="156" y="137.69226916562667" width="12" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1w8ao21_di" bpmnElement="SequenceFlow_1w8ao21">
@@ -252,58 +253,53 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ExclusiveGateway_1mrh7us_di" bpmnElement="ExclusiveGateway_1mrh7us" isMarkerVisible="true">
-        <dc:Bounds x="403" y="72" width="50" height="50" />
+        <dc:Bounds x="236" y="72" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="390" y="122" width="75" height="24" />
+          <dc:Bounds x="227" y="126" width="76" height="26" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0riudmc_di" bpmnElement="SequenceFlow_0riudmc">
-        <di:waypoint xsi:type="dc:Point" x="428" y="72" />
-        <di:waypoint xsi:type="dc:Point" x="428" y="-20" />
+        <di:waypoint xsi:type="dc:Point" x="261" y="72" />
+        <di:waypoint xsi:type="dc:Point" x="261" y="-20" />
         <di:waypoint xsi:type="dc:Point" x="1252" y="-20" />
         <di:waypoint xsi:type="dc:Point" x="1252" y="57" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="834" y="-35" width="18" height="12" />
+          <dc:Bounds x="753" y="-35" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1dwch0k_di" bpmnElement="SequenceFlow_1dwch0k">
-        <di:waypoint xsi:type="dc:Point" x="453" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="492" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="286" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="310" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="353" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="464" y="73" width="12" height="12" />
+          <dc:Bounds x="308" y="101.4811676034096" width="13" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_1s8pf0x_di" bpmnElement="CallActivity_1s8pf0x">
-        <dc:Bounds x="-64" y="57" width="100" height="80" />
+        <dc:Bounds x="-121" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1jqc16k_di" bpmnElement="SequenceFlow_1jqc16k">
-        <di:waypoint xsi:type="dc:Point" x="-129" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-100" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-100" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="-64" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="-165" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="-121" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="-85" y="97" width="0" height="0" />
+          <dc:Bounds x="-143" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_02da0lj_di" bpmnElement="ScriptTask_02da0lj">
-        <dc:Bounds x="107" y="57" width="100" height="80" />
+        <dc:Bounds x="20" y="57" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1grea1r_di" bpmnElement="SequenceFlow_1grea1r">
-        <di:waypoint xsi:type="dc:Point" x="36" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="73" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="73" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="107" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="-21" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="20" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="88" y="97" width="0" height="0" />
+          <dc:Bounds x="0" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1up0j5r_di" bpmnElement="SequenceFlow_1up0j5r">
-        <di:waypoint xsi:type="dc:Point" x="207" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="256" y="97" />
-        <di:waypoint xsi:type="dc:Point" x="305" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="120" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="150" y="97" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="271" y="97" width="0" height="0" />
+          <dc:Bounds x="135" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ScriptTask_1ybdq3e_di" bpmnElement="ScriptTask_1ybdq3e">
@@ -368,6 +364,35 @@
           <dc:Bounds x="1180" y="82" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1xbefi3_di" bpmnElement="ExclusiveGateway_1xbefi3" isMarkerVisible="true">
+        <dc:Bounds x="508" y="72" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="495" y="126" width="84" height="25" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ju26o1_di" bpmnElement="SequenceFlow_1ju26o1">
+        <di:waypoint xsi:type="dc:Point" x="454" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="508" y="97" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="481" y="82" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0yohjl7_di" bpmnElement="SequenceFlow_0yohjl7">
+        <di:waypoint xsi:type="dc:Point" x="558" y="97" />
+        <di:waypoint xsi:type="dc:Point" x="613" y="97" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="580" y="72" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1swzrij_di" bpmnElement="SequenceFlow_1swzrij">
+        <di:waypoint xsi:type="dc:Point" x="533" y="72" />
+        <di:waypoint xsi:type="dc:Point" x="533" y="26" />
+        <di:waypoint xsi:type="dc:Point" x="967" y="26" />
+        <di:waypoint xsi:type="dc:Point" x="967" y="57" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="741" y="11" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleFromVnf.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleFromVnf.bpmn
new file mode 100644
index 0000000..bc42e60
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleFromVnf.bpmn
Binary files differ
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleVolumeV2.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleVolumeV2.bpmn
new file mode 100644
index 0000000..fec3f93
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVfModuleVolumeV2.bpmn
@@ -0,0 +1,208 @@
+<?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.4.0">
+  <bpmn:process id="DoDeleteVfModuleVolumeV2" name="DoDeleteVfModuleVolumeV2" isExecutable="true">
+    <bpmn:startEvent id="StartEvent_1" name="Start">
+      <bpmn:outgoing>SequenceFlow_1gvfdp4</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:scriptTask id="Task_06u1lr0" name="Call REST AAI Query Cloud Region" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1vy2ojp</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1dlcqmc</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def delVfModuleVol = new DoDeleteVfModuleVolumeV2()
+delVfModuleVol.executeMethod('callRESTQueryAAICloudRegion', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="Task_1woqfjw" name="Call REST AAI Query for Volume Group" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1dlcqmc</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1kjccf1</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def deleteVfMod = new DoDeleteVfModuleVolumeV2()
+deleteVfMod.executeMethod('callRESTQueryAAIForVolumeGroup', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:scriptTask id="Task_0yjx0p2" name="Prepare VNF Adapter Delete" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1kjccf1</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1tgngf7</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def deleteVfMod = new DoDeleteVfModuleVolumeV2()
+deleteVfMod.executeMethod('prepareVnfAdapterDeleteRequest', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:callActivity id="Task_14fsstq" name="Call REST VNF Adapter Delete" calledElement="vnfAdapterRestV1">
+      <bpmn:extensionElements>
+        <camunda:in source="DDVMV_deleteVnfARequest" target="vnfAdapterRestV1Request" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in variables="all" />
+        <camunda:out source="vnfAdapterRestV1Response" target="DDVMV_deleteVnfAResponse" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="VNFREST_SuccessIndicator" target="VNFREST_SuccessIndicator" />
+      </bpmn:extensionElements>
+      <bpmn:incoming>SequenceFlow_1tgngf7</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1x3luyj</bpmn:outgoing>
+    </bpmn:callActivity>
+    <bpmn:scriptTask id="Task_17q1roq" name="Call REST AAI Delete Volume Group" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_0cy0y9t</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_13c3cv2</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def deleteVfMod = new DoDeleteVfModuleVolumeV2()
+deleteVfMod.executeMethod('callRESTDeleteAAIVolumeGroup', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:endEvent id="EndEvent_0fw1gkf" name="Stop">
+      <bpmn:incoming>SequenceFlow_1sgtwr2</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_1dlcqmc" sourceRef="Task_06u1lr0" targetRef="Task_1woqfjw" />
+    <bpmn:sequenceFlow id="SequenceFlow_1kjccf1" sourceRef="Task_1woqfjw" targetRef="Task_0yjx0p2" />
+    <bpmn:sequenceFlow id="SequenceFlow_1tgngf7" sourceRef="Task_0yjx0p2" targetRef="Task_14fsstq" />
+    <bpmn:scriptTask id="Task_1i432ud" name="Pre Process Request" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_1gvfdp4</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1vy2ojp</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def deleteVfMod = new DoDeleteVfModuleVolumeV2()
+deleteVfMod.executeMethod('preProcessRequest', execution, isDebugLogEnabled)
+]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_1gvfdp4" sourceRef="StartEvent_1" targetRef="Task_1i432ud" />
+    <bpmn:sequenceFlow id="SequenceFlow_1vy2ojp" sourceRef="Task_1i432ud" targetRef="Task_06u1lr0" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_0o3lxtf" name="VNF Adapter REST call success?">
+      <bpmn:incoming>SequenceFlow_1x3luyj</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0cy0y9t</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1rgd8dg</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_1x3luyj" sourceRef="Task_14fsstq" targetRef="ExclusiveGateway_0o3lxtf" />
+    <bpmn:sequenceFlow id="SequenceFlow_0cy0y9t" name="Yes" sourceRef="ExclusiveGateway_0o3lxtf" targetRef="Task_17q1roq">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{VNFREST_SuccessIndicator == true}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:endEvent id="EndEvent_00cohim" name="throw MSOException">
+      <bpmn:incoming>SequenceFlow_1rgd8dg</bpmn:incoming>
+      <bpmn:errorEventDefinition errorRef="Error_0fa7ks7" />
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_1rgd8dg" sourceRef="ExclusiveGateway_0o3lxtf" targetRef="EndEvent_00cohim" />
+    <bpmn:scriptTask id="Task_018w43g" name="Post Process" scriptFormat="groovy">
+      <bpmn:incoming>SequenceFlow_13c3cv2</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_1sgtwr2</bpmn:outgoing>
+      <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def deleteVfMod = new DoDeleteVfModuleVolumeV2()
+deleteVfMod.executeMethod('postProcess', execution, isDebugLogEnabled)]]></bpmn:script>
+    </bpmn:scriptTask>
+    <bpmn:sequenceFlow id="SequenceFlow_13c3cv2" sourceRef="Task_17q1roq" targetRef="Task_018w43g" />
+    <bpmn:sequenceFlow id="SequenceFlow_1sgtwr2" sourceRef="Task_018w43g" targetRef="EndEvent_0fw1gkf" />
+  </bpmn:process>
+  <bpmn:error id="Error_0fa7ks7" name="MSOWorkflowException" errorCode="MSOWorkflowException" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoDeleteVfModuleVolumeV2">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
+        <dc:Bounds x="173" y="102" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="179" y="138" width="23" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1qojxu5_di" bpmnElement="Task_06u1lr0">
+        <dc:Bounds x="407" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_1mht6f6_di" bpmnElement="Task_1woqfjw">
+        <dc:Bounds x="564" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_02ujn8y_di" bpmnElement="Task_0yjx0p2">
+        <dc:Bounds x="713" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="CallActivity_0bf87en_di" bpmnElement="Task_14fsstq">
+        <dc:Bounds x="865" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_07kmkio_di" bpmnElement="Task_17q1roq">
+        <dc:Bounds x="1151" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="EndEvent_0fw1gkf_di" bpmnElement="EndEvent_0fw1gkf">
+        <dc:Bounds x="1463" y="102" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1470" y="138" width="22" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1dlcqmc_di" bpmnElement="SequenceFlow_1dlcqmc">
+        <di:waypoint xsi:type="dc:Point" x="507" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="564" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="536" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1kjccf1_di" bpmnElement="SequenceFlow_1kjccf1">
+        <di:waypoint xsi:type="dc:Point" x="664" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="713" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="689" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1tgngf7_di" bpmnElement="SequenceFlow_1tgngf7">
+        <di:waypoint xsi:type="dc:Point" x="813" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="865" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="839" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_0wjwf8w_di" bpmnElement="Task_1i432ud">
+        <dc:Bounds x="247" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1gvfdp4_di" bpmnElement="SequenceFlow_1gvfdp4">
+        <di:waypoint xsi:type="dc:Point" x="209" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="247" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="228" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1vy2ojp_di" bpmnElement="SequenceFlow_1vy2ojp">
+        <di:waypoint xsi:type="dc:Point" x="347" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="407" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="377" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_0o3lxtf_di" bpmnElement="ExclusiveGateway_0o3lxtf" isMarkerVisible="true">
+        <dc:Bounds x="1028" y="95" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1020" y="145" width="66" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1x3luyj_di" bpmnElement="SequenceFlow_1x3luyj">
+        <di:waypoint xsi:type="dc:Point" x="965" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="1028" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="997" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0cy0y9t_di" bpmnElement="SequenceFlow_0cy0y9t">
+        <di:waypoint xsi:type="dc:Point" x="1078" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="1151" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1106" y="95" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="EndEvent_0zln0ww_di" bpmnElement="EndEvent_00cohim">
+        <dc:Bounds x="1035" y="274" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1016" y="310" width="73" height="24" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1rgd8dg_di" bpmnElement="SequenceFlow_1rgd8dg">
+        <di:waypoint xsi:type="dc:Point" x="1053" y="145" />
+        <di:waypoint xsi:type="dc:Point" x="1053" y="274" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1068" y="199.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_1ilduoy_di" bpmnElement="Task_018w43g">
+        <dc:Bounds x="1298" y="80" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_13c3cv2_di" bpmnElement="SequenceFlow_13c3cv2">
+        <di:waypoint xsi:type="dc:Point" x="1251" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="1298" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1275" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1sgtwr2_di" bpmnElement="SequenceFlow_1sgtwr2">
+        <di:waypoint xsi:type="dc:Point" x="1398" y="120" />
+        <di:waypoint xsi:type="dc:Point" x="1463" y="120" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1431" y="95" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVnfAndModules.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVnfAndModules.bpmn
index 078e010..9850552 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVnfAndModules.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoDeleteVnfAndModules.bpmn
@@ -66,7 +66,7 @@
         <camunda:in source="DDVAM_vfModuleModelInfo" target="vfModuleModelInfo" />
         <camunda:in source="cloudConfiguration" target="cloudConfiguration" />
         <camunda:in source="DDVAM_sdncVersion" target="sdncVersion" />
-        <camunda:in source="&#34;true&#34;" target="isVidRequest" />
+        <camunda:in source="DDVAM_isVidRequest" target="isVidRequest" />
         <camunda:out source="WorkflowException" target="WorkflowException" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_1xujrk5</bpmn2:incoming>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstance.bpmn
index 45e1a49..53c419e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstance.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstance.bpmn
Binary files differ
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstanceRollback.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstanceRollback.bpmn
index 6fd0565..a8ea29b 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstanceRollback.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateNetworkInstanceRollback.bpmn
@@ -82,7 +82,7 @@
     <bpmn:sequenceFlow id="SequenceFlow_17o4w67" sourceRef="ServiceTask_0bqh5yl" targetRef="ExclusiveGateway_1n5jck8" />
     <bpmn:sequenceFlow id="SequenceFlow_101y57s" name="No" sourceRef="ExclusiveGateway_17g4q5c" targetRef="CallActivity_1xilevb" />
     <bpmn:sequenceFlow id="SequenceFlow_0mw0dgd" name="Yes" sourceRef="ExclusiveGateway_17g4q5c" targetRef="ExclusiveGateway_0b9kbop">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") == '1702'} ]]></bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("sdncVersion") != '1610'} ]]></bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:endEvent id="EndEvent_1fvr7ad">
       <bpmn:incoming>SequenceFlow_0yto4gz</bpmn:incoming>
@@ -149,7 +149,7 @@
     <bpmn:association id="Association_1gx121b" sourceRef="ScriptTask_1ggaxfu" targetRef="TextAnnotation_0vwyo82" />
   </bpmn:process>
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoCreateNetworkInstanceRollback">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoUpdateNetworkInstanceRollback">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
         <dc:Bounds x="240" y="354" width="36" height="36" />
         <bpmndi:BPMNLabel>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVfModule.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVfModule.bpmn
index 5911067..ce96a35 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVfModule.bpmn
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVfModule.bpmn
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="_Wblj8GyfEeWUWLTvug7ZOg" exporter="camunda modeler" exporterVersion="2.7.0" targetNamespace="http://camunda.org/schema/1.0/bpmn">
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_Wblj8GyfEeWUWLTvug7ZOg" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
   <bpmn2:process id="DoUpdateVfModule" name="DoUpdateVfModule" isExecutable="true">
-    <bpmn2:documentation>This flow expects its incoming request to be in the variable 'DoUpdateVfModuleRequest'.  This flow produces no output.</bpmn2:documentation>
+    <bpmn2:documentation><![CDATA[This flow expects its incoming request to be in the variable 'DoUpdateVfModuleRequest'.  This flow produces no output.]]></bpmn2:documentation>
     <bpmn2:scriptTask id="PrepareUpdateAAIVfModule_prep" name="Prepare Update AAI Vf Module (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_38</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
@@ -9,16 +9,16 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepPrepareUpdateAAIVfModule(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="PrepareUpdateAAIVfModule_prep" targetRef="ScriptTask_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_2" name="" sourceRef="PrepareUpdateAAIVfModule_prep" targetRef="ScriptTask_1" />
     <bpmn2:callActivity id="ScriptTask_1" name="Prepare Update AAI Vf Module" calledElement="PrepareUpdateAAIVfModule">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_prepareUpdateAAIVfModuleRequest" target="PrepareUpdateAAIVfModuleRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="PUAAIVfMod_outVfModule" target="DOUPVfMod_vfModule"/>
-        <camunda:out source="PUAAIVfMod_vnfName" target="DOUPVfMod_vnfNameFromAAI"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
+        <camunda:in source="DOUPVfMod_prepareUpdateAAIVfModuleRequest" target="PrepareUpdateAAIVfModuleRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="PUAAIVfMod_outVfModule" target="DOUPVfMod_vfModule" />
+        <camunda:out source="PUAAIVfMod_vnfName" target="DOUPVfMod_vnfNameFromAAI" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_15</bpmn2:outgoing>
@@ -30,7 +30,7 @@
 def duvm = new DoUpdateVfModule()
 duvm.preProcessRequest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_38" name="" sourceRef="ProcessReceivedRequest" targetRef="PrepareUpdateAAIVfModule_prep"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_38" name="" sourceRef="ProcessReceivedRequest" targetRef="PrepareUpdateAAIVfModule_prep" />
     <bpmn2:subProcess id="SubProcess_1" name="Catch Exception" triggeredByEvent="true">
       <bpmn2:scriptTask id="ScriptTask_16" name="Handle Exception" scriptFormat="groovy">
         <bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
@@ -41,24 +41,24 @@
       </bpmn2:scriptTask>
       <bpmn2:endEvent id="EndEvent_3">
         <bpmn2:incoming>SequenceFlow_35</bpmn2:incoming>
-        <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_11"/>
+        <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_11" />
       </bpmn2:endEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_35" name="" sourceRef="ScriptTask_16" targetRef="EndEvent_3"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_35" name="" sourceRef="ScriptTask_16" targetRef="EndEvent_3" />
       <bpmn2:startEvent id="StartEvent_3">
         <bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
-        <bpmn2:errorEventDefinition id="ErrorEventDefinition_2"/>
+        <bpmn2:errorEventDefinition id="ErrorEventDefinition_2" />
       </bpmn2:startEvent>
-      <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_16"/>
+      <bpmn2:sequenceFlow id="SequenceFlow_6" name="" sourceRef="StartEvent_3" targetRef="ScriptTask_16" />
     </bpmn2:subProcess>
     <bpmn2:endEvent id="EndEvent_5">
       <bpmn2:incoming>SequenceFlow_36</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_12"/>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_12" />
     </bpmn2:endEvent>
     <bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="SubProcess_1">
       <bpmn2:outgoing>SequenceFlow_36</bpmn2:outgoing>
-      <bpmn2:errorEventDefinition id="_ErrorEventDefinition_70"/>
+      <bpmn2:errorEventDefinition id="_ErrorEventDefinition_70" />
     </bpmn2:boundaryEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_36" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_5"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_36" name="" sourceRef="BoundaryEvent_1" targetRef="EndEvent_5" />
     <bpmn2:scriptTask id="ScriptTask_10" name="Update AAI Vf Module (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
       <bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>
@@ -67,19 +67,19 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepUpdateAAIVfModule(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_25" name="" sourceRef="ScriptTask_10" targetRef="ScriptTask_11"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_25" name="" sourceRef="ScriptTask_10" targetRef="ScriptTask_11" />
     <bpmn2:callActivity id="ScriptTask_11" name="UpdateAAIVfModule" calledElement="UpdateAAIVfModule">
       <bpmn2:extensionElements>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:in source="DOUPVfMod_updateAAIVfModuleRequest" target="UpdateAAIVfModuleRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="DOUPVfMod_updateAAIVfModuleRequest" target="UpdateAAIVfModuleRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_25</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_26</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_26" name="" sourceRef="ScriptTask_11" targetRef="ScriptTask_12"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_26" name="" sourceRef="ScriptTask_11" targetRef="ScriptTask_12" />
     <bpmn2:scriptTask id="ScriptTask_12" name="SDNC Topology Activate (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_26</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_27</bpmn2:outgoing>
@@ -87,16 +87,16 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepSDNCTopologyAct(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ScriptTask_12" targetRef="ScriptTask_13"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_27" name="" sourceRef="ScriptTask_12" targetRef="ScriptTask_13" />
     <bpmn2:callActivity id="ScriptTask_13" name="SDNCAdapter Topology Activate" calledElement="sdncAdapter">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_sdncActivateRequest" target="sdncAdapterWorkflowRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncActivateResponse"/>
-        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator"/>        
+        <camunda:in source="DOUPVfMod_sdncActivateRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncActivateResponse" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
@@ -108,32 +108,33 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepUpdateAAIGenericVnf(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_14" targetRef="ExclusiveGateway_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_13" name="" sourceRef="ScriptTask_14" targetRef="ExclusiveGateway_1" />
     <bpmn2:callActivity id="CallActivity_1" name="UpdateAAIGenericVnf" calledElement="UpdateAAIGenericVnf">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_updateAAIGenericVnfRequest" target="UpdateAAIGenericVnfRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
+        <camunda:in source="DOUPVfMod_updateAAIGenericVnfRequest" target="UpdateAAIGenericVnfRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_10"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="Skip Update&#xD;&#xA;Generic Vnf?" default="SequenceFlow_14">
+    <bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="CallActivity_1" targetRef="ScriptTask_10" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1" name="Skip Update
+&#10;Generic Vnf?" default="SequenceFlow_14">
       <bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_14</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_18</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_14" name="Do the update" sourceRef="ExclusiveGateway_1" targetRef="CallActivity_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_14" name="Do the update" sourceRef="ExclusiveGateway_1" targetRef="CallActivity_1" />
     <bpmn2:sequenceFlow id="SequenceFlow_18" name="Skip the update" sourceRef="ExclusiveGateway_1" targetRef="ScriptTask_10">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy">${execution.getVariable('DOUPVfMod_skipUpdateGenericVnf')} == true</bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[${execution.getVariable('DOUPVfMod_skipUpdateGenericVnf')} == true]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
     <bpmn2:startEvent id="StartEvent_1" name="Start">
       <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
     </bpmn2:startEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="ProcessReceivedRequest"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="ProcessReceivedRequest" />
     <bpmn2:scriptTask id="ScriptTask_4" name="SDNC Topology Change/Assign (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>
       <bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>
@@ -142,33 +143,33 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepSDNCTopologyChg(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="ScriptTask_4" targetRef="ScriptTask_5"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_12" name="" sourceRef="ScriptTask_4" targetRef="ScriptTask_5" />
     <bpmn2:callActivity id="ScriptTask_5" name="SDNC Adapter Topology Change/Assign" calledElement="sdncAdapter">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_sdncChangeAssignRequest" target="sdncAdapterWorkflowRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncChangeAssignResponse"/>
-        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator"/>
+        <camunda:in source="DOUPVfMod_sdncChangeAssignRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncChangeAssignResponse" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
     </bpmn2:callActivity>
     <bpmn2:callActivity id="ScriptTask_9" name="VnfAdapterRest" calledElement="vnfAdapterRestV1">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_vnfAdapterRestRequest" target="vnfAdapterRestV1Request"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="vnfAdapterRestV1Response" target="DOUPVfMod_vnfAdapterRestResponse"/>
+        <camunda:in source="DOUPVfMod_vnfAdapterRestRequest" target="vnfAdapterRestV1Request" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="vnfAdapterRestV1Response" target="DOUPVfMod_vnfAdapterRestResponse" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_21</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_24</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_24" name="" sourceRef="ScriptTask_9" targetRef="ScriptTask_14"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_24" name="" sourceRef="ScriptTask_9" targetRef="ScriptTask_14" />
     <bpmn2:scriptTask id="ScriptTask_8" name="VNF Adapter (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_21</bpmn2:outgoing>
@@ -176,7 +177,7 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepVnfAdapterRest(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ScriptTask_8" targetRef="ScriptTask_9"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_21" name="" sourceRef="ScriptTask_8" targetRef="ScriptTask_9" />
     <bpmn2:scriptTask id="ScriptTask_15" name="Validate SDNC Query Response" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_23</bpmn2:outgoing>
@@ -187,13 +188,13 @@
     </bpmn2:scriptTask>
     <bpmn2:callActivity id="ScriptTask_7" name="SDNCAdapter Topology Query" calledElement="sdncAdapter">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_sdncTopologyRequest" target="sdncAdapterWorkflowRequest"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
-        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncTopologyResponse"/>
-        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator"/>
+        <camunda:in source="DOUPVfMod_sdncTopologyRequest" target="sdncAdapterWorkflowRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="sdncAdapterResponse" target="DOUPVfMod_sdncTopologyResponse" />
+        <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_22</bpmn2:outgoing>
@@ -206,8 +207,8 @@
 def duvm = new DoUpdateVfModule()
 duvm.validateSDNCResponse(execution, response, "changeassign")]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_5" targetRef="ScriptTask_18"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_18" targetRef="ScriptTask_6"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_3" name="" sourceRef="ScriptTask_5" targetRef="ScriptTask_18" />
+    <bpmn2:sequenceFlow id="SequenceFlow_5" name="" sourceRef="ScriptTask_18" targetRef="ScriptTask_6" />
     <bpmn2:scriptTask id="ScriptTask_6" name="SDNC Topology Query (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
@@ -215,29 +216,30 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepSDNCTopologyQuery(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="ScriptTask_6" targetRef="ScriptTask_7"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_7" targetRef="ScriptTask_15"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="ScriptTask_15" targetRef="ScriptTask_8"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="ScriptTask_6" targetRef="ScriptTask_7" />
+    <bpmn2:sequenceFlow id="SequenceFlow_22" name="" sourceRef="ScriptTask_7" targetRef="ScriptTask_15" />
+    <bpmn2:sequenceFlow id="SequenceFlow_23" name="" sourceRef="ScriptTask_15" targetRef="ScriptTask_8" />
     <bpmn2:exclusiveGateway id="IsBaseVfModule" name="Is Base VF Module?" default="SequenceFlow_30">
       <bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_28</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_30</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ScriptTask_1" targetRef="IsBaseVfModule"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_15" name="" sourceRef="ScriptTask_1" targetRef="IsBaseVfModule" />
     <bpmn2:callActivity id="ScriptTask_3" name="Confirm VolumeGroup Tenant" calledElement="ConfirmVolumeGroupTenant">
       <bpmn2:extensionElements>
-        <camunda:in source="DOUPVfMod_volumeGroupId" target="volumeGroupId"/>
-        <camunda:in source="DOUPVfMod_tenantId" target="tenantId"/>
-        <camunda:in source="DOUPVfMod_aicCloudRegion" target="aicCloudRegion"/>
-        <camunda:in source="mso-request-id" target="mso-request-id"/>
-        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id"/>
-        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled"/>
-        <camunda:out source="WorkflowException" target="WorkflowException"/>
+        <camunda:in source="DOUPVfMod_volumeGroupId" target="volumeGroupId" />
+        <camunda:in source="DOUPVfMod_tenantId" target="tenantId" />
+        <camunda:in source="DOUPVfMod_cloudRegionForVolume" target="aicCloudRegion" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:out source="ConfirmVolumeGroupTenantResponse" target="DOUPVfMod_volumeGroupStackId" />
       </bpmn2:extensionElements>
       <bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_17</bpmn2:outgoing>
     </bpmn2:callActivity>
-    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_3" targetRef="ScriptTask_4"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_17" name="" sourceRef="ScriptTask_3" targetRef="ScriptTask_4" />
     <bpmn2:scriptTask id="ScriptTask_2" name="Confirm VolumeGroup Tenant (prep)" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
@@ -245,16 +247,17 @@
 def duvm = new DoUpdateVfModule()
 duvm.prepConfirmVolumeGroupTenant(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_2" targetRef="ScriptTask_3"/>
-    <bpmn2:exclusiveGateway id="ExclusiveGateway_2" name="VolumeGroupId &#xD;&#xA;present?" default="SequenceFlow_16">
+    <bpmn2:sequenceFlow id="SequenceFlow_11" name="" sourceRef="ScriptTask_2" targetRef="ScriptTask_3" />
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_2" name="VolumeGroupId 
+&#10;present?" default="SequenceFlow_16">
       <bpmn2:incoming>SequenceFlow_29</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
       <bpmn2:outgoing>SequenceFlow_16</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
     <bpmn2:sequenceFlow id="SequenceFlow_10" name="Yes" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_2">
-      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy">${execution.getVariable('DOUPVfMod_volumeGroupId').isEmpty()} == false</bpmn2:conditionExpression>
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[${execution.getVariable('DOUPVfMod_volumeGroupId').isEmpty()} == false]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
-    <bpmn2:sequenceFlow id="SequenceFlow_16" name="No" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_4"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_16" name="No" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_4" />
     <bpmn2:sequenceFlow id="SequenceFlow_28" name="yes" sourceRef="IsBaseVfModule" targetRef="ExclusiveGateway_3">
       <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("DOUPVfMod_isBaseVfModule") == "true"]]></bpmn2:conditionExpression>
     </bpmn2:sequenceFlow>
@@ -265,15 +268,15 @@
 def doUpdateVfModule = new DoUpdateVfModule()
 doUpdateVfModule.queryAAIVfModule(execution)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_30" name="no" sourceRef="IsBaseVfModule" targetRef="QueryAAIVfModule"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_34" name="" sourceRef="QueryAAIVfModule" targetRef="ExclusiveGateway_3"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_30" name="no" sourceRef="IsBaseVfModule" targetRef="QueryAAIVfModule" />
+    <bpmn2:sequenceFlow id="SequenceFlow_34" name="" sourceRef="QueryAAIVfModule" targetRef="ExclusiveGateway_3" />
     <bpmn2:exclusiveGateway id="ExclusiveGateway_3">
       <bpmn2:incoming>SequenceFlow_28</bpmn2:incoming>
       <bpmn2:incoming>SequenceFlow_34</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_29</bpmn2:outgoing>
     </bpmn2:exclusiveGateway>
-    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="ExclusiveGateway_3" targetRef="ExclusiveGateway_2"/>
-    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_13" targetRef="ScriptTask_19"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_29" name="" sourceRef="ExclusiveGateway_3" targetRef="ExclusiveGateway_2" />
+    <bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="ScriptTask_13" targetRef="ScriptTask_19" />
     <bpmn2:scriptTask id="ScriptTask_19" name="PostProcess SDNC Adapter Activate" scriptFormat="groovy">
       <bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
       <bpmn2:outgoing>SequenceFlow_20</bpmn2:outgoing>
@@ -288,381 +291,381 @@
       <bpmn2:script><![CDATA[// This variable is checked by the unit test
 execution.setVariable('DoUpdateVfModuleSuccessIndicator', true)]]></bpmn2:script>
     </bpmn2:scriptTask>
-    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_17" targetRef="EndEvent_1"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_17" targetRef="EndEvent_1" />
     <bpmn2:endEvent id="EndEvent_1" name="TheEnd">
       <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
-      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_10"/>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_10" />
     </bpmn2:endEvent>
-    <bpmn2:sequenceFlow id="SequenceFlow_20" name="" sourceRef="ScriptTask_19" targetRef="ScriptTask_17"/>
+    <bpmn2:sequenceFlow id="SequenceFlow_20" name="" sourceRef="ScriptTask_19" targetRef="ScriptTask_17" />
   </bpmn2:process>
-  <bpmn2:error id="Error_1" errorCode="MSOWorkflowException" name="MSO Workflow Exception"/>
+  <bpmn2:error id="Error_1" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoUpdateVfModule">
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_37" bpmnElement="StartEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="150.0" y="214.0"/>
+        <dc:Bounds x="150" y="214" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="34.0" x="151.0" y="255.0"/>
+          <dc:Bounds x="151" y="255" width="34" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_22" bpmnElement="ProcessReceivedRequest">
-        <dc:Bounds height="80.0" width="100.0" x="300.0" y="192.0"/>
+        <dc:Bounds x="300" y="192" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_37" targetElement="_BPMNShape_ScriptTask_22">
-        <di:waypoint xsi:type="dc:Point" x="186.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="300.0" y="232.0"/>
+        <di:waypoint xsi:type="dc:Point" x="186" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="300" y="232" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="208.0" y="232.0"/>
+          <dc:Bounds x="208" y="232" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_160" bpmnElement="PrepareUpdateAAIVfModule_prep">
-        <dc:Bounds height="80.0" width="100.0" x="456.0" y="192.0"/>
+        <dc:Bounds x="456" y="192" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_38" bpmnElement="SequenceFlow_38" sourceElement="_BPMNShape_ScriptTask_22" targetElement="_BPMNShape_ScriptTask_160">
-        <di:waypoint xsi:type="dc:Point" x="400.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="456.0" y="232.0"/>
+        <di:waypoint xsi:type="dc:Point" x="400" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="456" y="232" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="492.0" y="232.0"/>
+          <dc:Bounds x="492" y="232" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_164" bpmnElement="ScriptTask_1">
-        <dc:Bounds height="80.0" width="100.0" x="624.0" y="192.0"/>
+        <dc:Bounds x="624" y="192" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_ScriptTask_160" targetElement="_BPMNShape_ScriptTask_164">
-        <di:waypoint xsi:type="dc:Point" x="556.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="624.0" y="232.0"/>
+        <di:waypoint xsi:type="dc:Point" x="556" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="624" y="232" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="575.0" y="232.0"/>
+          <dc:Bounds x="575" y="232" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_88" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="1039.0" y="206.0"/>
+        <dc:Bounds x="1039" y="206" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="38.0" width="109.0" x="1011.0" y="172.0"/>
+          <dc:Bounds x="1011" y="172" width="109" height="38" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_165" bpmnElement="ScriptTask_2">
-        <dc:Bounds height="80.0" width="100.0" x="1152.0" y="192.0"/>
+        <dc:Bounds x="1152" y="192" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="_BPMNShape_ExclusiveGateway_88" targetElement="_BPMNShape_ScriptTask_165">
-        <di:waypoint xsi:type="dc:Point" x="1089.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1118.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1152.0" y="232.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1089" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="1118" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="1118" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="1152" y="232" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="29.0" x="1099.0" y="231.0"/>
+          <dc:Bounds x="1099" y="231" width="29" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_166" bpmnElement="ScriptTask_3">
-        <dc:Bounds height="80.0" width="100.0" x="1308.0" y="192.0"/>
+        <dc:Bounds x="1308" y="192" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_ScriptTask_165" targetElement="_BPMNShape_ScriptTask_166">
-        <di:waypoint xsi:type="dc:Point" x="1252.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1308.0" y="232.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1252" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="1308" y="232" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1271.0" y="232.0"/>
+          <dc:Bounds x="1271" y="232" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_167" bpmnElement="ScriptTask_4">
-        <dc:Bounds height="80.0" width="100.0" x="72.0" y="420.0"/>
+        <dc:Bounds x="72" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_168" bpmnElement="ScriptTask_5">
-        <dc:Bounds height="80.0" width="100.0" x="239.0" y="420.0"/>
+        <dc:Bounds x="239" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_169" bpmnElement="ScriptTask_6">
-        <dc:Bounds height="80.0" width="100.0" x="535.0" y="420.0"/>
+        <dc:Bounds x="535" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_ScriptTask_167" targetElement="_BPMNShape_ScriptTask_168">
-        <di:waypoint xsi:type="dc:Point" x="172.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="239.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="172" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="239" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="197.0" y="460.0"/>
+          <dc:Bounds x="197" y="460" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_16" sourceElement="_BPMNShape_ExclusiveGateway_88" targetElement="_BPMNShape_ScriptTask_167">
-        <di:waypoint xsi:type="dc:Point" x="1064.0" y="256.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1064.0" y="351.0"/>
-        <di:waypoint xsi:type="dc:Point" x="122.0" y="351.0"/>
-        <di:waypoint xsi:type="dc:Point" x="122.0" y="420.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1064" y="256" />
+        <di:waypoint xsi:type="dc:Point" x="1064" y="351" />
+        <di:waypoint xsi:type="dc:Point" x="122" y="351" />
+        <di:waypoint xsi:type="dc:Point" x="122" y="420" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="22.0" x="1073.0" y="271.0"/>
+          <dc:Bounds x="1073" y="271" width="22" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="_BPMNShape_ScriptTask_166" targetElement="_BPMNShape_ScriptTask_167">
-        <di:waypoint xsi:type="dc:Point" x="1358.0" y="272.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1358.0" y="352.0"/>
-        <di:waypoint xsi:type="dc:Point" x="639.0" y="352.0"/>
-        <di:waypoint xsi:type="dc:Point" x="122.0" y="352.0"/>
-        <di:waypoint xsi:type="dc:Point" x="122.0" y="420.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1358" y="272" />
+        <di:waypoint xsi:type="dc:Point" x="1358" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="639" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="122" y="352" />
+        <di:waypoint xsi:type="dc:Point" x="122" y="420" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="927.0" y="352.0"/>
+          <dc:Bounds x="927" y="352" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_170" bpmnElement="ScriptTask_7">
-        <dc:Bounds height="80.0" width="100.0" x="684.0" y="420.0"/>
+        <dc:Bounds x="684" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_ScriptTask_169" targetElement="_BPMNShape_ScriptTask_170">
-        <di:waypoint xsi:type="dc:Point" x="635.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="684.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="635" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="684" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="648.0" y="460.0"/>
+          <dc:Bounds x="648" y="460" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_171" bpmnElement="ScriptTask_8">
-        <dc:Bounds height="80.0" width="100.0" x="996.0" y="420.0"/>
+        <dc:Bounds x="996" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_172" bpmnElement="ScriptTask_9">
-        <dc:Bounds height="80.0" width="100.0" x="1176.0" y="420.0"/>
+        <dc:Bounds x="1176" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_21" sourceElement="_BPMNShape_ScriptTask_171" targetElement="_BPMNShape_ScriptTask_172">
-        <di:waypoint xsi:type="dc:Point" x="1096.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1176.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1096" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="1176" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1133.0" y="460.0"/>
+          <dc:Bounds x="1133" y="460" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_173" bpmnElement="ScriptTask_10">
-        <dc:Bounds height="80.0" width="100.0" x="466.0" y="636.0"/>
+        <dc:Bounds x="466" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_174" bpmnElement="ScriptTask_11">
-        <dc:Bounds height="80.0" width="100.0" x="624.0" y="636.0"/>
+        <dc:Bounds x="624" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_24" sourceElement="_BPMNShape_ScriptTask_172" targetElement="_BPMNShape_ScriptTask_219">
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="500.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="576.0"/>
-        <di:waypoint xsi:type="dc:Point" x="194.0" y="576.0"/>
-        <di:waypoint xsi:type="dc:Point" x="194.0" y="636.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1226" y="500" />
+        <di:waypoint xsi:type="dc:Point" x="1226" y="576" />
+        <di:waypoint xsi:type="dc:Point" x="194" y="576" />
+        <di:waypoint xsi:type="dc:Point" x="194" y="636" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="821.0" y="576.0"/>
+          <dc:Bounds x="821" y="576" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_25" bpmnElement="SequenceFlow_25" sourceElement="_BPMNShape_ScriptTask_173" targetElement="_BPMNShape_ScriptTask_174">
-        <di:waypoint xsi:type="dc:Point" x="566.0" y="676.0"/>
-        <di:waypoint xsi:type="dc:Point" x="624.0" y="676.0"/>
+        <di:waypoint xsi:type="dc:Point" x="566" y="676" />
+        <di:waypoint xsi:type="dc:Point" x="624" y="676" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="591.0" y="676.0"/>
+          <dc:Bounds x="591" y="676" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_175" bpmnElement="ScriptTask_12">
-        <dc:Bounds height="80.0" width="100.0" x="804.0" y="636.0"/>
+        <dc:Bounds x="804" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_176" bpmnElement="ScriptTask_13">
-        <dc:Bounds height="80.0" width="100.0" x="984.0" y="636.0"/>
+        <dc:Bounds x="984" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_26" bpmnElement="SequenceFlow_26" sourceElement="_BPMNShape_ScriptTask_174" targetElement="_BPMNShape_ScriptTask_175">
-        <di:waypoint xsi:type="dc:Point" x="724.0" y="676.0"/>
-        <di:waypoint xsi:type="dc:Point" x="804.0" y="676.0"/>
+        <di:waypoint xsi:type="dc:Point" x="724" y="676" />
+        <di:waypoint xsi:type="dc:Point" x="804" y="676" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="695.0" y="674.0"/>
+          <dc:Bounds x="695" y="674" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_27" bpmnElement="SequenceFlow_27" sourceElement="_BPMNShape_ScriptTask_175" targetElement="_BPMNShape_ScriptTask_176">
-        <di:waypoint xsi:type="dc:Point" x="904.0" y="676.0"/>
-        <di:waypoint xsi:type="dc:Point" x="984.0" y="676.0"/>
+        <di:waypoint xsi:type="dc:Point" x="904" y="676" />
+        <di:waypoint xsi:type="dc:Point" x="984" y="676" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="902.0" y="676.0"/>
+          <dc:Bounds x="902" y="676" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_162" bpmnElement="EndEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="1208.0" y="906.0"/>
+        <dc:Bounds x="1208" y="906" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="50.0" x="1201.0" y="947.0"/>
+          <dc:Bounds x="1201" y="947" width="50" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_SubProcess_21" bpmnElement="SubProcess_1" isExpanded="true">
-        <dc:Bounds height="198.0" width="475.0" x="239.0" y="924.0"/>
+        <dc:Bounds x="239" y="924" width="475" height="198" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_179" bpmnElement="ScriptTask_16">
-        <dc:Bounds height="80.0" width="100.0" x="399.0" y="984.0"/>
+        <dc:Bounds x="399" y="984" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_163" bpmnElement="EndEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="617.0" y="1006.0"/>
+        <dc:Bounds x="617" y="1006" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="635.0" y="1047.0"/>
+          <dc:Bounds x="635" y="1047" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_35" bpmnElement="SequenceFlow_35" sourceElement="_BPMNShape_ScriptTask_179" targetElement="_BPMNShape_EndEvent_163">
-        <di:waypoint xsi:type="dc:Point" x="499.0" y="1024.0"/>
-        <di:waypoint xsi:type="dc:Point" x="617.0" y="1024.0"/>
+        <di:waypoint xsi:type="dc:Point" x="499" y="1024" />
+        <di:waypoint xsi:type="dc:Point" x="617" y="1024" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="555.0" y="1024.0"/>
+          <dc:Bounds x="555" y="1024" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_46" bpmnElement="BoundaryEvent_1">
-        <dc:Bounds height="36.0" width="36.0" x="696.0" y="1005.0"/>
+        <dc:Bounds x="696" y="1005" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="711.0" y="1046.0"/>
+          <dc:Bounds x="711" y="1046" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_EndEvent_164" bpmnElement="EndEvent_5">
-        <dc:Bounds height="36.0" width="36.0" x="814.0" y="1005.0"/>
+        <dc:Bounds x="814" y="1005" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="832.0" y="1046.0"/>
+          <dc:Bounds x="832" y="1046" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_36" bpmnElement="SequenceFlow_36" sourceElement="_BPMNShape_BoundaryEvent_46" targetElement="_BPMNShape_EndEvent_164">
-        <di:waypoint xsi:type="dc:Point" x="732.0" y="1023.0"/>
-        <di:waypoint xsi:type="dc:Point" x="814.0" y="1023.0"/>
+        <di:waypoint xsi:type="dc:Point" x="732" y="1023" />
+        <di:waypoint xsi:type="dc:Point" x="814" y="1023" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="770.0" y="1023.0"/>
+          <dc:Bounds x="770" y="1023" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_StartEvent_56" bpmnElement="StartEvent_3">
-        <dc:Bounds height="36.0" width="36.0" x="305.0" y="1006.0"/>
+        <dc:Bounds x="305" y="1006" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="323.0" y="1047.0"/>
+          <dc:Bounds x="323" y="1047" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="_BPMNShape_StartEvent_56" targetElement="_BPMNShape_ScriptTask_179">
-        <di:waypoint xsi:type="dc:Point" x="341.0" y="1024.0"/>
-        <di:waypoint xsi:type="dc:Point" x="399.0" y="1024.0"/>
+        <di:waypoint xsi:type="dc:Point" x="341" y="1024" />
+        <di:waypoint xsi:type="dc:Point" x="399" y="1024" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="302.0" y="1084.0"/>
+          <dc:Bounds x="302" y="1084" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_180" bpmnElement="ScriptTask_17">
-        <dc:Bounds height="80.0" width="100.0" x="1176.0" y="768.0"/>
+        <dc:Bounds x="1176" y="768" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_4" sourceElement="_BPMNShape_ScriptTask_180" targetElement="_BPMNShape_EndEvent_162">
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="848.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="906.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1226" y="848" />
+        <di:waypoint xsi:type="dc:Point" x="1226" y="906" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1223.0" y="868.0"/>
+          <dc:Bounds x="1223" y="868" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_219" bpmnElement="ScriptTask_14">
-        <dc:Bounds height="80.0" width="100.0" x="144.0" y="636.0"/>
+        <dc:Bounds x="144" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_CallActivity_2" bpmnElement="CallActivity_1">
-        <dc:Bounds height="80.0" width="100.0" x="300.0" y="636.0"/>
+        <dc:Bounds x="300" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_CallActivity_2" targetElement="_BPMNShape_ScriptTask_173">
-        <di:waypoint xsi:type="dc:Point" x="400.0" y="676.0"/>
-        <di:waypoint xsi:type="dc:Point" x="466.0" y="676.0"/>
+        <di:waypoint xsi:type="dc:Point" x="400" y="676" />
+        <di:waypoint xsi:type="dc:Point" x="466" y="676" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="431.0" y="676.0"/>
+          <dc:Bounds x="431" y="676" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="_BPMNShape_ScriptTask_219" targetElement="_BPMNShape_ExclusiveGateway_213">
-        <di:waypoint xsi:type="dc:Point" x="194.0" y="716.0"/>
-        <di:waypoint xsi:type="dc:Point" x="195.0" y="793.0"/>
-        <di:waypoint xsi:type="dc:Point" x="284.0" y="793.0"/>
-        <di:waypoint xsi:type="dc:Point" x="324.0" y="793.0"/>
+        <di:waypoint xsi:type="dc:Point" x="194" y="716" />
+        <di:waypoint xsi:type="dc:Point" x="195" y="793" />
+        <di:waypoint xsi:type="dc:Point" x="284" y="793" />
+        <di:waypoint xsi:type="dc:Point" x="324" y="793" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="191.0" y="746.0"/>
+          <dc:Bounds x="191" y="746" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_213" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="324.0" y="768.0"/>
+        <dc:Bounds x="324" y="768" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="349.0" y="823.0"/>
+          <dc:Bounds x="349" y="823" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="_BPMNShape_ExclusiveGateway_213" targetElement="_BPMNShape_CallActivity_2">
-        <di:waypoint xsi:type="dc:Point" x="349.0" y="768.0"/>
-        <di:waypoint xsi:type="dc:Point" x="350.0" y="716.0"/>
+        <di:waypoint xsi:type="dc:Point" x="349" y="768" />
+        <di:waypoint xsi:type="dc:Point" x="350" y="716" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="80.0" x="357.0" y="733.0"/>
+          <dc:Bounds x="357" y="733" width="80" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_18" sourceElement="_BPMNShape_ExclusiveGateway_213" targetElement="_BPMNShape_ScriptTask_173">
-        <di:waypoint xsi:type="dc:Point" x="374.0" y="793.0"/>
-        <di:waypoint xsi:type="dc:Point" x="515.0" y="793.0"/>
-        <di:waypoint xsi:type="dc:Point" x="516.0" y="716.0"/>
+        <di:waypoint xsi:type="dc:Point" x="374" y="793" />
+        <di:waypoint xsi:type="dc:Point" x="515" y="793" />
+        <di:waypoint xsi:type="dc:Point" x="516" y="716" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="97.0" x="380.0" y="768.0"/>
+          <dc:Bounds x="380" y="768" width="97" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_220" bpmnElement="ScriptTask_15">
-        <dc:Bounds height="80.0" width="100.0" x="840.0" y="420.0"/>
+        <dc:Bounds x="840" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_221" bpmnElement="ScriptTask_18">
-        <dc:Bounds height="80.0" width="100.0" x="384.0" y="420.0"/>
+        <dc:Bounds x="384" y="420" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_3" sourceElement="_BPMNShape_ScriptTask_168" targetElement="_BPMNShape_ScriptTask_221">
-        <di:waypoint xsi:type="dc:Point" x="339.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="384.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="339" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="384" y="460" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="_BPMNShape_ScriptTask_221" targetElement="_BPMNShape_ScriptTask_169">
-        <di:waypoint xsi:type="dc:Point" x="484.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="535.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="484" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="535" y="460" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="511.0" y="460.0"/>
+          <dc:Bounds x="511" y="460" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_ScriptTask_170" targetElement="_BPMNShape_ScriptTask_220">
-        <di:waypoint xsi:type="dc:Point" x="784.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="840.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="784" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="840" y="460" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_24" bpmnElement="SequenceFlow_23" sourceElement="_BPMNShape_ScriptTask_220" targetElement="_BPMNShape_ScriptTask_171">
-        <di:waypoint xsi:type="dc:Point" x="940.0" y="460.0"/>
-        <di:waypoint xsi:type="dc:Point" x="996.0" y="460.0"/>
+        <di:waypoint xsi:type="dc:Point" x="940" y="460" />
+        <di:waypoint xsi:type="dc:Point" x="996" y="460" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_214" bpmnElement="ExclusiveGateway_3" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="965.0" y="206.0"/>
+        <dc:Bounds x="965" y="206" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="990.0" y="261.0"/>
+          <dc:Bounds x="990" y="261" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ExclusiveGateway_215" bpmnElement="IsBaseVfModule" isMarkerVisible="true">
-        <dc:Bounds height="50.0" width="50.0" x="770.0" y="206.0"/>
+        <dc:Bounds x="770" y="206" width="50" height="50" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="0.0" width="0.0" x="795.0" y="261.0"/>
+          <dc:Bounds x="795" y="261" width="0" height="0" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_285" bpmnElement="QueryAAIVfModule">
-        <dc:Bounds height="80.0" width="100.0" x="849.0" y="72.0"/>
+        <dc:Bounds x="849" y="72" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="_BPMNShape_ScriptTask_164" targetElement="_BPMNShape_ExclusiveGateway_215">
-        <di:waypoint xsi:type="dc:Point" x="724.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="747.0" y="232.0"/>
-        <di:waypoint xsi:type="dc:Point" x="747.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="770.0" y="231.0"/>
+        <di:waypoint xsi:type="dc:Point" x="724" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="747" y="232" />
+        <di:waypoint xsi:type="dc:Point" x="747" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="770" y="231" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_28" bpmnElement="SequenceFlow_28" sourceElement="_BPMNShape_ExclusiveGateway_215" targetElement="_BPMNShape_ExclusiveGateway_214">
-        <di:waypoint xsi:type="dc:Point" x="820.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="965.0" y="231.0"/>
+        <di:waypoint xsi:type="dc:Point" x="820" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="965" y="231" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="888.0" y="231.0"/>
+          <dc:Bounds x="888" y="231" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_29" bpmnElement="SequenceFlow_29" sourceElement="_BPMNShape_ExclusiveGateway_214" targetElement="_BPMNShape_ExclusiveGateway_88">
-        <di:waypoint xsi:type="dc:Point" x="1015.0" y="231.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1039.0" y="231.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1015" y="231" />
+        <di:waypoint xsi:type="dc:Point" x="1039" y="231" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1015.0" y="231.0"/>
+          <dc:Bounds x="1015" y="231" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_30" bpmnElement="SequenceFlow_30" sourceElement="_BPMNShape_ExclusiveGateway_215" targetElement="_BPMNShape_ScriptTask_285">
-        <di:waypoint xsi:type="dc:Point" x="795.0" y="206.0"/>
-        <di:waypoint xsi:type="dc:Point" x="795.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="849.0" y="112.0"/>
+        <di:waypoint xsi:type="dc:Point" x="795" y="206" />
+        <di:waypoint xsi:type="dc:Point" x="795" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="849" y="112" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="22.0" width="20.0" x="770.0" y="151.0"/>
+          <dc:Bounds x="770" y="151" width="20" height="22" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_34" bpmnElement="SequenceFlow_34" sourceElement="_BPMNShape_ScriptTask_285" targetElement="_BPMNShape_ExclusiveGateway_214">
-        <di:waypoint xsi:type="dc:Point" x="949.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="966.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="990.0" y="112.0"/>
-        <di:waypoint xsi:type="dc:Point" x="990.0" y="206.0"/>
+        <di:waypoint xsi:type="dc:Point" x="949" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="966" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="990" y="112" />
+        <di:waypoint xsi:type="dc:Point" x="990" y="206" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="987.0" y="136.0"/>
+          <dc:Bounds x="987" y="136" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_286" bpmnElement="ScriptTask_19">
-        <dc:Bounds height="80.0" width="100.0" x="1176.0" y="636.0"/>
+        <dc:Bounds x="1176" y="636" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ScriptTask_176" targetElement="_BPMNShape_ScriptTask_286">
-        <di:waypoint xsi:type="dc:Point" x="1084.0" y="676.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1176.0" y="676.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1084" y="676" />
+        <di:waypoint xsi:type="dc:Point" x="1176" y="676" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds height="6.0" width="6.0" x="1121.0" y="676.0"/>
+          <dc:Bounds x="1121" y="676" width="6" height="6" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_20" sourceElement="_BPMNShape_ScriptTask_286" targetElement="_BPMNShape_ScriptTask_180">
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="716.0"/>
-        <di:waypoint xsi:type="dc:Point" x="1226.0" y="768.0"/>
+        <di:waypoint xsi:type="dc:Point" x="1226" y="716" />
+        <di:waypoint xsi:type="dc:Point" x="1226" y="768" />
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn2:definitions>
\ No newline at end of file
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVnfAndModules.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVnfAndModules.bpmn
new file mode 100644
index 0000000..c110580
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoUpdateVnfAndModules.bpmn
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_9MhrcHqVEea26OhQB97uCQ" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="Camunda Modeler" exporterVersion="1.4.0" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
+  <bpmn2:process id="DoUpdateVnfAndModules" name="DoUpdateVnfAndModules" isExecutable="true">
+    <bpmn2:startEvent id="StartEvent_1">
+      <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
+    </bpmn2:startEvent>
+    <bpmn2:sequenceFlow id="SequenceFlow_1" name="" sourceRef="StartEvent_1" targetRef="intialization" />
+    <bpmn2:scriptTask id="intialization" name="Intialization" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_08nd69s</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+DoUpdateVnfAndModules updateVnfAndModules = new DoUpdateVnfAndModules()
+updateVnfAndModules.preProcessRequest(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:subProcess id="javaErrorHandlingSubProcess" name="Java Exception Handling Sub Process" triggeredByEvent="true">
+      <bpmn2:endEvent id="EndEvent_4">
+        <bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>
+      </bpmn2:endEvent>
+      <bpmn2:startEvent id="StartEvent_3">
+        <bpmn2:outgoing>SequenceFlow_18</bpmn2:outgoing>
+        <bpmn2:errorEventDefinition id="_ErrorEventDefinition_95" errorRef="Error_2" />
+      </bpmn2:startEvent>
+      <bpmn2:sequenceFlow id="SequenceFlow_18" name="" sourceRef="StartEvent_3" targetRef="processJavaException" />
+      <bpmn2:scriptTask id="processJavaException" name="Process Error" scriptFormat="groovy">
+        <bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>
+        <bpmn2:outgoing>SequenceFlow_19</bpmn2:outgoing>
+        <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
+ExceptionUtil exceptionUtil = new ExceptionUtil()
+exceptionUtil.processJavaException(execution)]]></bpmn2:script>
+      </bpmn2:scriptTask>
+      <bpmn2:sequenceFlow id="SequenceFlow_19" name="" sourceRef="processJavaException" targetRef="EndEvent_4" />
+    </bpmn2:subProcess>
+    <bpmn2:endEvent id="EndEvent_2">
+      <bpmn2:incoming>SequenceFlow_0of4kmm</bpmn2:incoming>
+      <bpmn2:terminateEventDefinition id="_TerminateEventDefinition_36" />
+    </bpmn2:endEvent>
+    <bpmn2:exclusiveGateway id="ExclusiveGateway_1amun4k" name="Are there VF modules to update?" default="SequenceFlow_19c7hcw">
+      <bpmn2:incoming>SequenceFlow_0t4yszi</bpmn2:incoming>
+      <bpmn2:incoming>SequenceFlow_1f4mbkc</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1qrkdn3</bpmn2:outgoing>
+      <bpmn2:outgoing>SequenceFlow_19c7hcw</bpmn2:outgoing>
+    </bpmn2:exclusiveGateway>
+    <bpmn2:sequenceFlow id="SequenceFlow_08nd69s" sourceRef="intialization" targetRef="QueryVnf" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1qrkdn3" name="yes" sourceRef="ExclusiveGateway_1amun4k" targetRef="PrepareModuleList">
+      <bpmn2:conditionExpression xsi:type="bpmn2:tFormalExpression" language="groovy"><![CDATA[execution.getVariable("DUVAM_nextModule") < execution.getVariable("DUVAM_moduleCount")]]></bpmn2:conditionExpression>
+    </bpmn2:sequenceFlow>
+    <bpmn2:callActivity id="UpdateVFModule" name="Do Update VF Module" calledElement="DoUpdateVfModule">
+      <bpmn2:extensionElements>
+        <camunda:in source="msoRequestId" target="msoRequestId" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+        <camunda:in source="isVidRequest" target="isVidRequest" />
+        <camunda:in source="vnfType" target="vnfType" />
+        <camunda:in source="vnfName" target="vnfName" />
+        <camunda:in source="vnfId" target="vnfId" />
+        <camunda:in source="DUVAM_vfModuleName" target="vfModuleName" />
+        <camunda:in source="DUVAM_vfModuleId" target="vfModuleId" />
+        <camunda:in source="DUVAM_volumeGroupId" target="volumeGroupId" />
+        <camunda:in source="DUVAM_volumeGroupName" target="volumeGroupName" />
+        <camunda:in source="DUVAM_isBaseVfModule" target="isBaseVfModule" />
+        <camunda:in source="asdcServiceModelVersion" target="asdcServiceModelVersion" />
+        <camunda:in source="serviceInstanceId" target="serviceInstanceId" />
+        <camunda:in source="serviceModelInfo" target="serviceModelInfo" />
+        <camunda:in source="vnfModelInfo" target="vnfModelInfo" />
+        <camunda:in source="globalSubscriberId" target="globalSubscriberId" />
+        <camunda:in source="lcpCloudRegionId" target="lcpCloudRegionId" />
+        <camunda:in source="tenantId" target="tenantId" />
+        <camunda:in source="sdncVersion" target="sdncVersion" />
+        <camunda:in source="DUVAM_vfModuleModelInfo" target="vfModuleModelInfo" />
+        <camunda:in source="usePreload" target="usePreload" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_04o61yk</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1p4ycii</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:sequenceFlow id="SequenceFlow_1p4ycii" sourceRef="UpdateVFModule" targetRef="PostProcessUpdateVfModule" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0t4yszi" sourceRef="PostProcessUpdateVfModule" targetRef="ExclusiveGateway_1amun4k" />
+    <bpmn2:scriptTask id="QueryVnf" name="Query VNF" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_08nd69s</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1f4mbkc</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def duvam = new DoUpdateVnfAndModules()
+duvam.queryAAIVfModule(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="PrepareModuleList" name="Prepare Next Module To Update" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1qrkdn3</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_04o61yk</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def duvam = new DoUpdateVnfAndModules()
+duvam.prepareNextModuleToUpdate(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:scriptTask id="PostProcessUpdateVfModule" name="PostProcess Update VF Module" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_1p4ycii</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0t4yszi</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+int nextModule = execution.getVariable("DUVAM_nextModule")
+			execution.setVariable("DUVAM_nextModule", nextModule + 1)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_04o61yk" sourceRef="PrepareModuleList" targetRef="UpdateVFModule" />
+    <bpmn2:sequenceFlow id="SequenceFlow_19c7hcw" name="no" sourceRef="ExclusiveGateway_1amun4k" targetRef="PreProcessUpdateAAIGenericVNF" />
+    <bpmn2:sequenceFlow id="SequenceFlow_0of4kmm" sourceRef="UpdateAAIGenericVNFTask" targetRef="EndEvent_2" />
+    <bpmn2:sequenceFlow id="SequenceFlow_1ltycz6" sourceRef="PreProcessUpdateAAIGenericVNF" targetRef="UpdateAAIGenericVNFTask" />
+    <bpmn2:callActivity id="UpdateAAIGenericVNFTask" name="Update AAI Generic VNF" calledElement="UpdateAAIGenericVnf">
+      <bpmn2:extensionElements>
+        <camunda:in source="DUVAM_updateAAIGenericVnfRequest" target="UpdateAAIGenericVnfRequest" />
+        <camunda:in source="mso-request-id" target="mso-request-id" />
+        <camunda:in source="mso-service-id" target="mso-service-id" />
+        <camunda:in source="isDebugLogEnabled" target="isDebugLogEnabled" />
+        <camunda:out source="WorkflowException" target="WorkflowException" />
+      </bpmn2:extensionElements>
+      <bpmn2:incoming>SequenceFlow_1ltycz6</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_0of4kmm</bpmn2:outgoing>
+    </bpmn2:callActivity>
+    <bpmn2:scriptTask id="PreProcessUpdateAAIGenericVNF" name="PreProcess Update AAI Generic VNF" scriptFormat="groovy">
+      <bpmn2:incoming>SequenceFlow_19c7hcw</bpmn2:incoming>
+      <bpmn2:outgoing>SequenceFlow_1ltycz6</bpmn2:outgoing>
+      <bpmn2:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def duvam = new DoUpdateVnfAndModules()
+duvam.prepUpdateAAIGenericVnf(execution)]]></bpmn2:script>
+    </bpmn2:scriptTask>
+    <bpmn2:sequenceFlow id="SequenceFlow_1f4mbkc" sourceRef="QueryVnf" targetRef="ExclusiveGateway_1amun4k" />
+  </bpmn2:process>
+  <bpmn2:error id="Error_1" name="MSO Workflow Exception" errorCode="MSOWorkflowException" />
+  <bpmn2:error id="Error_2" name="Java Lang Exception" errorCode="java.lang.Exception" />
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="DoUpdateVnfAndModules">
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_79" bpmnElement="StartEvent_1">
+        <dc:Bounds x="238" y="209" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="256" y="250" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_311" bpmnElement="intialization">
+        <dc:Bounds x="344" y="187" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_79" targetElement="_BPMNShape_ScriptTask_311">
+        <di:waypoint xsi:type="dc:Point" x="274" y="227" />
+        <di:waypoint xsi:type="dc:Point" x="344" y="228" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="309" y="212.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_237" bpmnElement="EndEvent_2">
+        <dc:Bounds x="1441" y="279" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1459" y="320" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_SubProcess_35" bpmnElement="javaErrorHandlingSubProcess" isExpanded="true">
+        <dc:Bounds x="242" y="457" width="431" height="157" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_81" bpmnElement="StartEvent_3">
+        <dc:Bounds x="390" y="518" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="408" y="559" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_EndEvent_239" bpmnElement="EndEvent_4">
+        <dc:Bounds x="606" y="518" width="36" height="36" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="624" y="559" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="_BPMNShape_ScriptTask_319" bpmnElement="processJavaException">
+        <dc:Bounds x="460" y="496" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_18" sourceElement="_BPMNShape_StartEvent_81" targetElement="_BPMNShape_ScriptTask_319">
+        <di:waypoint xsi:type="dc:Point" x="426" y="536" />
+        <di:waypoint xsi:type="dc:Point" x="460" y="536" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="443" y="521" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_21" bpmnElement="SequenceFlow_19" sourceElement="_BPMNShape_ScriptTask_319" targetElement="_BPMNShape_EndEvent_239">
+        <di:waypoint xsi:type="dc:Point" x="560" y="536" />
+        <di:waypoint xsi:type="dc:Point" x="606" y="536" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="583" y="521" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_1amun4k_di" bpmnElement="ExclusiveGateway_1amun4k" isMarkerVisible="true">
+        <dc:Bounds x="706" y="201" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="660" y="248" width="65" height="36" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_08nd69s_di" bpmnElement="SequenceFlow_08nd69s">
+        <di:waypoint xsi:type="dc:Point" x="444" y="227" />
+        <di:waypoint xsi:type="dc:Point" x="512" y="227" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="478" y="212" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1qrkdn3_di" bpmnElement="SequenceFlow_1qrkdn3">
+        <di:waypoint xsi:type="dc:Point" x="731" y="201" />
+        <di:waypoint xsi:type="dc:Point" x="731" y="92" />
+        <di:waypoint xsi:type="dc:Point" x="816" y="92" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="737" y="151" width="18" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_0qmp9y5_di" bpmnElement="UpdateVFModule">
+        <dc:Bounds x="983" y="52" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1p4ycii_di" bpmnElement="SequenceFlow_1p4ycii">
+        <di:waypoint xsi:type="dc:Point" x="1083" y="92" />
+        <di:waypoint xsi:type="dc:Point" x="1164" y="92" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1124" y="77" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0t4yszi_di" bpmnElement="SequenceFlow_0t4yszi">
+        <di:waypoint xsi:type="dc:Point" x="1214" y="132" />
+        <di:waypoint xsi:type="dc:Point" x="1214" y="226" />
+        <di:waypoint xsi:type="dc:Point" x="756" y="226" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1229" y="179" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ScriptTask_12xsp2f_di" bpmnElement="QueryVnf">
+        <dc:Bounds x="512" y="187" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_01c9qas_di" bpmnElement="PrepareModuleList">
+        <dc:Bounds x="816" y="52" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_11i0rnd_di" bpmnElement="PostProcessUpdateVfModule">
+        <dc:Bounds x="1164" y="52" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_04o61yk_di" bpmnElement="SequenceFlow_04o61yk">
+        <di:waypoint xsi:type="dc:Point" x="916" y="92" />
+        <di:waypoint xsi:type="dc:Point" x="983" y="92" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="950" y="77" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_19c7hcw_di" bpmnElement="SequenceFlow_19c7hcw">
+        <di:waypoint xsi:type="dc:Point" x="731" y="251" />
+        <di:waypoint xsi:type="dc:Point" x="731" y="295" />
+        <di:waypoint xsi:type="dc:Point" x="1111" y="297" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="908" y="273" width="12" height="12" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_0of4kmm_di" bpmnElement="SequenceFlow_0of4kmm">
+        <di:waypoint xsi:type="dc:Point" x="1367" y="297" />
+        <di:waypoint xsi:type="dc:Point" x="1404" y="297" />
+        <di:waypoint xsi:type="dc:Point" x="1404" y="297" />
+        <di:waypoint xsi:type="dc:Point" x="1441" y="297" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1419" y="297" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1ltycz6_di" bpmnElement="SequenceFlow_1ltycz6">
+        <di:waypoint xsi:type="dc:Point" x="1211" y="297" />
+        <di:waypoint xsi:type="dc:Point" x="1267" y="297" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1239" y="282" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="CallActivity_1cem00f_di" bpmnElement="UpdateAAIGenericVNFTask">
+        <dc:Bounds x="1267" y="257" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="ScriptTask_0snu9sv_di" bpmnElement="PreProcessUpdateAAIGenericVNF">
+        <dc:Bounds x="1111" y="257" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_1f4mbkc_di" bpmnElement="SequenceFlow_1f4mbkc">
+        <di:waypoint xsi:type="dc:Point" x="612" y="227" />
+        <di:waypoint xsi:type="dc:Point" x="706" y="226" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="659" y="211.5" width="0" height="0" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn2:definitions>
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/applicationContext.xml b/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/applicationContext.xml
new file mode 100644
index 0000000..0492ceb
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/applicationContext.xml
@@ -0,0 +1,14 @@
+<beans xmlns="http://www.springframework.org/schema/beans"

+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+       xsi:schemaLocation="http://www.springframework.org/schema/beans

+                           http://www.springframework.org/schema/beans/spring-beans.xsd">

+

+  <!-- Spring bean to be invoked through the ApplicationContextElResolver -->

+  <bean id="urnMappingTaskBean" class="org.openecomp.mso.bpmn.core.URNMappingsTask" />

+  <bean id="logTaskBean" class="org.openecomp.mso.bpmn.core.LogTask" />

+  <bean id="readConfigBean" class="org.openecomp.mso.bpmn.core.ReadConfigTask" />

+  <bean id="readFileBean" class="org.openecomp.mso.bpmn.core.ReadFileTask" />

+  <bean id="xqueryScriptBean" class="org.openecomp.mso.bpmn.core.XQueryScriptTask"/>

+  

+

+</beans>

diff --git a/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/web.xml b/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/web.xml
index eb5df60..cd114a8 100644
--- a/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/web.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/main/webapp/WEB-INF/web.xml
@@ -25,7 +25,7 @@
     <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>

     <init-param>

       <param-name>javax.ws.rs.Application</param-name>

-      <param-value>org.openecomp.mso.bpmn.infrastructure.workflow.service.WorkflowResourceApplication</param-value>

+      <param-value>org.openecomp.mso.bpmn.common.workflow.service.WorkflowResourceApplication</param-value>

     </init-param>

   </servlet>

   <servlet-mapping>

@@ -33,6 +33,10 @@
     <url-pattern>/*</url-pattern>

   </servlet-mapping>

   <context-param>

+    <param-name>contextConfigLocation</param-name>

+    <param-value>/WEB-INF/applicationContext.xml</param-value>

+  </context-param>

+  <context-param>

     <param-name>mso.configuration</param-name>

     <param-value>MSO_PROP_TOPOLOGY=topology.properties</param-value>

   </context-param>

@@ -44,6 +48,9 @@
     <param-name>resteasy.resources</param-name>

     <param-value>org.openecomp.mso.logger.MsoLoggingServlet,org.openecomp.mso.bpmn.core.HealthCheckHandler</param-value>

   </context-param>

+  <listener>

+    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

+  </listener>

   <filter>

     <filter-name>LogFilter</filter-name>

     <filter-class>org.openecomp.mso.logger.LogFilter</filter-class>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstanceTest.groovy
new file mode 100644
index 0000000..13e107e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateNetworkInstanceTest.groovy
@@ -0,0 +1,360 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Rule

+import org.junit.Test

+import org.mockito.MockitoAnnotations

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import static org.junit.Assert.*;

+import static org.mockito.Mockito.*

+

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+

+class CreateNetworkInstanceTest  {

+	

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+	

+		String Prefix="CRENI_"

+		def utils = new MsoUtils()

+	

+		String createDBRequestError =

+"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+						<soapenv:Header/>

+						<soapenv:Body>

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+								<lastModifiedBy>BPMN</lastModifiedBy>

+								<statusMessage>Received error from SDN-C: No availability zone available</statusMessage>

+								<responseBody></responseBody>

+								<requestStatus>FAILED</requestStatus>

+								<vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>

+							</ns:updateInfraRequest>

+					   	</soapenv:Body>

+					   </soapenv:Envelope>"""

+

+	  String falloutHandlerRequest =

+					   """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>

+					      <action>CREATE</action>

+					      <source>VID</source>

+					   </request-info>

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+							<aetgt:ErrorMessage>Received error from SDN-C: No availability zone available.</aetgt:ErrorMessage>

+							<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+						</aetgt:WorkflowException>

+					</aetgt:FalloutHandlerRequest>"""

+					   

+	   String completeMsoProcessRequest =

+					   """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"

+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>CREATE</action>

+      <source>VID</source>

+   </request-info>

+   <aetgt:status-message>Network has been created successfully.</aetgt:status-message>

+   <aetgt:mso-bpel-name>BPMN Network action: CREATE</aetgt:mso-bpel-name>

+</aetgt:MsoCompletionRequest>"""

+

+

+String jsonIncomingRequest =

+"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "networkTyp",

+  			"modelId": "modelId",

+  			"modelNameVersionId": "modelNameVersionId",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [ 

+		  	{  

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {   

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": [	

+               {

+				 "name": "someUserParam1",

+				 "value": "someValue1"

+			   }

+            ]

+		  }

+  }}"""	

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+			

+		}

+

+		public void initializeVariables(Execution mockExecution) {

+			

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", "")

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", "")

+			verify(mockExecution).setVariable(Prefix + "isSilentSuccess", false)

+				

+		}

+				

+		@Test

+		//@Ignore  

+		public void preProcessRequest() {

+			

+			println "************ preProcessRequest() ************* " 

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)

+			

+									

+			// preProcessRequest(Execution execution)						

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+			

+			initializeVariables(mockExecution)

+			//verify(mockExecution).setVariable(Prefix + "Success", false)

+							

+		}

+		

+		

+		@Test

+		//@Ignore

+		public void getNetworkModelInfo() {

+			

+			println "************ getNetworkModelInfo() ************* "

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+									

+			// preProcessRequest(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.getNetworkModelInfo(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+							

+		}

+		

+		@Test

+		//@Ignore

+		public void sendSyncResponse() {

+			

+			println "************ sendSyncResponse ************* "

+			

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			

+			// preProcessRequest(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.sendSyncResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("CreateNetworkInstanceResponseCode", "202")

+			

+		}

+

+		@Test

+		//@Ignore

+		public void sendSyncError() {

+			

+			println "************ sendSyncError ************* "

+			

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.sendSyncError(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("CreateNetworkInstanceResponseCode", "500")

+			

+		}

+		

+		@Test

+		//@Ignore

+		public void prepareDBRequestError() {

+			

+			println "************ prepareDBRequestError ************* "

+			

+			WorkflowException sndcWorkflowException = new WorkflowException("CreateNetworkInstance", 500, "Received error from SDN-C: No availability zone available")

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+			//when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("networkId")).thenReturn("")

+			when(mockExecution.getVariable("networkName")).thenReturn("")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			// preProcessRequest(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.prepareDBRequestError(mockExecution)

+			

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "createDBRequest", createDBRequestError)

+		

+		}

+		

+

+		@Test

+		//@Ignore

+		public void prepareCompletion() {

+			

+			println "************ postProcessResponse ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "dbReturnCode")).thenReturn("200")

+			

+			// postProcessResponse(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.prepareCompletion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", completeMsoProcessRequest)

+		

+		}

+

+		@Test

+		//@Ignore

+		public void buildErrorResponse() {

+			

+			println "************ buildErrorResponse ************* "

+			

+			

+			WorkflowException sndcWorkflowException = new WorkflowException("CreateNetworkInstance", 5300, "Received error from SDN-C: No availability zone available.")

+			

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")

+			//when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+			

+			// buildErrorResponse(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.buildErrorResponse(mockExecution)

+			

+			verify(mockExecution, atLeast(1)).setVariable("prefix", "CRENI_")

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", falloutHandlerRequest)

+			

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+		}

+		

+		@Test

+		//@Ignore

+		public void postProcessResponse() {

+			

+			println "************ postProcessResponse() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("CMSO_ResponseCode")).thenReturn("200")

+			

+			// postProcessResponse(Execution execution)						

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.postProcessResponse(mockExecution)

+

+			//verify(mockExecution).getVariable("isDebugLogEnabled")

+			//verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+		

+		}

+		

+		@Test

+		//@Ignore

+		public void processRollbackData() {

+			

+			println "************ callDBCatalog() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+									

+			// preProcessRequest(Execution execution)

+			CreateNetworkInstance CreateNetworkInstance = new CreateNetworkInstance()

+			CreateNetworkInstance.processRollbackData(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+							

+		}

+		

+		private ExecutionEntity setupMock() {

+			

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("CreateNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("CreateNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("CreateNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("CreateNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+			

+			return mockExecution

+		}

+		

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy
index 4f53757..0cf9792 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy
@@ -27,10 +27,11 @@
 import org.mockito.ArgumentCaptor
 import org.mockito.MockitoAnnotations
 import org.mockito.runners.MockitoJUnitRunner
+import org.openecomp.mso.bpmn.common.scripts.MsoGroovyTest
 import org.junit.Before
+import org.junit.Ignore;
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.openecomp.mso.bpmn.common.scripts.MsoGroovyTest;
 
 
 @RunWith(MockitoJUnitRunner.class)
@@ -64,8 +65,8 @@
 					"instanceId": "{service-instance-id}",
 					"modelInfo": {
 						"modelType": "service",
-						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test",
 						"modelVersion": "2.0"
 					}
@@ -79,7 +80,7 @@
 						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "vSAMP12",
 						"modelVersion": "1",
-						"modelCustomizationName": "vSAMP12"
+						"modelInstanceName": "vSAMP12"
 					}
 				}
 			}
@@ -162,6 +163,7 @@
 	
 
 	@Test
+	@Ignore
 	public void testPreProcessRequest() {
 		
 		ExecutionEntity mockExecution = setupMock('CreateVfModuleVolumeInfraV1')
@@ -171,6 +173,7 @@
 		when(mockExecution.getVariable("serviceInstanceId")).thenReturn('')
 		when(mockExecution.getVariable("vnfId")).thenReturn('test-vnf-id')
 		when(mockExecution.getVariable("mso-request-id")).thenReturn('1234')
+		when(mockExecution.getVariable("URN_mso_rollback")).thenReturn('true')
 								
 		CreateVfModuleVolumeInfraV1 createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
 		createVfModuleVolumeInfraV1.preProcessRequest(mockExecution, 'true')
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstanceTest.groovy
new file mode 100644
index 0000000..3046978
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteNetworkInstanceTest.groovy
@@ -0,0 +1,397 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import org.apache.commons.lang3.*

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Rule

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DeleteNetworkInstanceTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+	

+	String Prefix="DELNI_"

+	def utils = new MsoUtils()

+

+	String falloutHandlerRequest = 

+    """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>

+					      <action>DELETE</action>

+					      <source>PORTAL</source>

+					   </request-info>

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+   <aetgt:ErrorMessage>Received error from SDN-C: No availability zone available</aetgt:ErrorMessage>

+   <aetgt:ErrorCode>5300</aetgt:ErrorCode>

+   <aetgt:SourceSystemErrorCode>200</aetgt:SourceSystemErrorCode>

+</aetgt:WorkflowException>

+					</aetgt:FalloutHandlerRequest>"""

+

+	String falloutHandlerRequestObj =

+	"""<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>

+					      <action>DELETE</action>

+					      <source>PORTAL</source>

+					   </request-info>

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+							<aetgt:ErrorMessage>Received error from SDN-C: No availability zone available</aetgt:ErrorMessage>

+							<aetgt:ErrorCode>7000</aetgt:ErrorCode>

+						</aetgt:WorkflowException>

+					</aetgt:FalloutHandlerRequest>"""

+					

+	String completeMsoProcessRequest = 

+    """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"

+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+   </request-info>

+   <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>

+   <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>

+</aetgt:MsoCompletionRequest>"""

+

+String deleteDBRequest =

+"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

+                  xmlns:ns="http://org.openecomp.mso/requestsdb">

+   <soapenv:Header/>

+   <soapenv:Body>

+      <ns:updateInfraRequest>

+         <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+         <lastModifiedBy>BPMN</lastModifiedBy>

+         <statusMessage>Network successfully deleted.</statusMessage>

+         <responseBody/>

+         <requestStatus>COMPLETED</requestStatus>

+         <progress>100</progress>

+         <vnfOutputs>&lt;network-outputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:aetgt="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"/&gt;</vnfOutputs>

+      </ns:updateInfraRequest>

+   </soapenv:Body>

+</soapenv:Envelope>"""	

+

+String deleteDBRequestErrorObj =

+"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+						<soapenv:Header/>

+						<soapenv:Body>

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+								<lastModifiedBy>BPMN</lastModifiedBy>

+								<statusMessage>Received error from SDN-C: No availability zone available</statusMessage>

+								<responseBody></responseBody>

+								<requestStatus>FAILED</requestStatus>

+								<progress></progress>

+								<vnfOutputs>&lt;network-outputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:aetgt="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"/&gt;</vnfOutputs>

+							</ns:updateInfraRequest>

+					   	</soapenv:Body>

+					   </soapenv:Envelope>"""

+

+String deleteDBRequestErrorString =

+"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+						<soapenv:Header/>

+						<soapenv:Body>

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+								<lastModifiedBy>BPMN</lastModifiedBy>

+								<statusMessage>Received error from SDN-C: No availability zone available</statusMessage>

+								<responseBody></responseBody>

+								<requestStatus>FAILED</requestStatus>

+								<progress></progress>

+								<vnfOutputs>&lt;network-outputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:aetgt="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"/&gt;</vnfOutputs>

+							</ns:updateInfraRequest>

+					   	</soapenv:Body>

+					   </soapenv:Envelope>"""

+					   

+					   String jsonIncomingRequest =

+					   """{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "networkTyp",

+  			"modelId": "modelId",

+  			"modelNameVersionId": "modelNameVersionId",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [ 

+		  	{  

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {   

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": [	

+               {

+				 "name": "someUserParam1",

+				 "value": "someValue1"

+			   }

+            ]

+		  }

+  }}"""	

+					   

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+		}

+		

+		@Test

+		//@Ignore  

+		public void preProcessRequest() {

+			

+			println "************ preProcessRequest_Payload ************* " 

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)

+									

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.preProcessRequest(mockExecution)

+			

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+			

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+

+		}

+

+		public void initializeVariables (Execution mockExecution) {

+			

+			

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", "")

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", "")

+			verify(mockExecution).setVariable(Prefix + "isSilentSuccess", false)

+		

+		}

+		

+			

+		@Test

+		//@Ignore

+		public void getNetworkModelInfo() {

+			

+			println "************ getNetworkModelInfo() ************* "

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+									

+			// preProcessRequest(Execution execution)

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.getNetworkModelInfo(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+							

+		}

+			

+		@Test

+		//@Ignore

+		public void sendSyncResponse() {

+			

+			println "************ sendSyncResponse ************* "

+			

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			

+			// preProcessRequest(Execution execution)

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.sendSyncResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("DeleteNetworkInstanceResponseCode", "202")

+			

+		}

+		

+		

+		@Test

+		//@Ignore

+		public void sendSyncError() {

+			

+			println "************ sendSyncError ************* "

+			

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.sendSyncError(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("DeleteNetworkInstanceResponseCode", "500")

+			

+		}

+		

+

+		@Test

+		//@Ignore

+		public void prepareCompletion() {

+			

+			println "************ postProcessResponse ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("PORTAL")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			

+			// postProcessResponse(Execution execution)

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.prepareCompletion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", completeMsoProcessRequest)

+		

+		}

+		

+		

+		@Test

+		//@Ignore

+		public void prepareDBRequestError() {

+			

+			println "************ prepareDBRequestError ************* "

+			

+			WorkflowException sndcWorkflowExceptionObj = new WorkflowException("CreateNetworkV2", 500, "Received error from SDN-C: No availability zone available")

+			

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowExceptionObj)

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			// preProcessRequest(Execution execution)

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.prepareDBRequestError(mockExecution)

+			

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "deleteDBRequest", deleteDBRequestErrorObj)

+		

+		}

+		

+	

+		@Test

+		//@Ignore

+		public void postProcessResponse() {

+			

+			println "************ postProcessResponse ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("CMSO_ResponseCode")).thenReturn("200")

+			

+			// postProcessResponse(Execution execution)						

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.postProcessResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+

+		

+		}

+

+		

+		@Test

+		//@Ignore

+		public void buildErrorResponse_FalloutHandlerRequest() {

+			

+			println "************ buildErrorResponse ************* "

+			

+			WorkflowException sndcWorkflowExceptionObj = new WorkflowException("DeleteNetworkInstance", 7000, "Received error from SDN-C: No availability zone available")

+			

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowExceptionObj)

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("PORTAL")

+			

+			// buildErrorResponse(Execution execution)

+			DeleteNetworkInstance DeleteNetworkInstance = new DeleteNetworkInstance()

+			DeleteNetworkInstance.buildErrorResponse(mockExecution)

+			

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", falloutHandlerRequestObj)

+			

+		}

+	

+	

+		private ExecutionEntity setupMock() {

+		

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DeleteNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DeleteNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DeleteNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DeleteNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+			

+		}

+		

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy
index 2e6b35e..fac156e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy
@@ -26,6 +26,7 @@
 import org.apache.commons.lang3.*
 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
 import org.junit.Before
+import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.MockitoAnnotations
@@ -121,11 +122,14 @@
 	}
 	
 	@Test
+	//@Ignore
 	public void testPrepareDbRequest() {
 		
 		ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
 		when(mockExecution.getVariable("DELVfModVol_requestId")).thenReturn('TEST-REQUEST-ID-0123')
 		when(mockExecution.getVariable("DELVfModVol_volumeOutputs")).thenReturn('')
+		when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+		when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
 		
 		DeleteVfModuleVolumeInfraV1 myproc = new DeleteVfModuleVolumeInfraV1()
 		myproc.prepareDBRequest(mockExecution, 'true')
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollbackTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollbackTest.groovy
new file mode 100644
index 0000000..2bb8863
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceRollbackTest.groovy
@@ -0,0 +1,349 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.impl.pvm.process.ProcessDefinitionImpl

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution;

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.junit.Before

+import org.junit.Rule;

+import org.junit.Test

+import org.junit.Ignore

+import org.junit.runner.RunWith

+

+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterRestRollbackDelete;

+import static org.junit.Assert.*;

+

+import com.github.tomakehurst.wiremock.client.WireMock;

+import com.github.tomakehurst.wiremock.junit.WireMockRule;

+

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DoCreateNetworkInstanceRollbackTest  {

+	

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(28090);

+	

+		def utils = new MsoUtils()

+		String Prefix="CRENWKIR_"

+

+

+		String rollbackNetworkRequest =

+		"""<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""			

+								

+					String rollbackActivateSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""			

+		

+					String rollbackSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""			

+		

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+			

+		}

+		

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "WorkflowException", null)

+			

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")

+	

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")

+			

+			verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")

+	

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			verify(mockExecution).setVariable(Prefix + "fullRollback", false)

+			verify(mockExecution).setVariable(Prefix + "networkId", "")

+			verify(mockExecution).setVariable(Prefix + "urlRollbackPoNetwork", "")

+			

+		}

+		

+		@Test

+		//@Ignore  

+		public void preProcessRequest() {

+			

+			println "************ preProcessRequest ************* " 

+			

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+			rollbackData.put("rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+					

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+						

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:28090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:28090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:28090/SDNCAdapterRpc")

+			

+			

+			// preProcessRequest(Execution execution)						

+			DoCreateNetworkInstanceRollback DoCreateNetworkInstanceRollback = new DoCreateNetworkInstanceRollback()

+			DoCreateNetworkInstanceRollback.preProcessRequest(mockExecution)

+			

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+			

+			//verify variable initialization

+			initializeVariables(mockExecution)

+								

+		}

+		

+		@Test

+		//@Ignore

+		public void callPONetworkAdapter() {

+

+			MockNetworkAdapterRestRollbackDelete("deleteNetworkResponse_Success.xml","8abc633a-810b-4ca5-8b3a-09511d13a2ce");

+			

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn( rollbackNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:28090/networks/NetworkAdapter")

+			

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstanceRollback DoCreateNetworkInstanceRollback = new DoCreateNetworkInstanceRollback()

+			DoCreateNetworkInstanceRollback.callPONetworkAdapter(mockExecution)

+			

+			verify(mockExecution, atLeast(1)).setVariable(Prefix + "urlRollbackPoNetwork", "http://localhost:28090/networks/NetworkAdapter/8abc633a-810b-4ca5-8b3a-09511d13a2ce/rollback")

+			

+		}

+		

+		@Test

+		//@Ignore

+		public void validateRollbackResponses_Good() {

+			

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404.")

+			WorkflowException expectedWorkflowException = new WorkflowException("DoCreateNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404. + SNDC activate rollback completed. + PO Network rollback completed. + SNDC assign rollback completed.")

+				  

+			println "************ validateRollbackResponses_Good() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(false)

+									

+			DoCreateNetworkInstanceRollback DoCreateNetworkInstanceRollback = new DoCreateNetworkInstanceRollback()

+			DoCreateNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+			

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rolledBack", true)

+			verify(mockExecution, atLeast(1)).setVariable("wasDeleted", true)

+			verify(mockExecution).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))

+			//verify(mockExecution).setVariable("WorkflowException", expectedWorkflowException)

+		}

+		

+		@Test

+		//@Ignore

+		public void validateRollbackResponses_FullRollback() {

+			

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+			rollbackData.put("rollbackActivateSDNCRequest", rollbackActivateSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+				  

+			println "************ validateRollbackResponses_FullRollback() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "workflowException")).thenReturn(null)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(true)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+									

+			DoCreateNetworkInstanceRollback DoCreateNetworkInstanceRollback = new DoCreateNetworkInstanceRollback()

+			DoCreateNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+			

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackSuccessful", true)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackError", false)

+			

+		}

+		

+		

+		private ExecutionEntity setupMock() {

+			

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoCreateNetworkInstanceRollback")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoCreateNetworkInstanceRollback")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoCreateNetworkInstanceRollback")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoCreateNetworkInstanceRollback")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+			

+			return mockExecution

+		}

+		

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceTest.groovy
new file mode 100644
index 0000000..d0b87b3
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateNetworkInstanceTest.groovy
@@ -0,0 +1,3988 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByName;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByName_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetworkIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicy;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkTableReference;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkVpnBinding;

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Ignore

+import org.junit.Rule

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import com.github.tomakehurst.wiremock.client.WireMock

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+import org.apache.commons.lang3.*

+

+@RunWith(MockitoJUnitRunner.class)

+class DoCreateNetworkInstanceTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+

+		def utils = new MsoUtils()

+		String Prefix="CRENWKI_"

+

+// ---- Start XML Zone ----

+		String xmlIncomingRequest =

+		"""<rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">

+      <network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+         <request-info>

+            <request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</request-id>

+            <action>CREATE</action>

+            <source>PORTAL</source>

+         </request-info>

+         <network-inputs>

+            <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+            <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+            <network-type>CONTRAIL_EXTERNAL</network-type>

+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+            <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+            <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+			<physicalNetworkName>dvs-slcp3-01</physicalNetworkName>

+			<vlans>3008</vlans>

+            <service-instance-id>MNS-25180-L-01-dmz_direct_net_1</service-instance-id>

+	        <backout-on-failure>true</backout-on-failure>

+         </network-inputs>

+         <network-params xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+            <param xmlns="" xmlns:ns3="http://org.openecomp/mso/infra/vnf-request/v1" name="shared">1</param>

+            <param xmlns="" xmlns:ns3="http://org.openecomp/mso/infra/vnf-request/v1" name="external">0</param>

+         </network-params>

+      </network-request>

+   </rest:payload>"""

+

+   		String expectedXMLNetworkRequest =

+"""<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1"

+              contentType="text/xml">

+   <vnfreq:network-request>

+      <vnfreq:request-info>

+         <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+         <vnfreq:action>CREATE</vnfreq:action>

+         <vnfreq:source>PORTAL</vnfreq:source>

+      </vnfreq:request-info>

+      <vnfreq:network-inputs>

+         <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>

+         <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+         <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+         <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+         <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>

+         <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+         <vnfreq:physicalNetworkName>dvs-slcp3-01</vnfreq:physicalNetworkName>

+         <vnfreq:vlans>3008</vnfreq:vlans>

+         <vnfreq:service-instance-id>MNS-25180-L-01-dmz_direct_net_1</vnfreq:service-instance-id>

+         <vnfreq:backout-on-failure>true</vnfreq:backout-on-failure>

+      </vnfreq:network-inputs>

+      <vnfreq:network-params>

+         <param name="shared">1</param>

+         <param name="external">0</param>

+      </vnfreq:network-params>

+   </vnfreq:network-request>

+</rest:payload>"""

+

+		String expectedXMLNetworkInputs =

+"""<vnfreq:network-inputs xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>

+   <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+   <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+   <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+   <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>

+   <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+   <vnfreq:physicalNetworkName>dvs-slcp3-01</vnfreq:physicalNetworkName>

+   <vnfreq:vlans>3008</vnfreq:vlans>

+   <vnfreq:service-instance-id>MNS-25180-L-01-dmz_direct_net_1</vnfreq:service-instance-id>

+   <vnfreq:backout-on-failure>true</vnfreq:backout-on-failure>

+</vnfreq:network-inputs>"""

+

+		String networkXMLOutputs =

+""""""

+

+// ---- End XML Zone ----

+

+// ---- Start JSON Zone ----

+		// JSON format Input

+		String jsonIncomingRequest =

+		"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "network",

+  			"modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1.0"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": [

+               {

+				 "name": "someUserParam1",

+				 "value": "someValue1"

+			   }

+            ]

+		  }

+  }}"""

+

+  String expectedJSONNetworkRequest =

+  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>null</request-id>

+      <action>CREATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>networkId</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params>

+      <param name="some_user_param1">someValue1</param>

+   </network-params>

+</network-request>"""

+

+		String expectedJSONNetworkInputs =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>networkId</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+		String networkJSONOutputs =

+"""<network-outputs>

+	                   <network-id>networkId</network-id>

+	                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+	                 </network-outputs>"""

+

+// ---- End JSON Zone ----

+

+// ---- Start vPIR Zone ----

+	  // expectedNetworkRequest

+		String expectedvIPRNetworkRequest =

+  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>CREATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>networkId</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+      <global-customer-id>globalId_45678905678</global-customer-id>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <failIfExist>false</failIfExist>

+      <networkModelInfo>

+         <modelName>CONTRAIL_EXTERNAL</modelName>

+         <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+         <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+         <modelVersion>1</modelVersion>

+         <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+      </networkModelInfo>

+      <serviceModelInfo>

+         <modelName>HNGW Protected OAM</modelName>

+         <modelUuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</modelUuid>

+         <modelInvariantUuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</modelInvariantUuid>

+         <modelVersion>1.0</modelVersion>

+         <modelCustomizationUuid/>

+      </serviceModelInfo>

+      <sdncVersion>1702</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+		String expectedvIPRNetworkInputs =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>networkId</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+   <global-customer-id>globalId_45678905678</global-customer-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <failIfExist>false</failIfExist>

+   <networkModelInfo>

+      <modelName>CONTRAIL_EXTERNAL</modelName>

+      <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+      <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+      <modelVersion>1</modelVersion>

+      <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   </networkModelInfo>

+   <serviceModelInfo>

+      <modelName>HNGW Protected OAM</modelName>

+      <modelUuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</modelUuid>

+      <modelInvariantUuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</modelInvariantUuid>

+      <modelVersion>1.0</modelVersion>

+      <modelCustomizationUuid/>

+   </serviceModelInfo>

+   <sdncVersion>1702</sdncVersion>

+</network-inputs>"""

+

+		String networkvIPROutputs =

+"""<network-outputs>

+	                   <network-id>networkId</network-id>

+	                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+	                 </network-outputs>"""

+

+// ---- End vPIR Zone ----

+

+  String vnfRequestFakeRegion =

+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:request-info>

+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+      <vnfreq:action>CREATE</vnfreq:action>

+      <vnfreq:source>PORTAL</vnfreq:source>

+   </vnfreq:request-info>

+   <vnfreq:network-inputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+      <subscriptionServiceType>MSO-dev-service-type</subscriptionServiceType>

+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+      <vnfreq:aic-cloud-region>MDTWNJ21</vnfreq:aic-cloud-region>

+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+   </vnfreq:network-inputs>

+   <vnfreq:network-params>

+      <param name="shared">1</param>

+      <param name="external">0</param>

+   </vnfreq:network-params>

+</vnfreq:network-request>"""

+

+  // expectedNetworkRequest

+	  String expectedNetworkRequest_Outputs =

+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:request-info>

+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+      <vnfreq:action>CREATE</vnfreq:action>

+      <vnfreq:source>PORTAL</vnfreq:source>

+   </vnfreq:request-info>

+   <vnfreq:network-inputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+      <subscriptionServiceType>MSO-dev-service-type</subscriptionServiceType>

+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+      <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>

+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+   </vnfreq:network-inputs>

+   <vnfreq:network-outputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>

+   </vnfreq:network-outputs>

+   <vnfreq:network-params>

+      <param name="shared">1</param>

+      <param name="external">0</param>

+   </vnfreq:network-params>

+</vnfreq:network-request>"""

+

+

+  // expectedNetworkRequest

+		  String networkInputs_404 =

+		  """<network-inputs  xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+		      <network-name>myOwn_Network</network-name>

+		      <network-type>CONTRAIL_EXTERNAL</network-type>

+		      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+		      <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+		   </network-inputs>"""

+

+  String networkInputs =

+  """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+</network-inputs>"""

+

+

+

+	  String queryAAIResponse =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v3">

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+         <orchestration-status>pending-create</orchestration-status>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	  String queryIdAIIResponse =

+	  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>Contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+		 <resource-version>l3-version</resource-version>

+         <orchestration-status>pending-create</orchestration-status>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>414</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>415</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+		 <ctag-assignments>

+			 <ctag-assignment>

+				 <vlan-id-inner>inner</vlan-id-inner>

+				 <resource-version>ctag-version</resource-version>

+	             <relationship-list>

+					<relationship>

+					   <related-to>tenant</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+					   <relationship-data>

+						  <relationship-key>tenant.tenant-id</relationship-key>

+						  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>tenant.tenant-name</property-key>

+						  <property-value>MSOTest1</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+					   </related-to-property>

+					</relationship>

+				 </relationship-list>

+				</ctag-assignment>

+		 </ctag-assignments>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+			  <related-to>network-policy</related-to>

+			  <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+			  <relationship-data>

+				  <relationship-key>network-policy.network-policy-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+			  </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+String queryIdAIIResponse_segmentation =

+"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>Contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+		 <resource-version>l3-version</resource-version>

+         <orchestration-status>pending-create</orchestration-status>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+		 <segmentation-assignments>

+			<segmentation-assignment>

+				<segmentation-id>1</segmentation-id>

+				<resource-version>1498507569188</resource-version>

+			</segmentation-assignment>

+		 </segmentation-assignments>

+		 <ctag-assignments>

+			 <ctag-assignment>

+				 <vlan-id-inner>inner</vlan-id-inner>

+				 <resource-version>ctag-version</resource-version>

+	             <relationship-list>

+					<relationship>

+					   <related-to>tenant</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+					   <relationship-data>

+						  <relationship-key>tenant.tenant-id</relationship-key>

+						  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>tenant.tenant-name</property-key>

+						  <property-value>MSOTest1</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+					   </related-to-property>

+					</relationship>

+				 </relationship-list>

+				</ctag-assignment>

+		 </ctag-assignments>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+			  <related-to>network-policy</related-to>

+			  <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+			  <relationship-data>

+				  <relationship-key>network-policy.network-policy-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+			  </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+String queryIdAIIResponse_Ipv4 =

+"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>Contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+		 <resource-version>l3-version</resource-version>

+         <orchestration-status>pending-create</orchestration-status>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>ipv4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>ipv4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>414</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>415</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+		 <ctag-assignments>

+			 <ctag-assignment>

+				 <vlan-id-inner>inner</vlan-id-inner>

+				 <resource-version>ctag-version</resource-version>

+	             <relationship-list>

+					<relationship>

+					   <related-to>tenant</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+					   <relationship-data>

+						  <relationship-key>tenant.tenant-id</relationship-key>

+						  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>tenant.tenant-name</property-key>

+						  <property-value>MSOTest1</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+					   </related-to-property>

+					</relationship>

+				 </relationship-list>

+				</ctag-assignment>

+		 </ctag-assignments>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+			  <related-to>network-policy</related-to>

+			  <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+			  <relationship-data>

+				  <relationship-key>network-policy.network-policy-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+			  </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+String queryIdAIIResponse_SRIOV =

+"""<?xml version="1.0" encoding="UTF-8"?>

+<l3-network xmlns="http://org.openecomp.aai.inventory/v8">

+	<network-id>6cb1ae5a-d2db-4eb6-97bf-d52a506a53d8</network-id>

+	<network-name>MSO_TEST_1702_A_HnportalProviderNetwork.HNPortalPROVIDERNETWORK.SR_IOV_Provider2_1_net_17</network-name>

+	<network-type>SR_IOV_Provider2_1</network-type>

+	<network-role>HnportalProviderNetwork.HNPortalPROVIDERNETWORK.SR_IOV_Provider2_1</network-role>

+	<network-technology>AIC_SR_IOV</network-technology>

+	<is-bound-to-vpn>false</is-bound-to-vpn>

+	<service-id/>

+	<resource-version>1487336177672</resource-version>

+	<orchestration-status>PendingCreate</orchestration-status>

+	<persona-model-id>f70d7a32-0ac8-4bd5-a0fb-3c9336540d78</persona-model-id>

+	<persona-model-version>1.0</persona-model-version>

+	<physical-network-name>Physnet21</physical-network-name>

+	<is-provider-network>true</is-provider-network>

+	<is-shared-network>false</is-shared-network>

+	<is-external-network>false</is-external-network>

+	<subnets>

+		<subnet>

+			<subnet-id>10437</subnet-id>

+			<subnet-name>MSO_TEST_1702_A_HnportalProviderNetwork.HNPortalPROVIDERNETWORK.SR_IOV_Provider2_1_net_17_S0</subnet-name>

+			<gateway-address>192.168.6.1</gateway-address>

+			<network-start-address>192.168.6.0</network-start-address>

+			<cidr-mask>26</cidr-mask>

+			<ip-version>4</ip-version>

+			<orchestration-status>PendingCreate</orchestration-status>

+			<dhcp-enabled>true</dhcp-enabled>

+			<dhcp-start>192.168.6.3</dhcp-start>

+			<dhcp-end>192.168.6.62</dhcp-end>

+			<resource-version>1487336177359</resource-version>

+		</subnet>

+	</subnets>

+	<relationship-list>

+		<relationship>

+			<related-to>tenant</related-to>

+			<related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtn16/tenants/tenant/6accefef3cb442ff9e644d589fb04107</related-link>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>mtn16</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>tenant.tenant-id</relationship-key>

+				<relationship-value>6accefef3cb442ff9e644d589fb04107</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>tenant.tenant-name</property-key>

+				<property-value>MSO_TEST_1702_A</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>cloud-region</related-to>

+			<related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtn16</related-link>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>mtn16</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>cloud-region.owner-defined-type</property-key>

+				<property-value>lcp</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

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

+			<related-link>https://aai-ext1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_ST/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/51d8336b-a993-4afe-a5fc-10b3afbd6560</related-link>

+			<relationship-data>

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

+				<relationship-value>MSO_1610_ST</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>service-subscription.service-type</relationship-key>

+				<relationship-value>MSO-dev-service-type</relationship-value>

+			</relationship-data>

+			<relationship-data>

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

+				<relationship-value>51d8336b-a993-4afe-a5fc-10b3afbd6560</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>service-instance.service-instance-name</property-key>

+				<property-value>HnportalProviderNetwork_17</property-value>

+			</related-to-property>

+		</relationship>

+	</relationship-list>

+</l3-network>"""

+

+	  String queryIdAIIResponseTestScenario01 =

+  """<?xml version="1.0" encoding="UTF-8"?>

+<l3-network xmlns="http://org.openecomp.aai.inventory/v7">

+	<network-id>4da55fe4-7a9e-478c-a434-8a98d62265ab</network-id>

+	<network-name>GN_EVPN_direct_net_0_ST1</network-name>

+	<network-type>CONTRAIL30_BASIC</network-type>

+	<network-role>GN_EVPN_direct</network-role>

+	<network-technology>contrail</network-technology>

+	<is-bound-to-vpn>false</is-bound-to-vpn>

+	<service-id>9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+	<network-role-instance>0</network-role-instance>

+	<resource-version>1465398611</resource-version>

+	<orchestration-status>pending-create</orchestration-status>

+  	<physical-network-name>networkName</physical-network-name>

+	<is-provider-network>false</is-provider-network>

+	<is-shared-network>true</is-shared-network>

+	<is-external-network>false</is-external-network>

+	<subnets>

+		<subnet>

+			<subnet-id>cb1a7b47-5428-44c9-89c2-8b17541c3228</subnet-id>

+			<gateway-address>108.239.40.1</gateway-address>

+			<network-start-address>108.239.40.0</network-start-address>

+			<cidr-mask>28</cidr-mask>

+			<ip-version>4</ip-version>

+			<orchestration-status>pending-create</orchestration-status>

+			<dhcp-enabled>true</dhcp-enabled>

+			<dhcp-start>108.239.40.0</dhcp-start>

+			<dhcp-end>108.239.40.0</dhcp-end>

+			<resource-version>1465398611</resource-version>

+  		    <subnet-name>subnetName</subnet-name>

+			<relationship-list />

+		</subnet>

+		<subnet>

+			<subnet-id>e2cc7c14-90f0-4205-840d-b4e07f04e621</subnet-id>

+			<gateway-address>2606:ae00:2e01:604::1</gateway-address>

+			<network-start-address>2606:ae00:2e01:604::</network-start-address>

+			<cidr-mask>64</cidr-mask>

+			<ip-version>6</ip-version>

+			<orchestration-status>pending-create</orchestration-status>

+			<dhcp-enabled>true</dhcp-enabled>

+			<dhcp-start>2606:ae00:2e01:604::</dhcp-start>

+			<dhcp-end>2606:ae00:2e01:604::</dhcp-end>

+			<resource-version>1465398611</resource-version>

+  			<subnet-name>subnetName</subnet-name>

+			<relationship-list />

+		</subnet>

+	</subnets>

+	<ctag-assignments />

+	<segmentation-assignments>

+	   	<segmentation-id>416</segmentation-id>

+	  	<resource-version>4132176</resource-version>

+	</segmentation-assignments>

+	<relationship-list>

+		<relationship>

+			<related-to>cloud-region</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/

+			</related-link>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>AAIAIC25</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>cloud-region.owner-defined-type</property-key>

+				<property-value></property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>tenant</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/4ae1d3446a4c48b2bec44b6cfba06d68/</related-link>

+			<relationship-data>

+				<relationship-key>tenant.tenant-id</relationship-key>

+				<relationship-value>4ae1d3446a4c48b2bec44b6cfba06d68

+				</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>AAIAIC25</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>tenant.tenant-name</property-key>

+				<property-value>Ruchira Contrail 3.0 test</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>vpn-binding</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+			<relationship-data>

+				<relationship-key>vpn-binding.vpn-id</relationship-key>

+				<relationship-value>9a7b327d9-287aa00-82c4b0-100001</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>vpn-binding.vpn-name</property-key>

+				<property-value>GN_EVPN_direct_net_0_ST1</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+		   <related-to>route-table-reference</related-to>

+  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+		   <relationship-data>

+			  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+			  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+		   </relationship-data>

+		</relationship>

+		<relationship>

+		   <related-to>route-table-reference</related-to>

+  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+		   <relationship-data>

+			  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+			  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+		   </relationship-data>

+		</relationship>

+	</relationship-list>

+</l3-network>"""

+

+  String queryIdAIIResponseVpnNotPresent =

+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+         <orchestration-status>pending-create</orchestration-status>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-create</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+  			   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list/>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	  String queryNameAIIResponse =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+		                   statusCode="200">

+		   <rest:headers>

+		      <rest:header name="Transfer-Encoding" value="chunked"/>

+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+		      <rest:header name="Content-Type" value="application/xml"/>

+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+		      <rest:header name="Cache-Control" value="private"/>

+		   </rest:headers>

+		   <rest:payload contentType="text/xml">

+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+		         <network-type>CONTRAIL_EXTERNAL</network-type>

+		         <network-role>dmz_direct</network-role>

+		         <network-technology>contrail</network-technology>

+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		         <network-role-instance>0</network-role-instance>

+		         <orchestration-status>pending-create</orchestration-status>

+		         <subnets>

+		            <subnet>

+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+		               <gateway-address>107.239.52.1</gateway-address>

+		               <network-start-address>107.239.52.0</network-start-address>

+		               <cidr-mask>24</cidr-mask>

+		               <ip-version>4</ip-version>

+		               <orchestration-status>pending-create</orchestration-status>

+		               <dhcp-enabled>true</dhcp-enabled>

+		               <relationship-list/>

+		            </subnet>

+		         </subnets>

+		         <relationship-list>

+		            <relationship>

+		               <related-to>vpn-binding</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+		               <relationship-data>

+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+		                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		            <relationship>

+		               <related-to>vpn-binding</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+		               <relationship-data>

+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+		                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		            <relationship>

+		               <related-to>tenant</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+		               <relationship-data>

+		                  <relationship-key>tenant.tenant-id</relationship-key>

+		                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		         </relationship-list>

+		      </l3-network>

+		   </rest:payload>

+		</rest:RESTResponse>"""

+

+		  String queryNameAIIResponseVpnNotPresent =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+		                   statusCode="200">

+		   <rest:headers>

+		      <rest:header name="Transfer-Encoding" value="chunked"/>

+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+		      <rest:header name="Content-Type" value="application/xml"/>

+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+		      <rest:header name="Cache-Control" value="private"/>

+		   </rest:headers>

+		   <rest:payload contentType="text/xml">

+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6>

+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+		         <network-type>CONTRAIL_EXTERNAL</network-type>

+		         <network-role>dmz_direct</network-role>

+		         <network-technology>contrail</network-technology>

+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		         <network-role-instance>0</network-role-instance>

+		         <orchestration-status>pending-create</orchestration-status>

+		         <subnets>

+		            <subnet>

+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+		               <gateway-address>107.239.52.1</gateway-address>

+		               <network-start-address>107.239.52.0</network-start-address>

+		               <cidr-mask>24</cidr-mask>

+		               <ip-version>4</ip-version>

+		               <orchestration-status>pending-create</orchestration-status>

+		               <dhcp-enabled>true</dhcp-enabled>

+		               <relationship-list/>

+		            </subnet>

+		         </subnets>

+		      </l3-network>

+		   </rest:payload>

+		</rest:RESTResponse>"""

+

+	  String aaiVpnResponseStub =

+  """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              xmlns="http://org.openecomp.aai.inventory/v8"

+              contentType="text/xml">

+   <vpn-binding>

+      <global-route-target/>

+   </vpn-binding>

+</rest:payload>"""

+

+	  String queryVpnBindingAAIResponse =

+	   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID"

+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <vpn-binding xmlns="http://org.openecomp.aai.inventory/v6">

+         <vpn-id>9a7b327d9-287aa00-82c4b0-105757</vpn-id>

+         <vpn-name>GN_EVPN_Test</vpn-name>

+         <global-route-target>13979:105757</global-route-target>

+         <relationship-list>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>689ec39e-c5fc-4462-8db2-4f760763ad28</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>1a49396b-19b3-40a4-8792-aa2fbd0f0704</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>774f3329-3c83-4771-86c7-9e6207cd50fd</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

+      </vpn-binding>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+		 String createDBRequestError01 =

+	  """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+						<soapenv:Header/>

+						<soapenv:Body>

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+								<lastModifiedBy>BPMN</lastModifiedBy>

+								<statusMessage>Received error unexpectedly from SDN-C.</statusMessage>

+								<responseBody></responseBody>

+								<requestStatus>FAILED</requestStatus>

+								<vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>

+							</ns:updateInfraRequest>

+					   	</soapenv:Body>

+					   </soapenv:Envelope>"""

+

+	  String createDBRequest_Outputs =

+  """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

+                  xmlns:ns="http://org.openecomp.mso/requestsdb">

+   <soapenv:Header/>

+   <soapenv:Body>

+      <ns:updateInfraRequest>

+         <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+         <lastModifiedBy>BPMN</lastModifiedBy>

+         <statusMessage>Network successfully created.</statusMessage>

+         <responseBody/>

+         <requestStatus>COMPLETED</requestStatus>

+         <progress>100</progress>

+         <vnfOutputs>&lt;network-id&gt;networkId&lt;/network-id&gt;&lt;network-name&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/network-names&gt;</vnfOutputs>

+         <networkId>networkId</networkId>

+      </ns:updateInfraRequest>

+   </soapenv:Body>

+</soapenv:Envelope>"""

+

+	  String createNetworkRequest =

+	  """<createNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>

+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   <networkTechnology>CONTRAIL</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>networkName</physicalNetworkName>

+      <vlans>414,415</vlans>

+   </providerVlanNetwork>

+   <contrailNetwork>

+      <shared>true</shared>

+      <external>false</external>

+      <routeTargets>13979:105757</routeTargets>

+      <routeTargets>13979:105757</routeTargets>

+      <policyFqdns>GN_EVPN_Test</policyFqdns>

+      <routeTableFqdns>refFQDN1</routeTableFqdns>

+      <routeTableFqdns>refFQDN2</routeTableFqdns>

+   </contrailNetwork>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</createNetworkRequest>"""

+

+String createNetworkRequestAlaCarte = 

+"""<createNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>

+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <modelCustomizationUuid>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationUuid>

+   <networkTechnology>CONTRAIL</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>networkName</physicalNetworkName>

+      <vlans>414,415</vlans>

+   </providerVlanNetwork>

+   <contrailNetwork>

+      <shared>true</shared>

+      <external>false</external>

+      <routeTargets>13979:105757</routeTargets>

+      <routeTargets>13979:105757</routeTargets>

+      <policyFqdns>GN_EVPN_Test</policyFqdns>

+      <routeTableFqdns>refFQDN1</routeTableFqdns>

+      <routeTableFqdns>refFQDN2</routeTableFqdns>

+   </contrailNetwork>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <networkParams>

+      <some_user_param1>someValue1</some_user_param1>

+   </networkParams>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</createNetworkRequest>"""

+

+String createNetworkRequest_SRIOV =

+"""<createNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>6cb1ae5a-d2db-4eb6-97bf-d52a506a53d8</networkId>

+   <networkName>MSO_TEST_1702_A_HnportalProviderNetwork.HNPortalPROVIDERNETWORK.SR_IOV_Provider2_1_net_17</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   <networkTechnology>AIC_SR_IOV</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>Physnet21</physicalNetworkName>

+      <vlans/>

+   </providerVlanNetwork>

+   <subnets>

+      <allocationPools>

+         <start>192.168.6.3</start>

+         <end>192.168.6.62</end>

+      </allocationPools>

+      <cidr>192.168.6.0/26</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>192.168.6.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>10437</subnetId>

+      <subnetName>MSO_TEST_1702_A_HnportalProviderNetwork.HNPortalPROVIDERNETWORK.SR_IOV_Provider2_1_net_17_S0</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</createNetworkRequest>"""

+

+  String createNetworkRequest_noPhysicalName =

+  """<createNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>

+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <networkTechnology>CONTRAIL</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>networkName</physicalNetworkName>

+      <vlans>414,415</vlans>

+   </providerVlanNetwork>

+   <contrailNetwork>

+      <shared>true</shared>

+      <external>false</external>

+      <routeTargets>13979:105757</routeTargets>

+      <routeTargets>13979:105757</routeTargets>

+      <policyFqdns>GN_EVPN_Test</policyFqdns>

+   </contrailNetwork>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <networkParams>

+      <dhcp-enabled>true</dhcp-enabled>

+      <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>

+      <cidr-mask>true</cidr-mask>

+      <backoutOnFailure>true</backoutOnFailure>

+      <gateway-address>10.10.125.1</gateway-address>

+   </networkParams>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>null</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</createNetworkRequest>"""

+

+	  String createNetworkResponseREST =

+  """<ns2:createNetworkResponse xmlns:ns2="http://org.openecomp.mso/network">

+	<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+	<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+    <networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>

+	<networkStackId></networkStackId>

+	<networkCreated>true</networkCreated>

+	<subnetMap>

+		<entry>

+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+		</entry>

+		<entry>

+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+		</entry>

+	</subnetMap>

+	<rollback>

+		<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+		<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+		<networkStackId></networkStackId>

+		<networkType>CONTRAIL_EXTERNAL</networkType>

+		<networkCreated>true</networkCreated>

+		<tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+		<cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+		<msoRequest>

+			<requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+			<serviceInstanceId></serviceInstanceId>

+		</msoRequest>

+	</rollback>

+	<messageId>messageId_generated</messageId>

+</ns2:createNetworkResponse>"""

+

+	  String createRollbackNetworkRequest =

+	  """<rollbackNetworkRequest>

+   <networkRollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </networkRollback>

+</rollbackNetworkRequest>"""	

+	  

+	  String createNetworkResponse =

+	  """<ns2:createNetworkResponse xmlns:ns2="http://org.openecomp.mso/network"

+                                    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

+   <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+   <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+   <networkStackId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkStackId>

+	<networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>

+   <subnetIdMap>

+      <entry>

+         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+      </entry>

+   </subnetIdMap>

+   <rollback>

+      <cloudId>RDM2WAGPLCP</cloudId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+      <networkCreated>true</networkCreated>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkUpdated>false</networkUpdated>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   </rollback>

+</ns2:createNetworkResponse>"""

+

+	  String updateContrailAAIPayloadRequest =

+  """<l3-network xmlns="http://org.openecomp.aai.inventory/v9">

+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <network-role>dmz_direct</network-role>

+   <network-technology>Contrail</network-technology>

+   <neutron-network-id>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutron-network-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <network-role-instance>0</network-role-instance>

+   <resource-version>l3-version</resource-version>

+   <orchestration-status>Created</orchestration-status>

+   <contrail-network-fqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</contrail-network-fqdn>

+   <physical-network-name>networkName</physical-network-name>

+   <is-provider-network>false</is-provider-network>

+   <is-shared-network>true</is-shared-network>

+   <is-external-network>false</is-external-network>

+   <subnets>

+      <subnet>

+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>

+         <gateway-address>107.239.52.1</gateway-address>

+         <network-start-address>107.239.52.0</network-start-address>

+         <cidr-mask>24</cidr-mask>

+         <ip-version>4</ip-version>

+         <orchestration-status>Created</orchestration-status>

+         <dhcp-enabled>true</dhcp-enabled>

+         <subnet-name>subnetName</subnet-name>

+      </subnet>

+      <subnet>

+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>

+         <gateway-address>107.239.52.1</gateway-address>

+         <network-start-address>107.239.52.0</network-start-address>

+         <cidr-mask>24</cidr-mask>

+         <ip-version>4</ip-version>

+         <orchestration-status>Created</orchestration-status>

+         <dhcp-enabled>true</dhcp-enabled>

+         <subnet-name>subnetName</subnet-name>

+      </subnet>

+   </subnets>

+   <segmentation-assignments>

+      <segmentation-id>414</segmentation-id>

+      <resource-version>4132176</resource-version>

+   </segmentation-assignments>

+   <segmentation-assignments>

+      <segmentation-id>415</segmentation-id>

+      <resource-version>4132176</resource-version>

+   </segmentation-assignments>

+   <ctag-assignments>

+      <ctag-assignment>

+         <vlan-id-inner>inner</vlan-id-inner>

+         <resource-version>ctag-version</resource-version>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>tenant.tenant-name</property-key>

+                  <property-value>MSOTest1</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

+      </ctag-assignment>

+   </ctag-assignments>

+   <relationship-list>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>tenant</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+         <relationship-data>

+            <relationship-key>tenant.tenant-id</relationship-key>

+            <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>network-policy</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+         <relationship-data>

+            <relationship-key>network-policy.network-policy-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+   </relationship-list>

+</l3-network>"""

+

+String updateContrailAAIPayloadRequest_segmentation =

+"""<l3-network xmlns="http://org.openecomp.aai.inventory/v9">

+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <network-role>dmz_direct</network-role>

+   <network-technology>Contrail</network-technology>

+   <neutron-network-id>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutron-network-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <network-role-instance>0</network-role-instance>

+   <resource-version>l3-version</resource-version>

+   <orchestration-status>Created</orchestration-status>

+   <contrail-network-fqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</contrail-network-fqdn>

+   <physical-network-name>networkName</physical-network-name>

+   <is-provider-network>false</is-provider-network>

+   <is-shared-network>true</is-shared-network>

+   <is-external-network>false</is-external-network>

+   <subnets>

+      <subnet>

+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>

+         <gateway-address>107.239.52.1</gateway-address>

+         <network-start-address>107.239.52.0</network-start-address>

+         <cidr-mask>24</cidr-mask>

+         <ip-version>4</ip-version>

+         <orchestration-status>Created</orchestration-status>

+         <dhcp-enabled>true</dhcp-enabled>

+         <subnet-name>subnetName</subnet-name>

+      </subnet>

+      <subnet>

+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>

+         <gateway-address>107.239.52.1</gateway-address>

+         <network-start-address>107.239.52.0</network-start-address>

+         <cidr-mask>24</cidr-mask>

+         <ip-version>4</ip-version>

+         <orchestration-status>Created</orchestration-status>

+         <dhcp-enabled>true</dhcp-enabled>

+         <subnet-name>subnetName</subnet-name>

+      </subnet>

+   </subnets>

+   <segmentation-assignments>

+      <segmentation-assignment>

+         <segmentation-id>1</segmentation-id>

+         <resource-version>1498507569188</resource-version>

+      </segmentation-assignment>

+   </segmentation-assignments>

+   <ctag-assignments>

+      <ctag-assignment>

+         <vlan-id-inner>inner</vlan-id-inner>

+         <resource-version>ctag-version</resource-version>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>tenant.tenant-name</property-key>

+                  <property-value>MSOTest1</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

+      </ctag-assignment>

+   </ctag-assignments>

+   <relationship-list>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>tenant</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+         <relationship-data>

+            <relationship-key>tenant.tenant-id</relationship-key>

+            <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>network-policy</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+         <relationship-data>

+            <relationship-key>network-policy.network-policy-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+   </relationship-list>

+</l3-network>"""

+

+	  String updateContrailAAIResponse =

+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Content-Length" value="0"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+</rest:RESTResponse>"""

+

+	  String createNetworkErrorResponse =

+	  """<createNetworkError>

+		 <messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>

+		 <message>400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.network.properties: : Unknown Property network_ipam_refs_data</message>

+		 <rolledBack>true</rolledBack>

+	   </createNetworkError>"""

+

+

+  String networkException500 =

+  """<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>"http://org.openecomp.mso/network", the namespace on the "createNetworkContrail" element, is not a valid SOAP version.</faultstring></soap:Fault></soap:Body></soap:Envelope>"""

+

+	String aaiResponse =

+   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+					 statusCode="200">

+	 <rest:headers>

+		<rest:header name="Transfer-Encoding" value="chunked"/>

+		<rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>

+		<rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		<rest:header name="X-AAI-TXID"

+					 value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>

+		<rest:header name="Content-Type" value="application/xml"/>

+		<rest:header name="Server" value="Apache-Coyote/1.1"/>

+		<rest:header name="Cache-Control" value="private"/>

+	 </rest:headers>

+	 <rest:payload contentType="text/xml">

+		<l3-network xmlns="http://org.openecomp.aai.inventory/v3">

+		   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+		   <network-name>HSL_direct_net_2</network-name>

+		   <network-type>CONTRAIL_BASIC</network-type>

+		   <network-role>HSL_direct</network-role>

+		   <network-technology>contrail</network-technology>

+		   <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>

+		   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		   <orchestration-status>active</orchestration-status>

+		   <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>

+		   <subnets>

+			  <subnet>

+				 <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>

+				 <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>

+				 <gateway-address>172.16.34.1</gateway-address>

+				 <network-start-address>172.16.34.0</network-start-address>

+				 <cidr-mask>28</cidr-mask>

+				 <ip-version>4</ip-version>

+				 <orchestration-status>active</orchestration-status>

+				 <dhcp-enabled>true</dhcp-enabled>

+				 <relationship-list/>

+			  </subnet>

+		   </subnets>

+		   <relationship-list>

+			  <relationship>

+				 <related-to>tenant</related-to>

+				 <related-link>https://aai-app-e2e.test.com:8443/aai/v3/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>

+				 <relationship-data>

+					<relationship-key>tenant.tenant-id</relationship-key>

+					<relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>

+				 </relationship-data>

+			  </relationship>

+		   </relationship-list>

+		</l3-network>

+	 </rest:payload>

+  </rest:RESTResponse>"""

+

+	String assignSDNCRequest =

+    """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>assign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>NetworkActivateRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-request-information>

+         <network-id>networkId</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String assignSDNCRequest_decodeUrlLink =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>assign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>NetworkActivateRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>VIRTUAL USP</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-request-information>

+         <network-id>networkId</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String assignRpcSDNCRequest =

+    """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>assign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>networkId</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String activateSDNCRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>activate</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>networkId</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String assignResponse =

+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sdncadapterworkflow:response-data> <tag0:CallbackHeader> <tag0:RequestId>006927ca-f5a3-47fd-880c-dfcbcd81a093</tag0:RequestId> <tag0:ResponseCode>200</tag0:ResponseCode> <tag0:ResponseMessage>OK</tag0:ResponseMessage> </tag0:CallbackHeader> <tag0:RequestData xsi:type="xs:string"><output xmlns="com:att:sdnctl:vnf"><response-code>200</response-code><svc-request-id>006927ca-f5a3-47fd-880c-dfcbcd81a093</svc-request-id><ack-final-indicator>Y</ack-final-indicator><service-information><subscriber-name>notsurewecare</subscriber-name><service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id><service-instance-id>GN_EVPN_direct_net_0_ST_noGW</service-instance-id></service-information><network-information><network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id></network-information></output></tag0:RequestData> </sdncadapterworkflow:response-data> </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+  String sdncRollbackRequest =

+			  """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>NetworkActivateRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String sdncRpcRollbackRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>unassign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>DeleteNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String sdncActivateRollbackRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>deactivate</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>DeleteNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+	   String sdncAdapterWorkflowResponse =

+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+   <sdncadapterworkflow:response-data>

+<tag0:CallbackHeader xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>

+   <tag0:ResponseCode>200</tag0:ResponseCode>

+   <tag0:ResponseMessage>OK</tag0:ResponseMessage>

+</tag0:CallbackHeader>

+   <tag0:RequestData xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"

+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+                  xsi:type="xs:string">&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;00703dc8-71ff-442d-a4a8-3adc5beef6a9&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+

+	  String sdncAdapterWorkflowResponse_Error =

+	  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"

+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+                                                 xmlns="com:att:sdnctl:vnf">

+   <sdncadapterworkflow:response-data>

+      <tag0:RequestData xsi:type="xs:string">

+         <output>

+            <response-code>400</response-code>

+            <response-message>Error writing to l3-netework</response-message>

+            <ack-final-indicator>Y</ack-final-indicator>

+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>

+         </output>

+      </tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+	  String expected_sdncAdapterWorkflowResponse_Error =

+  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns="com:att:sdnctl:vnf"

+                                                 xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"

+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+   <sdncadapterworkflow:response-data>

+      <tag0:RequestData xsi:type="xs:string">

+         <output>

+            <response-code>400</response-code>

+            <response-message>Error writing to l3-netework</response-message>

+            <ack-final-indicator>Y</ack-final-indicator>

+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>

+         </output>

+      </tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+	  String sdncAdapterWorkflowFormattedResponse =

+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns="com:att:sdnctl:vnf">

+   <aetgt:response-data>

+      <output>

+         <svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id>

+         <response-code>200</response-code>

+         <ack-final-indicator>Y</ack-final-indicator>

+         <network-information>

+            <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         </network-information>

+         <service-information>

+            <service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+            <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+            <subscriber-name>notsurewecare</subscriber-name>

+         </service-information>

+      </output>

+   </aetgt:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+String sdncAdapterWorkflowAssignResponse =

+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1"

+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+	<sdncadapterworkflow:response-data>

+		<tag0:CallbackHeader>

+			<tag0:RequestId>79ec9006-3695-4fcc-93a8-be6f9e248beb</tag0:RequestId>

+			<tag0:ResponseCode>200</tag0:ResponseCode>

+			<tag0:ResponseMessage>OK</tag0:ResponseMessage>

+		</tag0:CallbackHeader>

+		<tag0:RequestData xsi:type="xs:string">

+			<output xmlns="com:att:sdnctl:generic-resource">

+				<response-message/>

+				<svc-request-id>79ec9006-3695-4fcc-93a8-be6f9e248beb</svc-request-id>

+				<service-response-information>

+					<instance-id>f805ec2b-b4d8-473e-8325-67f110139e5d</instance-id>

+				</service-response-information>

+				<response-code>200</response-code>

+				<network-response-information>

+					<instance-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</instance-id>

+					<object-path>restconf/config/GENERIC-RESOURCE-API:services/service/f805ec2b-b4d8-473e-8325-67f110139e5d/service-data/networks/network/f7e4db56-aab5-4065-8e65-cec1cd1de24f</object-path>

+				</network-response-information>

+				<ack-final-indicator>Y</ack-final-indicator>

+			</output>

+		</tag0:RequestData>

+	</sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+		String rollbackNetworkRequest =

+"""<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""

+

+			String rollbackActivateSDNCRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+			String rollbackSDNCRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+// - - - - - - - -

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+

+		}

+

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "networkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", null)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", "")

+			//verify(mockExecution).setVariable(Prefix + "requestId", "")

+			verify(mockExecution).setVariable(Prefix + "messageId", "")

+			verify(mockExecution).setVariable(Prefix + "source", "")

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "")

+			verify(mockExecution).setVariable(Prefix + "serviceInstanceId","")

+			verify(mockExecution).setVariable("GENGS_type","")

+			verify(mockExecution).setVariable(Prefix + "rsrc_endpoint", null)

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", "")

+			verify(mockExecution).setVariable(Prefix + "networkId","")

+			verify(mockExecution).setVariable(Prefix + "networkName","")

+

+			// AAI query Name

+			verify(mockExecution).setVariable(Prefix + "queryNameAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryNameAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiNameReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isAAIqueryNameGood", false)

+

+			// AAI query Cloud Region

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", false)

+

+			// AAI query Id

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "")

+

+			// AAI query vpn binding

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", null)

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 0)

+			verify(mockExecution).setVariable(Prefix + "routeCollection", "")

+

+			// AAI query network policy

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", null)

+			verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)

+			verify(mockExecution).setVariable(Prefix + "networkCollection", "")

+

+			// AAI query route table reference

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", null)

+			verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)

+			verify(mockExecution).setVariable(Prefix + "tableRefCollection", "")

+

+			// AAI requery Id

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "")

+

+			// AAI update contrail

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest","")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest","")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "")

+

+			verify(mockExecution).setVariable(Prefix + "createNetworkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "createNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "networkReturnCode", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", false)

+

+			verify(mockExecution).setVariable(Prefix + "assignSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "assignSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", false)

+			verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)

+

+			verify(mockExecution).setVariable(Prefix + "activateSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "activateSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCRequest", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "sdncActivateReturnCode", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isSdncActivateRollbackNeeded", false)

+			verify(mockExecution).setVariable(Prefix + "sdncActivateResponseSuccess", false)

+

+			verify(mockExecution).setVariable(Prefix + "orchestrationStatus", "")

+			verify(mockExecution).setVariable(Prefix + "isVnfBindingPresent", false)

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+

+			verify(mockExecution).setVariable(Prefix + "isException", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_vIPR_NetworkRequest() {

+

+			println "************ preProcessRequest_Payload ************* "

+

+		  def networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111",

+                                     "modelName": "CONTRAIL_EXTERNAL",

+									 "modelType": "CONTRAIL_EXTERNAL",

+									 "modelVersion": "1",

+									 "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222",

+									 "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764"

+									}""".trim()

+

+		 def serviceModelInfo = """{"modelUuid": "36a3a8ea-49a6-4ac8-b06c-89a54544b9b6",

+                                     "modelName": "HNGW Protected OAM",

+									 "modelType": "service",

+									 "modelVersion": "1.0",

+									 "modelInvariantUuid": "fcc85cb0-ad74-45d7-a5a1-17c8744fdb71"

+									}""".trim()

+

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+

+			// Pre-defined value, testing Only

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			// Inputs:

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("networkId")).thenReturn("networkId")                                // optional

+			when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1")        // optional

+			when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL")

+			when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266")

+			when(mockExecution.getVariable("failIfExists")).thenReturn("false")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)

+			when(mockExecution.getVariable("serviceModelInfo")).thenReturn(serviceModelInfo)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable("action")).thenReturn("CREATE")

+			when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type")

+			when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678")

+

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc")

+

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "CREATE")

+			verify(mockExecution).setVariable(Prefix + "networkId","")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedvIPRNetworkRequest)

+			verify(mockExecution, atLeast(1)).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedvIPRNetworkInputs)

+			//verify(mockExecution).setVariable(Prefix + "requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable("mso-service-instance-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable(Prefix + "serviceInstanceId","f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			verify(mockExecution, atLeast(1)).setVariable("GENGS_type", "service-instance")

+			//verify(mockExecution, atLeast(1)).setVariable("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution, atLeast(1)).setVariable("msoRequestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable("mso-service-instance-id","88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "networkId","")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", networkvIPROutputs)

+			verify(mockExecution).setVariable(Prefix + "networkName","")

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_JSON_NetworkRequest() {

+

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+

+			// Pre-defined value, testing Only

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			// Inputs:

+			// when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("requestAction")).thenReturn("CREATE")

+			when(mockExecution.getVariable("networkId")).thenReturn("networkId")                                // optional

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)                      // JSON format

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")                      // 1610 default

+			when(mockExecution.getVariable("disableRollback")).thenReturn(true)

+			

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "CREATE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedJSONNetworkRequest)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedJSONNetworkInputs)

+			//verify(mockExecution).setVariable(Prefix + "requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable(Prefix + "serviceInstanceId","f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			verify(mockExecution, atLeast(1)).setVariable("GENGS_type", "service-instance")

+			//verify(mockExecution, atLeast(1)).setVariable("msoRequestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable("mso-service-instance-id","88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "networkId","")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", networkJSONOutputs)

+			verify(mockExecution).setVariable(Prefix + "networkName","")

+

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_XML_NetworkRequest() {

+

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+

+			// Pre-defined value, testing Only

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			// Inputs:

+			// when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(xmlIncomingRequest)                      // XML format

+

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedXMLNetworkRequest)

+			verify(mockExecution).setVariable("action", "CREATE")

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", true)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedXMLNetworkInputs)

+			//verify(mockExecution).setVariable(Prefix + "requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "source", "PORTAL")

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable(Prefix + "serviceInstanceId","MNS-25180-L-01-dmz_direct_net_1")

+			verify(mockExecution, atLeast(1)).setVariable("GENGS_type", "service-instance")

+			//verify(mockExecution).setVariable("mso-service-instance-id","88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution, atLeast(1)).setVariable(Prefix + "networkId","")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", networkXMLOutputs)

+			verify(mockExecution).setVariable(Prefix + "networkName","")

+

+		}

+

+

+

+		@Test

+		//@Ignore

+		public void prepareCreateNetworkRequest() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareCreateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "createNetworkRequest", createNetworkRequest)

+

+		}

+		

+		

+		@Test

+		//@Ignore

+		public void prepareCreateNetworkRequest_Ipv4() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse_Ipv4)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareCreateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "createNetworkRequest", createNetworkRequest)

+

+		}

+		

+		@Test

+		//@Ignore

+		public void prepareCreateNetworkRequest_AlaCarte() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedJSONNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareCreateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "createNetworkRequest", createNetworkRequestAlaCarte)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareCreateNetworkRequest_SRIOV() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse_SRIOV)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareCreateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "createNetworkRequest", createNetworkRequest_SRIOV)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRequest() {

+

+			println "************ prepareSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("networkId")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareSDNCRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "assignSDNCRequest", assignSDNCRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRequest_decodeUrlLink() {

+

+			println "************ prepareSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("networkId")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/VIRTUAL%20USP/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareSDNCRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "assignSDNCRequest", assignSDNCRequest_decodeUrlLink)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCRequest() {

+

+			println "************ prepareRpcSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("networkId")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareRpcSDNCRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "assignSDNCRequest", assignRpcSDNCRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRollbackRequest() {

+

+			println "************ prepareSDNCRollbackRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "assignSDNCResponse")).thenReturn(assignResponse)

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("8abc633a-810b-4ca5-8b3a-09511d13a2ce")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareSDNCRollbackRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRollbackRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCActivateRequest() {

+

+			println "************ prepareRpcSDNCActivateRequest ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("networkId")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareRpcSDNCActivateRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "activateSDNCRequest", activateSDNCRequest)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCRollbackRequest() {

+

+			println "************ prepareRpcSDNCRollbackRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "assignSDNCResponse")).thenReturn(assignResponse)

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("8abc633a-810b-4ca5-8b3a-09511d13a2ce")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareRpcSDNCRollbackRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRpcRollbackRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCActivateRollback() {

+

+			println "************ prepareRpcSDNCActivateRollback ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "activateSDNCResponse")).thenReturn(assignResponse)

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("8abc633a-810b-4ca5-8b3a-09511d13a2ce")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareRpcSDNCActivateRollback(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			//verify(mockExecution).setVariable("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable(Prefix + "requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable("mso-service-instance-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "rollbackActivateSDNCRequest", sdncActivateRollbackRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkName_200() {

+

+			println "************ callRESTQueryAAINetworkName ************* "

+

+			WireMock.reset();

+			MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(networkInputs)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkName(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryNameAAIRequest", "http://localhost:8090/aai/v8/network/l3-networks/l3-network?network-name=MNS-25180-L-01-dmz_direct_net_1")

+

+			verify(mockExecution).setVariable(Prefix + "aaiNameReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "orchestrationStatus", "PENDING-CREATE")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkName_404() {

+

+			println "************ callRESTQueryAAINetworkName ************* "

+

+			WireMock.reset();

+			MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(networkInputs_404)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkName(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryNameAAIRequest", "http://localhost:8090/aai/v8/network/l3-networks/l3-network?network-name=myOwn_Network")

+			verify(mockExecution).setVariable(Prefix + "aaiNameReturnCode", "404")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkId_200() {

+

+			println "************ callRESTQueryAAINetworkId ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "assignSDNCResponse")).thenReturn(sdncAdapterWorkflowAssignResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkId(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion30_200() {

+

+			println "************ callRESTQueryAAICloudRegion30_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			//

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion25_200() {

+

+			println "************ callRESTQueryAAICloudRegion25_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedvIPRNetworkRequest)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			//

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion_NotFound() {

+

+			println "************ callRESTQueryAAICloudRegionFake ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion_404("MDTWNJ21")

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestFakeRegion)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			//old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			//

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/MDTWNJ21")

+			verify(mockExecution, atLeast(1)).setVariable(Prefix + "queryCloudRegionReturnCode", "404")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_200() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse) // v6

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_vpn-binding_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_vpn-binding_uri")).thenReturn("")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 2)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_TestScenario01_200() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponseTestScenario01)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_vpn-binding_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_vpn-binding_uri")).thenReturn("")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 1)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			//when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			//when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 2)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_NotPresent() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponseVpnNotPresent)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			//when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 0)

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", aaiVpnResponseStub)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkPolicy_200() {

+

+			println "************ callRESTQueryAAINetworkPolicy_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			//when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_policy_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_policy_uri")).thenReturn("/aai/v8/network/network-policies/network-policy")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_network_policy_uri")).thenReturn("/aai/v8/network/network-policies/network-policy")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkPolicy(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 1)

+			verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", ['/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest", "http://localhost:8090/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg?depth=all")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkTableRef_200() {

+

+			println "************ callRESTQueryAAINetworkTableRef_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");

+			MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_table_reference_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_table_reference_uri")).thenReturn("")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_route_table_reference_uri")).thenReturn("/aai/v8/network/route-table-references/route-table-reference")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTQueryAAINetworkTableRef(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 2)

+			verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", ['/aai/v8/network/route-table-references/route-table-reference/refFQDN1','/aai/v8/network/route-table-references/route-table-reference/refFQDN2'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest", "http://localhost:8090/aai/v8/network/route-table-references/route-table-reference/refFQDN1?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTReQueryAAINetworkId_200() {

+

+			println "************ callRESTReQueryAAINetworkId ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			//when(mockExecution.getVariable("URN_mso_workflow_default_aai_l3_network_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			//old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTReQueryAAINetworkId(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTUpdateContrailAAINetworkREST_200() {

+

+			println "************ callRESTUpdateContrailAAINetwork ************* "

+

+			WireMock.reset();

+			MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "createNetworkResponse")).thenReturn(createNetworkResponseREST)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("false")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest", updateContrailAAIPayloadRequest)

+			verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", updateContrailAAIResponse)

+			verify(mockExecution).setVariable(Prefix + "isPONR", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTUpdateContrailAAINetworkREST_200_segmentation() {

+

+			println "************ callRESTUpdateContrailAAINetwork ************* "

+

+			WireMock.reset();

+			MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse_segmentation)

+			when(mockExecution.getVariable(Prefix + "createNetworkResponse")).thenReturn(createNetworkResponseREST)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoCreateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("false")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest", updateContrailAAIPayloadRequest_segmentation)

+			verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", updateContrailAAIResponse)

+			verify(mockExecution).setVariable(Prefix + "isPONR", true)

+

+		}

+

+		

+

+		@Test

+		//@Ignore

+		public void validateCreateNetworkResponseREST() {

+

+			println "************ validateNetworkResponse ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "createNetworkResponse")).thenReturn(createNetworkResponseREST)

+			when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200')

+

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.validateCreateNetworkResponse(mockExecution)

+

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "createNetworkResponse", createNetworkResponseREST)

+			verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", true)

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", createRollbackNetworkRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateCreateNetworkResponseREST_Error() {

+

+			println "************ validateNetworkResponse ************* "

+

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "createNetworkResponse")).thenReturn(networkException500)

+			when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('500')

+

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			try {

+				DoCreateNetworkInstance.validateCreateNetworkResponse(mockExecution)

+			} catch (Exception ex) {

+				println " Test End - Handle catch-throw BpmnError()! "

+			}

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(workflowException, any(WorkflowException.class)))

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse() {

+

+			println "************ validateSDNCResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "assignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true)

+

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			try {

+			  DoCreateNetworkInstance.validateSDNCResponse(mockExecution)

+			  verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+

+			} catch (Exception ex) {

+				println " Graceful Exit - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			//verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse_Error() {

+

+			println "************ validateSDNCResponse ************* "

+

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from SNDC Adapter: HTTP Status 500.")

+

+			//ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "assignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+

+

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			try {

+				DoCreateNetworkInstance.validateSDNCResponse(mockExecution)

+			} catch (Exception ex) {

+				println " Graceful Exit! - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			//verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateRpcSDNCActivateResponse() {

+

+			println "************ validateRpcSDNCActivateResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "activateSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)

+			when(mockExecution.getVariable(Prefix + "sdncActivateReturnCode")).thenReturn("200")

+

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			try {

+			  DoCreateNetworkInstance.validateRpcSDNCActivateResponse(mockExecution)

+			  verify(mockExecution).setVariable(Prefix + "isSdncActivateRollbackNeeded", true)

+

+			} catch (Exception ex) {

+				println " Graceful Exit - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			//verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRollbackData() {

+

+			println "************ prepareRollbackData() ************* "

+

+

+

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCRequest")).thenReturn(rollbackActivateSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackNetworkRequest)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.prepareRollbackData(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+		}

+

+		@Test

+		@Ignore

+		public void postProcessResponse() {

+

+			println "************ postProcessResponse() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(sdncRpcRollbackRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackActivateSDNCRequest")).thenReturn(sdncActivateRollbackRequest)

+

+

+			// preProcessRequest(Execution execution)

+			DoCreateNetworkInstance DoCreateNetworkInstance = new DoCreateNetworkInstance()

+			DoCreateNetworkInstance.postProcessResponse(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+

+		}

+

+		private ExecutionEntity setupMock() {

+

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoCreateNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoCreateNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoCreateNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoCreateNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+		}

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy
deleted file mode 100644
index e9c27b0..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy
+++ /dev/null
@@ -1,218 +0,0 @@
-/*- 

- * ============LICENSE_START======================================================= 

- * OPENECOMP - MSO 

- * ================================================================================ 

- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 

- * ================================================================================ 

- * Licensed under the Apache License, Version 2.0 (the "License"); 

- * you may not use this file except in compliance with the License. 

- * You may obtain a copy of the License at 

- * 

- *      http://www.apache.org/licenses/LICENSE-2.0 

- * 

- * Unless required by applicable law or agreed to in writing, software 

- * distributed under the License is distributed on an "AS IS" BASIS, 

- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

- * See the License for the specific language governing permissions and 

- * limitations under the License. 

- * ============LICENSE_END========================================================= 

- */ 

-

-package org.openecomp.mso.bpmn.infrastructure.scripts;

-

-import static org.junit.Assert.*

-import static org.mockito.Mockito.*

-

-import org.apache.commons.lang3.*

-import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

-import org.junit.Assert

-import org.junit.Before

-import org.junit.Test

-import org.junit.runner.RunWith

-import org.mockito.ArgumentCaptor

-import org.mockito.MockitoAnnotations

-import org.mockito.runners.MockitoJUnitRunner

-import org.openecomp.mso.bpmn.common.scripts.MsoGroovyTest

-

-

-@RunWith(MockitoJUnitRunner.class)

-class DoCreateVfModuleVolumeV1Test extends MsoGroovyTest  {

-	

-	def volumeRequest =

-"""<volume-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">

-	<request-info>

-		<test-data-only>123abc</test-data-only> <!-- don't remove this tag. Its used for junit test -->

-		<request-id>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</request-id>

-		<action>CREATE_VF_MODULE_VOL</action>

-		<source>SoapUI-bns-create-base-vol-1001-1</source>

-	</request-info>

-	<volume-inputs>

-		<vnf-type>Test/vSAMP12</vnf-type>

-		<vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>

-		<backout-on-failure>true</backout-on-failure>

-		<asdc-service-model-version>2.0</asdc-service-model-version>

-		<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

-		<aic-cloud-region>MDTWNJ21</aic-cloud-region>

-		<tenant-id>897deadc2b954a6bac6d3c197fb3525e</tenant-id>

-		<volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>

-		<volume-group-id/>

-	</volume-inputs>

-	<volume-params>

-		<param name="param1">value1</param>"

-		<param name="param2">value2</param>"

-		<param name="param3">value3</param>"

-	</volume-params>	

-</volume-request>"""

-

-	def genericVnfResponseXml = """

-<generic-vnf xmlns="http://org.openecomp.aai.inventory/v8">

-	<vnf-id>TEST-VNF-ID-0123</vnf-id>

-	<vnf-name>STMTN5MMSC20</vnf-name>

-	<vnf-type>pcrf-capacity</vnf-type>

-	<service-id>SDN-MOBILITY</service-id>

-	<equipment-role>vPCRF</equipment-role>

-	<orchestration-status>pending-create</orchestration-status>

-	<in-maint>false</in-maint>

-	<is-closed-loop-disabled>false</is-closed-loop-disabled>

-	<persona-model-id>introvert</persona-model-id>

-	<persona-model-version>2.0</persona-model-version>

-	<resource-version>0000020</resource-version>

-	<vf-modules>

-		<vf-module>

-			<vf-module-id>lukewarm</vf-module-id>

-			<vf-module-name>PCRF::module-0-0</vf-module-name>

-			<persona-model-id>introvert</persona-model-id>

-			<persona-model-version>2.0</persona-model-version>

-			<is-base-vf-module>true</is-base-vf-module>

-			<heat-stack-id>fastburn</heat-stack-id>

-			<orchestration-status>pending-create</orchestration-status>

-			<resource-version>0000074</resource-version>

-		</vf-module>

-		<vf-module>

-			<vf-module-id>supercool</vf-module-id>

-			<vf-module-name>PCRF::module-1-0</vf-module-name>

-			<persona-model-id>extrovert</persona-model-id>

-			<persona-model-version>2.0</persona-model-version>

-			<is-base-vf-module>false</is-base-vf-module>

-			<heat-stack-id>slowburn</heat-stack-id>

-			<orchestration-status>pending-create</orchestration-status>

-			<resource-version>0000075</resource-version>

-		</vf-module>

-	</vf-modules>

-	<relationship-list/>

-	<l-interfaces/>

-	<lag-interfaces/>

-</generic-vnf>

-"""		

-	def String expectedCreateVnfRequestXml = """<createVolumeGroupRequest>

-   <cloudSiteId>MDTWNJ21</cloudSiteId>

-   <tenantId>897deadc2b954a6bac6d3c197fb3525e</tenantId>

-   <vnfId>TEST-VNF-ID-0123</vnfId>

-   <vnfName>STMTN5MMSC20</vnfName>

-   <volumeGroupId>test-vol-group-id-123</volumeGroupId>

-   <volumeGroupName>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volumeGroupName>

-   <vnfType>Test/vSAMP12</vnfType>

-   <vnfVersion>2.0</vnfVersion>

-   <vfModuleType>vSAMP12::base::module-0</vfModuleType>

-   <modelCustomizationUuid/>

-   <volumeGroupParams>

-      <entry>

-         <key>vnf_id</key>

-         <value>TEST-VNF-ID-0123</value>

-      </entry>

-      <entry>

-         <key>vnf_name</key>

-         <value>STMTN5MMSC20</value>

-      </entry>

-      <entry>

-         <key>vf_module_id</key>

-         <value>test-vol-group-id-123</value>

-      </entry>

-      <entry>

-         <key>vf_module_name</key>

-         <value>MSOTESTVOL101a-vSAMP12_base_vol_module-0</value>

-      </entry>

-      <entry>

-         <key>param1</key>

-         <value>value1</value>

-      </entry>

-      <entry>

-         <key>param2</key>

-         <value>value2</value>

-      </entry>

-      <entry>

-         <key>param3</key>

-         <value>value3</value>

-      </entry>

-   </volumeGroupParams>

-   <skipAAI>true</skipAAI>

-   <backout>true</backout>

-   <failIfExists>true</failIfExists>

-   <msoRequest>

-      <requestId>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</requestId>

-      <serviceInstanceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceInstanceId>

-   </msoRequest>

-   <messageId>111</messageId>

-   <notificationUrl>http://localhost:28080/mso/WorkflowMessage/12345678</notificationUrl>

-</createVolumeGroupRequest>

-"""

-

-    @Before

-	public void init()

-	{

-		MockitoAnnotations.initMocks(this)

-		

-	}

-	

-	@Test

-	public void TestPreProcessRequest() {

-		

-		ExecutionEntity mockExecution = setupMock('DoCreateVfModuleVolumeV1')

-		

-		when(mockExecution.getVariable("DoCreateVfModuleVolumeV1Request")).thenReturn(volumeRequest)

-		when(mockExecution.getVariable("vnf-id")).thenReturn('test-vnf-id-123')

-		when(mockExecution.getVariable("volume-group-id")).thenReturn('test-volume-group-id-123')

-		when(mockExecution.getVariable("mso-request-id")).thenReturn('test-request-id-123')

-								

-		DoCreateVfModuleVolumeV1 myprocess = new DoCreateVfModuleVolumeV1()

-		myprocess.preProcessRequest(mockExecution, 'true')

-		

-		verify(mockExecution).setVariable('DCVFMODVOLV1_serviceId', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb')

-		verify(mockExecution).setVariable('DCVFMODVOLV1_source', 'SoapUI-bns-create-base-vol-1001-1')

-		verify(mockExecution, times(7)).setVariable(anyString(), anyString())

-	}

-	

-	@Test

-	public void TestPrepareVnfAdapterCreateRequest() {

-		

-		ExecutionEntity mockExecution = setupMock('DoCreateVfModuleVolumeV1')

-		

-		when(mockExecution.getVariable("DCVFMODVOLV1_Request")).thenReturn(volumeRequest)

-		when(mockExecution.getVariable("DCVFMODVOLV1_requestId")).thenReturn('d8d4fcfa-fd7e-4413-b19d-c95aa67291b8')

-		when(mockExecution.getVariable("DCVFMODVOLV1_serviceId")).thenReturn('a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb')

-		when(mockExecution.getVariable("DCVFMODVOLV1_AAIQueryGenericVfnResponse")).thenReturn(genericVnfResponseXml)

-		when(mockExecution.getVariable("DCVFMODVOLV1_rollbackEnabled")).thenReturn(true)

-		when(mockExecution.getVariable("volume-group-id")).thenReturn('test-vol-group-id-123')

-		when(mockExecution.getVariable("URN_mso_workflow_message_endpoint")).thenReturn('http://localhost:28080/mso/WorkflowMessage')

-		when(mockExecution.getVariable("URN_mso_use_qualified_host")).thenReturn(true)

-								

-		DoCreateVfModuleVolumeV1 myprocess = new DoCreateVfModuleVolumeV1()

-		myprocess.prepareVnfAdapterCreateRequest(mockExecution, 'true')

-		

-		// Capture the arguments to setVariable

-		ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

-		ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

-		

-		verify(mockExecution, times(2)).setVariable(captor1.capture(), captor2.capture())

-		

-		List<String> arg2List = captor2.getAllValues()

-		String createVnfRequestXml = arg2List.get(0)

-		

-		//replace messageID value because it is random generated

-		createVnfRequestXml = createVnfRequestXml.replaceAll("<messageId>(.+?)</messageId>", "<messageId>111</messageId>")

-												 .replaceAll("<notificationUrl>(.+?)</notificationUrl>", "<notificationUrl>http://localhost:28080/mso/WorkflowMessage/12345678</notificationUrl>")

-		

-		Assert.assertEquals(expectedCreateVnfRequestXml.trim(), createVnfRequestXml.trim())

-	}

-

-}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollbackTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollbackTest.groovy
new file mode 100644
index 0000000..96a84de
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceRollbackTest.groovy
@@ -0,0 +1,323 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.impl.pvm.process.ProcessDefinitionImpl

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution;

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.junit.Before

+import org.junit.Rule;

+import org.junit.Test

+import org.junit.Ignore

+import org.junit.runner.RunWith

+

+import static org.junit.Assert.*;

+

+import com.github.tomakehurst.wiremock.client.WireMock;

+import com.github.tomakehurst.wiremock.junit.WireMockRule;

+

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DoDeleteNetworkInstanceRollbackTest  {

+	

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+	

+		def utils = new MsoUtils()

+		String Prefix="DELNWKIR_"

+

+

+		String rollbackNetworkRequest =

+		"""<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""			

+								

+					String rollbackDeActivateSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>activate</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""			

+		

+					String rollbackSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""			

+		

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+			

+		}

+		

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "WorkflowException", null)

+		

+			verify(mockExecution).setVariable(Prefix + "rollbackDeactivateSDNCRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackDeactivateSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackDeactivateSDNCReturnCode", "")

+	

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")

+					

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			verify(mockExecution).setVariable(Prefix + "fullRollback", false)

+			

+		}

+		

+		@Test

+		//@Ignore  

+		public void preProcessRequest() {

+			

+			println "************ preProcessRequest ************* " 

+			

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackDeactivateSDNCRequest", rollbackDeActivateSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+					

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc")

+			

+			

+			// preProcessRequest(Execution execution)						

+			DoDeleteNetworkInstanceRollback DoDeleteNetworkInstanceRollback = new DoDeleteNetworkInstanceRollback()

+			DoDeleteNetworkInstanceRollback.preProcessRequest(mockExecution)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+			

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+								

+		}

+		

+

+		@Test

+		//@Ignore

+		public void validateRollbackResponses_Good() {

+			

+			WorkflowException workflowException = new WorkflowException("DoDeleteNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404.")

+			WorkflowException expectedWorkflowException = new WorkflowException("DoDeleteNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404. + SNDC deactivate rollback completed. + PO Network rollback completed. + SNDC unassign rollback completed.")

+				  

+			println "************ validateRollbackResponses_Good() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(false)

+									

+			DoDeleteNetworkInstanceRollback DoDeleteNetworkInstanceRollback = new DoDeleteNetworkInstanceRollback()

+			DoDeleteNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+			

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rolledBack", true)

+			verify(mockExecution, atLeast(1)).setVariable("wasDeleted", true)

+			verify(mockExecution).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))

+			//verify(mockExecution).setVariable("WorkflowException", expectedWorkflowException)

+		}

+		

+		@Test

+		//@Ignore

+		public void validateRollbackResponses_FullRollback() {

+			

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackDeactivateSDNCRequest", rollbackDeActivateSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+				  

+			println "************ validateRollbackResponses_FullRollback() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "WorkflowException")).thenReturn(null)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(true)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+									

+			DoDeleteNetworkInstanceRollback DoDeleteNetworkInstanceRollback = new DoDeleteNetworkInstanceRollback()

+			DoDeleteNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+			

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackSuccessful", true)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackError", false)

+			

+		}

+		

+		

+		private ExecutionEntity setupMock() {

+			

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoDeleteNetworkInstanceRollback")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoDeleteNetworkInstanceRollback")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+			

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoDeleteNetworkInstanceRollback")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoDeleteNetworkInstanceRollback")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+			

+			return mockExecution

+		}

+		

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceTest.groovy
new file mode 100644
index 0000000..0f87b64
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoDeleteNetworkInstanceTest.groovy
@@ -0,0 +1,1929 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion_404;

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Ignore

+import org.junit.Rule

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import com.github.tomakehurst.wiremock.client.WireMock

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DoDeleteNetworkInstanceTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+

+		def utils = new MsoUtils()

+		String Prefix="DELNWKI_"

+

+		String incomingJsonRequest =

+		"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "network",

+  			"modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1.0"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "HSL_direct_net_2",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+            "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": []

+		  }

+  }"""

+

+  String expectedDoDeleteNetworkInstanceRequest =

+  """{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "networkTyp",

+  			"modelId": "modelId",

+  			"modelNameVersionId": "modelNameVersionId",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "HSL_direct_net_2",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+            "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": []

+		  }

+  }"""

+

+    // expectedVnfRequest

+	String expectedNetworkRequest =

+"""<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+      <network-name>HSL_direct_net_2</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+	String expectedVperNetworkRequest =

+"""<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+      <global-customer-id>globalId_45678905678</global-customer-id>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <failIfExist>false</failIfExist>

+      <networkModelInfo>

+         <modelName>CONTRAIL_EXTERNAL</modelName>

+         <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+         <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+         <modelVersion>1</modelVersion>

+         <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+      </networkModelInfo>

+      <serviceModelInfo>

+         <modelName/>

+         <modelUuid/>

+         <modelInvariantUuid/>

+         <modelVersion/>

+         <modelCustomizationUuid/>

+      </serviceModelInfo>

+      <sdncVersion>1702</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""	 

+

+	String expected_networkInput =

+	"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>HSL_direct_net_2</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+	String expectedVper_networkInput = 

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+   <global-customer-id>globalId_45678905678</global-customer-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <failIfExist>false</failIfExist>

+   <networkModelInfo>

+      <modelName>CONTRAIL_EXTERNAL</modelName>

+      <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+      <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+      <modelVersion>1</modelVersion>

+      <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   </networkModelInfo>

+   <serviceModelInfo>

+      <modelName/>

+      <modelUuid/>

+      <modelInvariantUuid/>

+      <modelVersion/>

+      <modelCustomizationUuid/>

+   </serviceModelInfo>

+   <sdncVersion>1702</sdncVersion>

+</network-inputs>"""	

+

+// emptyRegionVnfRequest

+String emptyRegionVnfRequest =

+"""<network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>PORTAL</source>

+   </request-info>

+   <network-inputs>

+      <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+      <network-name>HSL_direct_net_2</network-name>

+      <network-type>CONTRAIL_BASIC</network-type>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <aic-cloud-region/>

+      <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+   </network-inputs>

+   <network-params>

+      <param name="shared">0</param>

+   </network-params>

+</network-request>"""

+

+String vnfRequestCloudRegionNotFound =

+"""<network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>PORTAL</source>

+   </request-info>

+   <network-inputs>

+      <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+      <network-name>HSL_direct_net_2</network-name>

+      <network-type>CONTRAIL_BASIC</network-type>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <aic-cloud-region>MDTWNJ21</aic-cloud-region>

+      <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+   </network-inputs>

+   <network-params>

+      <param name="shared">0</param>

+   </network-params>

+</network-request>"""

+

+		String vnfPayload =

+	"""<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              contentType="text/xml">

+   <network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+      <request-info>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <action>DELETE</action>

+         <source>PORTAL</source>

+      </request-info>

+      <network-inputs>

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+      </network-inputs>

+      <network-params>

+         <param name="shared">0</param>

+      </network-params>

+   </network-request>

+</rest:payload>"""

+

+	String vnfPayload_MissingId =

+"""<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              contentType="text/xml">

+   <network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+      <request-info>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <action>DELETE</action>

+         <source>PORTAL</source>

+      </request-info>

+      <network-inputs>

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name/>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+      </network-inputs>

+      <network-params>

+         <param name="shared">0</param>

+      </network-params>

+   </network-request>

+</rest:payload>"""

+

+		String vnfRequestRESTPayload =

+"""<network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+      <request-info>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <action>DELETE</action>

+         <source>PORTAL</source>

+      </request-info>

+      <network-inputs>

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+      </network-inputs>

+      <network-outputs>

+         <network-id>id</network-id>

+         <network-name>name</network-name>

+      </network-outputs>

+      <network-params>

+         <param name="shared">0</param>

+      </network-params>

+  </network-request>"""

+

+

+String incomingRequestMissingCloudRegion =

+"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "network",

+  			"modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1.0"

+		  },

+		  "cloudConfiguration": {

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "HSL_direct_net_2",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+            "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": []

+		  }

+  }"""

+

+	String expectedNetworkRequestMissingId =

+  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id/>

+      <network-name>HSL_direct_net_2</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+String expectedNetworkRequestMissingCloudRegion =

+"""<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+      <network-name>HSL_direct_net_2</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>null</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+		// vnfRESTRequest

+		String vnfRESTRequest =

+"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   xmlns="http://www.w3.org/2001/XMLSchema"

+                   statusCode="200">

+   <rest:payload contentType="text/xml">

+      <network-request>

+         <request-info>

+            <action>DELETE</action>

+            <source>VID</source>

+            <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         </request-info>

+         <network-inputs>

+            <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+            <network-name>HSL_direct_net_2</network-name>

+            <network-type>CONTRAIL_EXTERNAL</network-type>

+            <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+            <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+            <backout-on-failure>true</backout-on-failure>

+         </network-inputs>

+         <network-params>

+            <userParams/>

+         </network-params>

+      </network-request>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	String networkInputs =

+  """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>HSL_direct_net_2</network-name>

+   <network-type>CONTRAIL_BASIC</network-type>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+</network-inputs>"""

+

+String networkInputsNoType =

+"""<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <network-id></network-id>

+   <network-name></network-name>

+   <network-type></network-type>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+</network-inputs>"""

+

+	String networkInputsMissingId =

+ """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id/>

+   <network-name>HSL_direct_net_2</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+String networkInputsMissingCloudRegion =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>HSL_direct_net_2</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>null</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+	String MissingIdFault = "Invalid value or missing network-id element"

+	String MissingRegionFault = "Invalid value or missing 'aic-cloud-region' element"

+

+	String  invalidWorkflowException = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>Invalid value of network-id element</aetgt:ErrorMessage>

+					<aetgt:ErrorCode>2500</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+

+

+	String queryAAIResponse =

+		"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID"

+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v3">

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <network-role>HSL_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <orchestration-status>active</orchestration-status>

+         <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>

+         <subnets>

+            <subnet>

+               <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>

+               <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>

+               <gateway-address>172.16.34.1</gateway-address>

+               <network-start-address>172.16.34.0</network-start-address>

+               <cidr-mask>28</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>active</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+    String deleteNetworkRequest =

+    """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+  <soapenv:Header/>

+  <soapenv:Body>

+      <NetworkAdapter:deleteNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+         <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+         <tenantId>e81d842d3e8b45c5a59f57cd76af3aaf</tenantId>

+         <networkType>CONTRAIL_BASIC</networkType>

+         <networkId>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</networkId>

+         <request>

+            <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+            <serviceInstanceId>0</serviceInstanceId>

+         </request>

+      </NetworkAdapter:deleteNetwork>

+  </soapenv:Body>

+</soapenv:Envelope>"""

+

+String deleteNetworkRESTRequest =

+"""<deleteNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>e81d842d3e8b45c5a59f57cd76af3aaf</tenantId>

+   <networkId>bdc5efe8-404a-409b-85f6-0dcc9eebae30</networkId>

+   <networkStackId>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</networkStackId>

+   <networkType>CONTRAIL_BASIC</networkType>

+   <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   <skipAAI>true</skipAAI>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_value</messageId>

+   <notificationUrl/>

+</deleteNetworkRequest>"""

+

+String deleteNetworkRESTRequestAlaCarte =

+"""<deleteNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>e81d842d3e8b45c5a59f57cd76af3aaf</tenantId>

+   <networkId>bdc5efe8-404a-409b-85f6-0dcc9eebae30</networkId>

+   <networkStackId>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</networkStackId>

+   <networkType>CONTRAIL_BASIC</networkType>

+   <modelCustomizationUuid>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationUuid>

+   <skipAAI>true</skipAAI>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_value</messageId>

+   <notificationUrl/>

+</deleteNetworkRequest>"""

+

+    String deleteNetworkResponse_noRollback =

+"""<ns2:deleteNetworkResponse xmlns:ns2="http://org.openecomp.mso/network">

+	<networkDeleted>true</networkDeleted>

+</ns2:deleteNetworkResponse>

+"""

+

+	String deleteNetworkResponse =

+	"""<ns2:deleteNetworkResponse xmlns:ns2="http://org.openecomp.mso/network">

+	    <networkDeleted>true</networkDeleted>

+	    <rollback>

+		 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+		 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+		 <networkStackId></networkStackId>

+		 <networkType>CONTRAIL_EXTERNAL</networkType>

+		 <networkCreated>true</networkCreated>

+		 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+		 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+		 <msoRequest>

+			<requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+			<serviceInstanceId></serviceInstanceId>

+		 </msoRequest>

+	    </rollback>

+       </ns2:deleteNetworkResponse>"""

+

+	   String deleteRollbackNetworkRequest =

+	   """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""

+

+	String deleteNetworkResponseFalseCompletion =

+		"""<ns2:deleteNetworkResponse xmlns:ns2="http://org.openecomp.mso/network"

+		     xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

+		   <networkDeleted>false</networkDeleted>

+		</ns2:deleteNetworkResponse>"""

+

+	String deleteNetworkErrorResponse =

+	"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

+<deleteNetworkError>

+<messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>

+<message>400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.network.properties: : Unknown Property network_ipam_refs_data</message>

+<rolledBack>true</rolledBack>

+</deleteNetworkError>

+"""

+

+	String deleteNetworkWorkflowException =

+	"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>Received error from Network Adapter: 400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.network.properties: : Unknown Property network_ipam_refs_data</aetgt:ErrorMessage>

+					<aetgt:ErrorCode>7020</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+

+String aaiWorkflowException =

+"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>Bpmn error encountered in DoDeleteNetworkInstance flow. Unexpected Response from AAI Adapter - org.apache.http.conn.HttpHostConnectException: Connect to localhost:8090 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect</aetgt:ErrorMessage>

+					<aetgt:ErrorCode>2500</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+

+	String aaiResponse =

+   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID"

+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <network-role>HSL_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <orchestration-status>active</orchestration-status>

+         <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>

+         <subnets>

+            <subnet>

+               <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>

+               <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>

+               <gateway-address>172.16.34.1</gateway-address>

+               <network-start-address>172.16.34.0</network-start-address>

+               <cidr-mask>28</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>active</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+               <related-to>cloud-region</related-to>

+               <related-link>cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP/</related-link>

+               <relationship-data>

+                  <relationship-key>cloud-region.cloud-owner</relationship-key>

+                  <relationship-value>att-aic</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>cloud-region.cloud-region-id</relationship-key>

+                  <relationship-value>RDM2WAGPLCP</relationship-value>

+               </relationship-data>						   

+            </relationship>			            

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+String aaiResponseWithRelationship =

+"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID"

+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <network-role>HSL_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <orchestration-status>active</orchestration-status>

+         <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>

+         <subnets>

+            <subnet>

+               <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>

+               <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>

+               <gateway-address>172.16.34.1</gateway-address>

+               <network-start-address>172.16.34.0</network-start-address>

+               <cidr-mask>28</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>active</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+				<related-to>vf-module</related-to>

+				<related-link>https://aai-app-e2e.ecomp.cci.com:8443/aai/v8/network/generic-vnfs/generic-vnf/105df7e5-0b3b-49f7-a837-4864b62827c4/vf-modules/vf-module/d9217058-95a0-49ee-b9a9-949259e89349/</related-link>

+				<relationship-data>

+				   <relationship-key>generic-vnf.vnf-id</relationship-key>

+				   <relationship-value>105df7e5-0b3b-49f7-a837-4864b62827c4</relationship-value>

+			    </relationship-data>

+			    <relationship-data>

+				   <relationship-key>vf-module.vf-module-id</relationship-key>

+				   <relationship-value>d9217058-95a0-49ee-b9a9-949259e89349</relationship-value>

+			    </relationship-data>

+		    </relationship>            

+			<relationship>

+       		   <related-to>generic-vnf</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/generic-vnfs/generic-vnf/45f822d9-73ca-4255-9844-7cef401bbf47/</related-link>

+               <relationship-data>

+                 <relationship-key>generic-vnf.vnf-id</relationship-key>

+                 <relationship-value>45f822d9-73ca-4255-9844-7cef401bbf47</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                 <property-key>generic-vnf.vnf-name</property-key>

+                 <property-value>zrdm1scpx05</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	String deleteSDNCRequest =

+    """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>delete</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>DisconnectNetworkRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type/>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name/>

+      </service-information>

+      <network-request-information>

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-type>CONTRAIL_BASIC</network-type>

+         <network-name>HSL_direct_net_2</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+	String deleteRpcSDNCRequest =

+	"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>unassign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>DeleteNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name/>

+      </service-information>

+      <network-information>

+         <network-id>networkId</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+	String sdncAdapaterDeactivateRollback =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>activate</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</model-invariant-uuid>

+            <model-uuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</model-uuid>

+            <model-version>1.0</model-version>

+            <model-name>HNGW Protected OAM</model-name>

+         </ecomp-model-information>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <global-customer-id>globalId_45678905678</global-customer-id>

+         <subscriber-name/>

+      </service-information>

+      <network-information>

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>sn5256d1-5a33-55df-13ab-12abad84e764</model-invariant-uuid>

+            <model-customization-uuid>sn5256d1-5a33-55df-13ab-12abad84e222</model-customization-uuid>

+            <model-uuid>sn5256d1-5a33-55df-13ab-12abad84e111</model-uuid>

+            <model-version>1</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-input>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+         <aic-clli/>

+         <network-input-parameters/>

+      </network-request-input>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+	 String sdncAdapterWorkflowResponse =

+	 """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                      xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+	 <sdncadapterworkflow:response-data>

+<tag0:CallbackHeader xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>

+   <tag0:ResponseCode>200</tag0:ResponseCode>

+   <tag0:ResponseMessage>OK</tag0:ResponseMessage>

+</tag0:CallbackHeader>

+      <tag0:RequestData xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;19174929-3809-49ca-89eb-17f84a035389&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;bdc5efe8-404a-409b-85f6-0dcc9eebae30&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;HSL_direct_net_2&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</tag0:RequestData>

+     </sdncadapterworkflow:response-data>

+   </aetgt:SDNCAdapterWorkflowResponse>"""

+

+   String sdncAdapterWorkflowResponse_404 =

+   """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+   <sdncadapterworkflow:response-data>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;00703dc8-71ff-442d-a4a8-3adc5beef6a9&lt;/svc-request-id&gt;&lt;response-code&gt;404&lt;/response-code&gt;&lt;response-message&gt;Service instance not found in config tree&lt;/response-message&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</sdncadapterworkflow:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+	String expected_sdncAdapterWorkflowFormattedResponse_404 =

+"""<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns="com:att:sdnctl:vnf">

+   <aetgt:response-data>

+      <output>

+         <svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id>

+         <response-code>404</response-code>

+         <response-message>Service instance not found in config tree</response-message>

+         <ack-final-indicator>Y</ack-final-indicator>

+         <network-information>

+            <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         </network-information>

+         <service-information>

+            <service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+            <service-instance-id>MNS-25180-L-01-dmz_direct_net_1</service-instance-id>

+            <subscriber-name>notsurewecare</subscriber-name>

+         </service-information>

+      </output>

+   </aetgt:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+	String sdncAdapterWorkflowFormattedResponse =

+	"""<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns="com:att:sdnctl:vnf">

+   <aetgt:response-data>

+      <output>

+         <svc-request-id>19174929-3809-49ca-89eb-17f84a035389</svc-request-id>

+         <response-code>200</response-code>

+         <ack-final-indicator>Y</ack-final-indicator>

+         <network-information>

+            <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         </network-information>

+         <service-information>

+            <service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+            <service-instance-id>HSL_direct_net_2</service-instance-id>

+            <subscriber-name>notsurewecare</subscriber-name>

+         </service-information>

+      </output>

+   </aetgt:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+String sdncAdapterWorkflowFormattedResponse_404 =

+"""<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns="com:att:sdnctl:vnf">

+   <aetgt:response-data>

+      <output>

+         <svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id>

+         <response-code>404</response-code>

+         <response-message>Service instance not found in config tree</response-message>

+         <ack-final-indicator>Y</ack-final-indicator>

+         <network-information>

+            <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         </network-information>

+         <service-information>

+            <service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+            <service-instance-id>MNS-25180-L-01-dmz_direct_net_1</service-instance-id>

+            <subscriber-name>notsurewecare</subscriber-name>

+         </service-information>

+      </output>

+   </aetgt:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+	String invalidRequest = "Invalid value of network-id element"

+

+

+

+	String sndcWorkflowException =

+	"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+   <aetgt:ErrorMessage>Received error from SDN-C: No availability zone available</aetgt:ErrorMessage>

+   <aetgt:ErrorCode>5300</aetgt:ErrorCode>

+   <aetgt:SourceSystemErrorCode>200</aetgt:SourceSystemErrorCode>

+</aetgt:WorkflowException>"""

+

+	String sndcWorkflowErrorResponse =

+	"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>Received error from SDN-C: <aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+   <sdncadapterworkflow:response-data>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;00703dc8-71ff-442d-a4a8-3adc5beef6a9&lt;/svc-request-id&gt;&lt;response-code&gt;404&lt;/response-code&gt;&lt;response-message&gt;Service instance not found in config tree&lt;/response-message&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</sdncadapterworkflow:response-data>

+</aetgt:SDNCAdapterWorkflowResponse></aetgt:ErrorMessage>

+					<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+

+	String unexpectedErrorEncountered =

+	"""<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>bpel error deleting network</aetgt:ErrorMessage>

+					<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+

+

+				  // expectedVnfRequest

+  String inputViprSDC_NetworkRequest =

+			  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>DELETE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>networkId</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+      <global-customer-id>globalId_45678905678</global-customer-id>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <failIfExist>false</failIfExist>

+      <networkModelInfo>

+         <modelName>CONTRAIL_EXTERNAL</modelName>

+         <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+         <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+         <modelVersion>1</modelVersion>

+         <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+         <modelType>CONTRAIL_EXTERNAL</modelType>

+      </networkModelInfo>

+      <serviceModelInfo>

+         <modelName>HNGW Protected OAM</modelName>

+         <modelUuid>36a3a8ea-49a6-4ac8-b06c-89a54544b9b6</modelUuid>

+         <modelInvariantUuid>fcc85cb0-ad74-45d7-a5a1-17c8744fdb71</modelInvariantUuid>

+         <modelVersion>1.0</modelVersion>

+         <modelCustomizationUuid/>

+         <modelType>service</modelType>

+      </serviceModelInfo>

+      <sdncVersion>1702</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_Json() {

+			

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("DELETE")

+			when(mockExecution.getVariable("networkId")).thenReturn("bdc5efe8-404a-409b-85f6-0dcc9eebae30")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			//when(mockExecution.getVariable("networkId")).thenReturn("")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(incomingJsonRequest)

+			when(mockExecution.getVariable("disableRollback")).thenReturn(true)

+			when(mockExecution.getVariable("testMessageId")).thenReturn("7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-service-instance-id")).thenReturn("FH/VLXM/003717//SW_INTERNET")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.preProcessRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "DELETE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequest)

+

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expected_networkInput)

+			verify(mockExecution).setVariable(Prefix + "messageId", "7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+

+			// Authentications

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_vPER() {

+

+			def networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111",

+                                     "modelName": "CONTRAIL_EXTERNAL",

+									 "modelType": "CONTRAIL_EXTERNAL",

+									 "modelVersion": "1",

+									 "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222",

+									 "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764"

+									}""".trim()

+			

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			// Inputs:

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("networkId")).thenReturn("bdc5efe8-404a-409b-85f6-0dcc9eebae30")                                // optional

+			when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1")        // optional

+			when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL")

+			when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266")

+			when(mockExecution.getVariable("failIfExists")).thenReturn("false")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable("action")).thenReturn("DELETE")

+			when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type")

+			when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.preProcessRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "DELETE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedVperNetworkRequest)

+

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedVper_networkInput)

+			verify(mockExecution).setVariable(Prefix + "messageId", "7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+

+			// Authentications

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+

+

+		}

+		

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "networkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "isSilentSuccess", false)

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+

+			verify(mockExecution).setVariable(Prefix + "requestId", "")

+			verify(mockExecution).setVariable(Prefix + "source", "")

+			verify(mockExecution).setVariable(Prefix + "lcpCloudRegion", "")

+			verify(mockExecution).setVariable(Prefix + "networkInputs", "")

+			verify(mockExecution).setVariable(Prefix + "tenantId", "")

+

+			verify(mockExecution).setVariable(Prefix + "queryAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isAAIGood", false)

+			verify(mockExecution).setVariable(Prefix + "isVfRelationshipExist", false)

+

+			// AAI query Cloud Region

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","")

+

+			verify(mockExecution).setVariable(Prefix + "deleteNetworkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "deleteNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "networkReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")

+

+			verify(mockExecution).setVariable(Prefix + "deleteSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "deleteSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)

+

+			verify(mockExecution).setVariable(Prefix + "deactivateSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "deactivateSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "deactivateSdncReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isSdncDeactivateRollbackNeeded", "")

+

+			verify(mockExecution).setVariable(Prefix + "rollbackDeactivateSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "isException", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_Json_MissingId() {

+

+			println "************ preProcessRequest_MissingId() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("DELETE")

+			//when(mockExecution.getVariable("networkId")).thenReturn("") // missing Id

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			//when(mockExecution.getVariable("networkId")).thenReturn("")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(incomingJsonRequest)

+			when(mockExecution.getVariable("disableRollback")).thenReturn(true)

+			

+			when(mockExecution.getVariable("testMessageId")).thenReturn("7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-service-instance-id")).thenReturn("FH/VLXM/003717//SW_INTERNET")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			try {

+				DoDeleteNetworkInstance.preProcessRequest(mockExecution)

+			} catch (Exception ex) {

+				println " Test End - Handle catch-throw BpmnError()! "

+			}

+

+			//verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "DELETE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingId)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+

+			verify(mockExecution).setVariable(Prefix + "networkInputs", networkInputsMissingId)

+			verify(mockExecution).setVariable(Prefix + "messageId", "7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_Json_MissingCloudRegion() {

+

+			def networkModelInfo = """{"modelVersionId": "sn5256d1-5a33-55df-13ab-12abad84e111",

+                                     "modelName": "CONTRAIL_EXTERNAL",

+									 "modelType": "CONTRAIL_EXTERNAL",

+									 "modelVersion": "1",

+									 "modelCustomizationId": "sn5256d1-5a33-55df-13ab-12abad84e222",

+									 "modelInvariantId": "sn5256d1-5a33-55df-13ab-12abad84e764"

+									}""".trim()

+			

+			println "************ preProcessRequest_MissingCloudRegion() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("DELETE")

+			when(mockExecution.getVariable("networkId")).thenReturn("bdc5efe8-404a-409b-85f6-0dcc9eebae30")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			//when(mockExecution.getVariable("networkId")).thenReturn("")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(incomingRequestMissingCloudRegion)

+			when(mockExecution.getVariable("disableRollback")).thenReturn(true)

+			

+			when(mockExecution.getVariable("testMessageId")).thenReturn("7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("mso-service-instance-id")).thenReturn("FH/VLXM/003717//SW_INTERNET")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.preProcessRequest(mockExecution)

+

+			//verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "DELETE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingCloudRegion)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+

+			verify(mockExecution).setVariable(Prefix + "networkInputs", networkInputsMissingCloudRegion)

+			verify(mockExecution).setVariable(Prefix + "messageId", "7df689f9-7b93-430b-9b9e-28140d70cc7ad")

+			verify(mockExecution).setVariable(Prefix + "lcpCloudRegion", null)

+

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO","Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+

+		}

+

+

+

+		@Test

+		//@Ignore

+		public void prepareNetworkRequest() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedVperNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryAAIResponse")).thenReturn(queryAAIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "tenantId")).thenReturn("e81d842d3e8b45c5a59f57cd76af3aaf")

+

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_value")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use? 

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareNetworkRequest(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("URN_mso_adapters_network_rest_endpoint", "http://localhost:8090/networks/NetworkAdapter/bdc5efe8-404a-409b-85f6-0dcc9eebae30")

+			//verify(mockExecution).setVariable(Prefix + "deleteNetworkRequest", deleteNetworkRequest)

+			verify(mockExecution).setVariable(Prefix + "deleteNetworkRequest", deleteNetworkRESTRequest)

+

+		}

+		

+		@Test

+		//@Ignore

+		public void prepareNetworkRequest_AlaCarte() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "queryAAIResponse")).thenReturn(queryAAIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "tenantId")).thenReturn("e81d842d3e8b45c5a59f57cd76af3aaf")

+

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_value")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareNetworkRequest(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("URN_mso_adapters_network_rest_endpoint", "http://localhost:8090/networks/NetworkAdapter/bdc5efe8-404a-409b-85f6-0dcc9eebae30")

+			//verify(mockExecution).setVariable(Prefix + "deleteNetworkRequest", deleteNetworkRequest)

+			verify(mockExecution).setVariable("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "deleteNetworkRequest", deleteNetworkRESTRequestAlaCarte)

+

+		}

+

+		@Test

+		//@Ignore

+		public void sendRequestToVnfAdapter() {

+

+			println "************ sendRequestToVnfAdapter ************* "

+

+			WireMock.reset();

+			MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "deleteNetworkRequest")).thenReturn(deleteNetworkRESTRequest)

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter/bdc5efe8-404a-409b-85f6-0dcc9eebae30")

+			when(mockExecution.getVariable("BasicAuthHeaderValuePO")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.sendRequestToVnfAdapter(mockExecution)

+

+			verify(mockExecution).setVariable(Prefix + "networkReturnCode", 200)

+			//verify(mockExecution).setVariable(Prefix + "deleteNetworkResponse", deleteNetworkResponse_noRollback)

+						

+		}

+

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRequest() {

+

+			println "************ prepareSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "queryAAIResponse")).thenReturn(aaiResponse)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareSDNCRequest(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "deleteSDNCRequest", deleteSDNCRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCRequest() {

+

+			println "************ prepareRpcSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(inputViprSDC_NetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareRpcSDNCRequest(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "deleteSDNCRequest", deleteRpcSDNCRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRpcSDNCActivateRollback() {

+

+			println "************ prepareRpcSDNCActivateRollback ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(inputViprSDC_NetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "networkId")).thenReturn("8abc633a-810b-4ca5-8b3a-09511d13a2ce")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") // test ONLY

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn(null)

+			when(mockExecution.getVariable(Prefix + "deactivateSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse)

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareRpcSDNCDeactivateRollback(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix)

+			//verify(mockExecution).setVariable("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable(Prefix + "requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//verify(mockExecution).setVariable("mso-service-instance-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "rollbackDeactivateSDNCRequest", sdncAdapaterDeactivateRollback)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAI_200() {

+

+			println "************ callRESTQueryAAI ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_l3_network_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoDeleteNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoDeleteNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAI(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/bdc5efe8-404a-409b-85f6-0dcc9eebae30"+"?depth=1")

+

+			verify(mockExecution).setVariable(Prefix + "aaiReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "queryAAIResponse", aaiResponse)

+			verify(mockExecution).setVariable(Prefix + "isAAIGood", true)

+			verify(mockExecution).setVariable(Prefix + "isVfRelationshipExist", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAI_withRelationship_200() {

+

+			println "************ callRESTQueryAAI ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_withRelationship_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_l3_network_uri")).thenReturn("")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_DoDeleteNetworkInstance_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_DoDeleteNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAI(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/bdc5efe8-404a-409b-85f6-0dcc9eebae30"+"?depth=1")

+

+			verify(mockExecution).setVariable(Prefix + "aaiReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "queryAAIResponse", aaiResponseWithRelationship)

+			verify(mockExecution).setVariable(Prefix + "isAAIGood", true)

+			verify(mockExecution).setVariable(Prefix + "isVfRelationshipExist", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAI_200_DefaultUri() {

+

+			println "************ callRESTQueryAAI ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAI(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/bdc5efe8-404a-409b-85f6-0dcc9eebae30"+ "?depth=1")

+

+			verify(mockExecution).setVariable(Prefix + "aaiReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "queryAAIResponse", aaiResponse)

+			verify(mockExecution).setVariable(Prefix + "isAAIGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion30_200() {

+

+			println "************ callRESTQueryAAICloudRegion30_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion("DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "lcpCloudRegion")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion_NotFound() {

+

+			println "************ callRESTQueryAAICloudRegion_NotFound ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion_404("MDTWNJ21");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestCloudRegionNotFound)

+			when(mockExecution.getVariable(Prefix + "lcpCloudRegion")).thenReturn("MDTWNJ21")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion25_200() {

+

+			println "************ callRESTQueryAAICloudRegion25_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion("DeleteNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "lcpCloudRegion")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			// old: when(mockExecution.getVariable("URN_mso_workflow_default_aai_cloud_infrastructure_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			//

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void validateNetworkResponse() {

+

+			println "************ validateNetworkResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "deleteNetworkResponse")).thenReturn(deleteNetworkResponse)

+			when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200')

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.validateNetworkResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			//verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", null)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse_200() {

+

+			println "************ validateSDNCResponse ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			try {

+				DoDeleteNetworkInstance.validateSDNCResponse(mockExecution, sdncAdapterWorkflowResponse)

+			} catch (Exception ex) {

+			    println " Graceful Exit - " + ex.getMessage()

+			}

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse_404() {

+

+			println "************ validateSDNCResponse ************* "

+

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from SNDC Adapter: HTTP Status 404.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("404")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			try {

+				DoDeleteNetworkInstance.validateSDNCResponse(mockExecution)

+			} catch (Exception ex) {

+				println " Graceful Exit - " + ex.getMessage()

+			}

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateRpcSDNCDeactivateResponse() {

+

+			println "************ validateRpcSDNCDeactivateResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "deactivateSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)

+			when(mockExecution.getVariable(Prefix + "deactivateSDNCReturnCode")).thenReturn("200")

+

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			try {

+			  DoDeleteNetworkInstance.validateRpcSDNCDeactivateResponse(mockExecution)

+			  verify(mockExecution).setVariable(Prefix + "isSdncDeactivateRollbackNeeded", true)

+

+			} catch (Exception ex) {

+				println " Graceful Exit - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			//verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+

+		}

+

+		@Test

+		@Ignore

+		public void postProcessResponse() {

+

+			println "************ postProcessResponse ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("PORTAL")

+			when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false)

+

+			// postProcessResponse(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.postProcessResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRollbackData() {

+

+			println "************ prepareRollbackData() ************* "

+

+

+

+			WorkflowException workflowException = new WorkflowException("DoCreateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(deleteRollbackNetworkRequest)

+			//when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(null)

+			//when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("")

+			when(mockExecution.getVariable(Prefix + "rollbackDeactivateSDNCRequest")).thenReturn(sdncAdapaterDeactivateRollback)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+

+			// preProcessRequest(Execution execution)

+			DoDeleteNetworkInstance DoDeleteNetworkInstance = new DoDeleteNetworkInstance()

+			DoDeleteNetworkInstance.prepareRollbackData(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+		}

+

+

+		private ExecutionEntity setupMock() {

+

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoDeleteNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoDeleteNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoDeleteNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoDeleteNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+

+		}

+

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollbackTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollbackTest.groovy
new file mode 100644
index 0000000..c97bedb
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceRollbackTest.groovy
@@ -0,0 +1,315 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.delegate.BpmnError

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.impl.pvm.process.ProcessDefinitionImpl

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution;

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+import org.junit.Before

+import org.junit.Rule;

+import org.junit.Test

+import org.junit.Ignore

+import org.junit.runner.RunWith

+

+import static org.junit.Assert.*;

+

+import com.github.tomakehurst.wiremock.client.WireMock;

+import com.github.tomakehurst.wiremock.junit.WireMockRule;

+

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DoUpdateNetworkInstanceRollbackTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(28090);

+

+		def utils = new MsoUtils()

+		String Prefix="UPDNETIR_"

+

+

+		String rollbackNetworkRequest =

+		"""<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""

+

+					String rollbackActivateSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+					String rollbackSDNCRequest =

+		"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+      <sdncadapter:MsoAction>generic-resource</sdncadapter:MsoAction>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+

+		}

+

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", null)

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", null)

+			verify(mockExecution).setVariable(Prefix + "WorkflowException", null)

+

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")

+

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")

+

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			verify(mockExecution).setVariable(Prefix + "fullRollback", false)

+

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest() {

+

+			println "************ preProcessRequest ************* "

+

+			WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstanceRollback", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:28090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:28090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:28090/SDNCAdapterRpc")

+

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstanceRollback DoUpdateNetworkInstanceRollback = new DoUpdateNetworkInstanceRollback()

+			DoUpdateNetworkInstanceRollback.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+		}

+

+

+		@Test

+		@Ignore

+		public void validateRollbackResponses_Good() {

+

+			WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404.")

+			WorkflowException expectedWorkflowException = new WorkflowException("DoUpdateNetworkInstanceRollback", 2500, "AAI Update Contrail Failed.  Error 404. + SNDC activate rollback completed. + PO Network rollback completed. + SNDC assign rollback completed.")

+

+			println "************ validateRollbackResponses_Good() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "WorkflowException")).thenReturn(workflowException)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(false)

+

+			DoUpdateNetworkInstanceRollback DoUpdateNetworkInstanceRollback = new DoUpdateNetworkInstanceRollback()

+			DoUpdateNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rolledBack", true)

+			verify(mockExecution, atLeast(1)).setVariable("wasDeleted", true)

+			verify(mockExecution).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))

+			//verify(mockExecution).setVariable("WorkflowException", expectedWorkflowException)

+		}

+

+		@Test

+		//@Ignore

+		public void validateRollbackResponses_FullRollback() {

+

+			Map<String, String> rollbackData = new HashMap<String, String>();

+			rollbackData.put("rollbackSDNCRequest", rollbackSDNCRequest)

+			rollbackData.put("rollbackNetworkRequest", rollbackNetworkRequest)

+

+			println "************ validateRollbackResponses_FullRollback() ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix)

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn("Good")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCResponse")).thenReturn("GoodResponse")

+			when(mockExecution.getVariable(Prefix + "WorkflowException")).thenReturn(null)

+			when(mockExecution.getVariable(Prefix + "fullRollback")).thenReturn(true)

+			when(mockExecution.getVariable("rollbackData")).thenReturn(rollbackData)

+

+			DoUpdateNetworkInstanceRollback DoUpdateNetworkInstanceRollback = new DoUpdateNetworkInstanceRollback()

+			DoUpdateNetworkInstanceRollback.validateRollbackResponses(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackSuccessful", true)

+			verify(mockExecution, atLeast(1)).setVariable("rollbackError", false)

+

+		}

+

+

+		private ExecutionEntity setupMock() {

+

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoUpdateNetworkInstanceRollback")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoUpdateNetworkInstanceRollback")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoUpdateNetworkInstanceRollback")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoUpdateNetworkInstanceRollback")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+		}

+

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceTest.groovy
new file mode 100644
index 0000000..fb44067
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoUpdateNetworkInstanceTest.groovy
@@ -0,0 +1,2625 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkVpnBinding;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkTableReference;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicy;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetworkIdWithDepth;

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Rule

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import com.github.tomakehurst.wiremock.client.WireMock

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class DoUpdateNetworkInstanceTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+

+		def utils = new MsoUtils()

+		String Prefix="UPDNETI_"

+

+		String jsonIncomingRequest =

+		"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "network",

+  			"modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1.0"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": [

+               {

+				 "name": "someUserParam1",

+				 "value": "someValue1"

+			   }

+            ]

+		  }

+  }}"""

+

+

+		  String jsonIncomingRequest_MissingCloudRegion =

+		"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "network",

+  			"modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1.0"

+		  },

+		  "cloudConfiguration": {

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": []

+		  }

+  }}"""

+

+

+

+   String expectedNetworkRequestMissingNetworkId =

+   """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>UPDATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id/>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params>

+      <param name="some_user_param1">someValue1</param>

+   </network-params>

+</network-request>"""

+

+

+String expectedNetworkRequestMissingCloudRegion =

+"""<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>UPDATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>networkId</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>null</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>null</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+String expectedNetworkInputMissingCloudRegion =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>networkId</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>null</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>null</sdncVersion>

+</network-inputs>"""

+

+	String networkInputsMissingName =

+ """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+	<network-name/>

+	<network-type>CONTRAIL_EXTERNAL</network-type>

+	<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+	<aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+	<tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+ </network-inputs>"""

+

+String networkInputsMissingCloudRegion =

+"""<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <network-name>HSL_direct_net_2</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <aic-cloud-region/>

+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+</network-inputs>"""

+

+	  // expectedNetworkRequest

+	  String expectedNetworkRequest =

+  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>UPDATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <sdncVersion>1610</sdncVersion>

+   </network-inputs>

+   <network-params>

+      <param name="some_user_param1">someValue1</param>

+   </network-params>

+</network-request>"""

+

+String expectedNetworkInputs =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+String expectedVperNetworkRequest =

+"""<network-request xmlns="http://www.w3.org/2001/XMLSchema">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>UPDATE</action>

+      <source>VID</source>

+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+   </request-info>

+   <network-inputs>

+      <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+      <network-type>CONTRAIL_EXTERNAL</network-type>

+      <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+      <global-customer-id>globalId_45678905678</global-customer-id>

+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+      <backout-on-failure>false</backout-on-failure>

+      <failIfExist>false</failIfExist>

+      <networkModelInfo>

+         <modelName>CONTRAIL_EXTERNAL</modelName>

+         <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+         <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+         <modelVersion>1</modelVersion>

+         <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+      </networkModelInfo>

+      <serviceModelInfo>

+         <modelName/>

+         <modelUuid/>

+         <modelInvariantUuid/>

+         <modelVersion/>

+         <modelCustomizationUuid/>

+      </serviceModelInfo>

+      <sdncVersion>1702</sdncVersion>

+   </network-inputs>

+   <network-params/>

+</network-request>"""

+

+String expectedVperNetworkInputs = 

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <subscription-service-type>MSO-dev-service-type</subscription-service-type>

+   <global-customer-id>globalId_45678905678</global-customer-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <failIfExist>false</failIfExist>

+   <networkModelInfo>

+      <modelName>CONTRAIL_EXTERNAL</modelName>

+      <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>

+      <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>

+      <modelVersion>1</modelVersion>

+      <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   </networkModelInfo>

+   <serviceModelInfo>

+      <modelName/>

+      <modelUuid/>

+      <modelInvariantUuid/>

+      <modelVersion/>

+      <modelCustomizationUuid/>

+   </serviceModelInfo>

+   <sdncVersion>1702</sdncVersion>

+</network-inputs>"""

+

+String expectedNetworkInputsMissingNetworkId =

+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">

+   <network-id/>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <backout-on-failure>false</backout-on-failure>

+   <sdncVersion>1610</sdncVersion>

+</network-inputs>"""

+

+

+  String NetworkRequest_noPhysicalName =

+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:request-info>

+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+      <vnfreq:action>UPDATE</vnfreq:action>

+      <vnfreq:source>PORTAL</vnfreq:source>

+   </vnfreq:request-info>

+   <vnfreq:network-inputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+	  <vnfreq:modelCustomizationId></vnfreq:modelCustomizationId>

+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+      <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>

+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+      <vnfreq:vlans>3008</vnfreq:vlans>

+   </vnfreq:network-inputs>

+   <vnfreq:network-params>

+   <network-params>

+      <param name="dhcp-enabled">true</param>

+      <param name="serviceId">a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</param>

+      <param name="cidr-mask">true</param>

+  	  <param name="backoutOnFailure">true</param>

+  	  <param name="gateway-address">10.10.125.1</param>

+   </network-params>

+   </vnfreq:network-params>

+</vnfreq:network-request>"""

+

+  String vnfRequestFakeRegion =

+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:request-info>

+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+      <vnfreq:action>UPDATE</vnfreq:action>

+      <vnfreq:source>PORTAL</vnfreq:source>

+   </vnfreq:request-info>

+   <vnfreq:network-inputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+      <vnfreq:aic-cloud-region>MDTWNJ21</vnfreq:aic-cloud-region>

+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+   </vnfreq:network-inputs>

+   <vnfreq:network-params>

+      <param name="shared">1</param>

+      <param name="external">0</param>

+   </vnfreq:network-params>

+</vnfreq:network-request>"""

+

+  // expectedNetworkRequest

+	  String expectedNetworkRequest_Outputs =

+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">

+   <vnfreq:request-info>

+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>

+      <vnfreq:action>UPDATE</vnfreq:action>

+      <vnfreq:source>PORTAL</vnfreq:source>

+   </vnfreq:request-info>

+   <vnfreq:network-inputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>

+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>

+      <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>

+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>

+   </vnfreq:network-inputs>

+   <vnfreq:network-outputs>

+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>

+      <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>

+   </vnfreq:network-outputs>

+   <vnfreq:network-params>

+      <param name="shared">1</param>

+      <param name="external">0</param>

+   </vnfreq:network-params>

+</vnfreq:network-request>"""

+

+

+  String networkInputs =

+  """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>

+</network-inputs>"""

+

+	  String networkOutputs =

+	"""<network-outputs>

+                   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+                 </network-outputs>"""

+

+	  String queryAAIResponse =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v3">

+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+         <network-name>HSL_direct_net_2</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+         <orchestration-status>pending-delete</orchestration-status>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-delete</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	  String queryIdAIIResponse =

+	  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+		 <resource-version>l3-version</resource-version>

+         <orchestration-status>pending-delete</orchestration-status>

+	     <heat-stack-id>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</heat-stack-id>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-update</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-delete</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+	  		   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>414</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+	  	 <segmentation-assignments>

+	  		<segmentation-id>415</segmentation-id>

+	  		<resource-version>4132176</resource-version>

+	  	 </segmentation-assignments>

+		 <ctag-assignments>

+			 <ctag-assignment>

+				 <vlan-id-inner>inner</vlan-id-inner>

+				 <resource-version>ctag-version</resource-version>

+	             <relationship-list>

+					<relationship>

+					   <related-to>tenant</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+					   <relationship-data>

+						  <relationship-key>tenant.tenant-id</relationship-key>

+						  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>tenant.tenant-name</property-key>

+						  <property-value>MSOTest1</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+					   </related-to-property>

+					</relationship>

+					<relationship>

+					   <related-to>vpn-binding</related-to>

+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+					   <relationship-data>

+						  <relationship-key>vpn-binding.vpn-id</relationship-key>

+						  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+					   </relationship-data>

+					   <related-to-property>

+						  <property-key>vpn-binding.vpn-name</property-key>

+						  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+					   </related-to-property>

+					</relationship>

+				 </relationship-list>

+				</ctag-assignment>

+		 </ctag-assignments>

+         <relationship-list>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+            </relationship>

+			<relationship>

+			  <related-to>network-policy</related-to>

+			  <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+			  <relationship-data>

+				  <relationship-key>network-policy.network-policy-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+			  </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+			<relationship>

+			   <related-to>route-table-reference</related-to>

+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+			   <relationship-data>

+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+			   </relationship-data>

+			</relationship>

+         </relationship-list>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	  String queryIdAIIResponseTestScenario01 =

+  """<?xml version="1.0" encoding="UTF-8"?>

+<l3-network xmlns="http://org.openecomp.aai.inventory/v7">

+	<network-id>4da55fe4-7a9e-478c-a434-8a98d62265ab</network-id>

+	<network-name>GN_EVPN_direct_net_0_ST1</network-name>

+	<network-type>CONTRAIL30_BASIC</network-type>

+	<network-role>GN_EVPN_direct</network-role>

+	<network-technology>contrail</network-technology>

+	<is-bound-to-vpn>false</is-bound-to-vpn>

+	<service-id>9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+	<network-role-instance>0</network-role-instance>

+	<resource-version>1465398611</resource-version>

+	<orchestration-status>pending-delete</orchestration-status>

+  	<physical-network-name>networkName</physical-network-name>

+	<is-provider-network>false</is-provider-network>

+	<is-shared-network>true</is-shared-network>

+	<is-external-network>false</is-external-network>

+	<subnets>

+		<subnet>

+			<subnet-id>cb1a7b47-5428-44c9-89c2-8b17541c3228</subnet-id>

+			<gateway-address>108.239.40.1</gateway-address>

+			<network-start-address>108.239.40.0</network-start-address>

+			<cidr-mask>28</cidr-mask>

+			<ip-version>4</ip-version>

+			<orchestration-status>pending-delete</orchestration-status>

+			<dhcp-enabled>true</dhcp-enabled>

+			<dhcp-start>108.239.40.0</dhcp-start>

+			<dhcp-end>108.239.40.0</dhcp-end>

+			<resource-version>1465398611</resource-version>

+  		    <subnet-name>subnetName</subnet-name>

+			<relationship-list />

+		</subnet>

+		<subnet>

+			<subnet-id>e2cc7c14-90f0-4205-840d-b4e07f04e621</subnet-id>

+			<gateway-address>2606:ae00:2e01:604::1</gateway-address>

+			<network-start-address>2606:ae00:2e01:604::</network-start-address>

+			<cidr-mask>64</cidr-mask>

+			<ip-version>6</ip-version>

+			<orchestration-status>pending-delete</orchestration-status>

+			<dhcp-enabled>true</dhcp-enabled>

+			<dhcp-start>2606:ae00:2e01:604::</dhcp-start>

+			<dhcp-end>2606:ae00:2e01:604::</dhcp-end>

+			<resource-version>1465398611</resource-version>

+  			<subnet-name>subnetName</subnet-name>

+			<relationship-list />

+		</subnet>

+	</subnets>

+	<ctag-assignments />

+	<segmentation-assignments>

+	   	<segmentation-id>416</segmentation-id>

+	  	<resource-version>4132176</resource-version>

+	</segmentation-assignments>

+	<relationship-list>

+		<relationship>

+			<related-to>cloud-region</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/

+			</related-link>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>AAIAIC25</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>cloud-region.owner-defined-type</property-key>

+				<property-value></property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>tenant</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/4ae1d3446a4c48b2bec44b6cfba06d68/</related-link>

+			<relationship-data>

+				<relationship-key>tenant.tenant-id</relationship-key>

+				<relationship-value>4ae1d3446a4c48b2bec44b6cfba06d68

+				</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>AAIAIC25</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>tenant.tenant-name</property-key>

+				<property-value>Ruchira Contrail 3.0 test</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>vpn-binding</related-to>

+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+			<relationship-data>

+				<relationship-key>vpn-binding.vpn-id</relationship-key>

+				<relationship-value>9a7b327d9-287aa00-82c4b0-100001</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>vpn-binding.vpn-name</property-key>

+				<property-value>GN_EVPN_direct_net_0_ST1</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+		   <related-to>route-table-reference</related-to>

+		   <relationship-data>

+			  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+			  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+		   </relationship-data>

+		</relationship>

+	</relationship-list>

+</l3-network>"""

+

+  String queryIdAIIResponseVpnNotPresent =

+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-role>dmz_direct</network-role>

+         <network-technology>contrail</network-technology>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <network-role-instance>0</network-role-instance>

+         <orchestration-status>pending-delete</orchestration-status>

+	  	 <physical-network-name>networkName</physical-network-name>

+	     <is-provider-network>false</is-provider-network>

+	  	 <is-shared-network>true</is-shared-network>

+	  	 <is-external-network>false</is-external-network>

+         <subnets>

+            <subnet>

+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+               <gateway-address>107.239.52.1</gateway-address>

+               <network-start-address>107.239.52.0</network-start-address>

+               <cidr-mask>24</cidr-mask>

+               <ip-version>4</ip-version>

+               <orchestration-status>pending-delete</orchestration-status>

+               <dhcp-enabled>true</dhcp-enabled>

+  			   <subnet-name>subnetName</subnet-name>

+               <relationship-list/>

+            </subnet>

+         </subnets>

+         <relationship-list/>

+      </l3-network>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+	  String queryNameAIIResponse =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+		                   statusCode="200">

+		   <rest:headers>

+		      <rest:header name="Transfer-Encoding" value="chunked"/>

+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+		      <rest:header name="Content-Type" value="application/xml"/>

+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+		      <rest:header name="Cache-Control" value="private"/>

+		   </rest:headers>

+		   <rest:payload contentType="text/xml">

+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">

+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+		         <network-type>CONTRAIL_EXTERNAL</network-type>

+		         <network-role>dmz_direct</network-role>

+		         <network-technology>contrail</network-technology>

+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		         <network-role-instance>0</network-role-instance>

+		         <orchestration-status>pending-delete</orchestration-status>

+		         <subnets>

+		            <subnet>

+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+		               <gateway-address>107.239.52.1</gateway-address>

+		               <network-start-address>107.239.52.0</network-start-address>

+		               <cidr-mask>24</cidr-mask>

+		               <ip-version>4</ip-version>

+		               <orchestration-status>pending-delete</orchestration-status>

+		               <dhcp-enabled>true</dhcp-enabled>

+		               <relationship-list/>

+		            </subnet>

+		         </subnets>

+		         <relationship-list>

+		            <relationship>

+		               <related-to>vpn-binding</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+		               <relationship-data>

+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+		                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		            <relationship>

+		               <related-to>vpn-binding</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+		               <relationship-data>

+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+		                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		            <relationship>

+		               <related-to>tenant</related-to>

+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+		               <relationship-data>

+		                  <relationship-key>tenant.tenant-id</relationship-key>

+		                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+		               </relationship-data>

+		            </relationship>

+		         </relationship-list>

+		      </l3-network>

+		   </rest:payload>

+		</rest:RESTResponse>"""

+

+		  String queryNameAIIResponseVpnNotPresent =

+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+		                   statusCode="200">

+		   <rest:headers>

+		      <rest:header name="Transfer-Encoding" value="chunked"/>

+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>

+		      <rest:header name="Content-Type" value="application/xml"/>

+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+		      <rest:header name="Cache-Control" value="private"/>

+		   </rest:headers>

+		   <rest:payload contentType="text/xml">

+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6>

+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+		         <network-type>CONTRAIL_EXTERNAL</network-type>

+		         <network-role>dmz_direct</network-role>

+		         <network-technology>contrail</network-technology>

+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		         <network-role-instance>0</network-role-instance>

+		         <orchestration-status>pending-delete</orchestration-status>

+		         <subnets>

+		            <subnet>

+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+		               <gateway-address>107.239.52.1</gateway-address>

+		               <network-start-address>107.239.52.0</network-start-address>

+		               <cidr-mask>24</cidr-mask>

+		               <ip-version>4</ip-version>

+		               <orchestration-status>pending-delete</orchestration-status>

+		               <dhcp-enabled>true</dhcp-enabled>

+		               <relationship-list/>

+		            </subnet>

+		         </subnets>

+		      </l3-network>

+		   </rest:payload>

+		</rest:RESTResponse>"""

+

+	  String aaiVpnResponseStub =

+  """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              xmlns="http://org.openecomp.aai.inventory/v8"

+              contentType="text/xml">

+   <vpn-binding>

+      <global-route-target/>

+   </vpn-binding>

+</rest:payload>"""

+

+	  String queryVpnBindingAAIResponse =

+	   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Transfer-Encoding" value="chunked"/>

+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID"

+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>

+      <rest:header name="Content-Type" value="application/xml"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+   <rest:payload contentType="text/xml">

+      <vpn-binding xmlns="http://org.openecomp.aai.inventory/v6">

+         <vpn-id>9a7b327d9-287aa00-82c4b0-105757</vpn-id>

+         <vpn-name>GN_EVPN_Test</vpn-name>

+         <global-route-target>13979:105757</global-route-target>

+         <relationship-list>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>689ec39e-c5fc-4462-8db2-4f760763ad28</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>1a49396b-19b3-40a4-8792-aa2fbd0f0704</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>l3-network</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/</related-link>

+               <relationship-data>

+                  <relationship-key>l3-network.network-id</relationship-key>

+                  <relationship-value>774f3329-3c83-4771-86c7-9e6207cd50fd</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

+      </vpn-binding>

+   </rest:payload>

+</rest:RESTResponse>"""

+

+

+	  String updateNetworkRequest =

+	  """<updateNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>

+   <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>

+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>

+   <networkTypeVersion/>

+   <networkTechnology>CONTRAIL</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>networkName</physicalNetworkName>

+      <vlans>414,415</vlans>

+   </providerVlanNetwork>

+   <contrailNetwork>

+      <shared>true</shared>

+      <external>false</external>

+      <routeTargets>13979:105757</routeTargets>

+      <routeTargets>13979:105757</routeTargets>

+      <policyFqdns>GN_EVPN_Test</policyFqdns>

+      <routeTableFqdns>refFQDN1</routeTableFqdns>

+      <routeTableFqdns>refFQDN2</routeTableFqdns>

+   </contrailNetwork>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</updateNetworkRequest>"""

+

+String updateNetworkRequest_noPhysicalName =

+"""<updateNetworkRequest>

+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>

+   <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>

+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>

+   <networkType>CONTRAIL_EXTERNAL</networkType>

+   <modelCustomizationUuid/>

+   <networkTypeVersion/>

+   <networkTechnology>CONTRAIL</networkTechnology>

+   <providerVlanNetwork>

+      <physicalNetworkName>networkName</physicalNetworkName>

+      <vlans>414,415</vlans>

+   </providerVlanNetwork>

+   <contrailNetwork>

+      <shared>true</shared>

+      <external>false</external>

+      <routeTargets>13979:105757</routeTargets>

+      <routeTargets>13979:105757</routeTargets>

+      <policyFqdns>GN_EVPN_Test</policyFqdns>

+   </contrailNetwork>

+   <subnets>

+      <allocationPools>

+         <start/>

+         <end/>

+      </allocationPools>

+      <cidr>107.239.52.0/24</cidr>

+      <enableDHCP>true</enableDHCP>

+      <gatewayIp>107.239.52.1</gatewayIp>

+      <ipVersion>4</ipVersion>

+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>

+      <subnetName>subnetName</subnetName>

+   </subnets>

+   <skipAAI>true</skipAAI>

+   <backout>true</backout>

+   <failIfExists>false</failIfExists>

+   <networkParams>

+      <dhcp-enabled>true</dhcp-enabled>

+      <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>

+      <cidr-mask>true</cidr-mask>

+      <backoutOnFailure>true</backoutOnFailure>

+      <gateway-address>10.10.125.1</gateway-address>

+   </networkParams>

+   <msoRequest>

+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+      <serviceInstanceId>null</serviceInstanceId>

+   </msoRequest>

+   <messageId>messageId_generated</messageId>

+   <notificationUrl/>

+</updateNetworkRequest>"""

+

+	  String updateNetworkResponseREST =

+  """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.openecomp.mso/network">

+	<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+	<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+    <networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>

+	<networkStackId></networkStackId>

+	<subnetMap>

+		<entry>

+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+		</entry>

+		<entry>

+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+		</entry>

+	</subnetMap>

+	<rollback>

+		<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+		<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+		<networkStackId></networkStackId>

+		<networkType>CONTRAIL_EXTERNAL</networkType>

+		<networkUpdated>true</networkUpdated>

+		<tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+		<cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+		<msoRequest>

+			<requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+			<serviceInstanceId></serviceInstanceId>

+		</msoRequest>

+	</rollback>

+	<messageId>messageId_generated</messageId>

+</ns2:updateNetworkContrailResponse>"""

+

+	  String updateRollbackNetworkRequest =

+	  """<rollbackNetworkRequest>

+   <networkRollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkUpdated>true</networkUpdated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </networkRollback>

+</rollbackNetworkRequest>"""

+

+	  String updateNetworkResponse =

+	  """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.openecomp.mso/network"

+                                    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

+   <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+   <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+   <networkStackId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkStackId>

+	<networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>

+   <subnetIdMap>

+      <entry>

+         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>

+         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>

+      </entry>

+   </subnetIdMap>

+   <rollback>

+      <cloudId>RDM2WAGPLCP</cloudId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+      <networkUpdated>true</networkUpdated>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkUpdated>false</networkUpdated>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+   </rollback>

+</ns2:updateNetworkContrailResponse>"""

+

+	  String updateContrailAAIPayloadRequest =

+  """<l3-network xmlns="http://org.openecomp.aai.inventory/v9">

+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+   <network-type>CONTRAIL_EXTERNAL</network-type>

+   <network-role>dmz_direct</network-role>

+   <network-technology>contrail</network-technology>

+   <neutron-network-id>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutron-network-id>

+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+   <network-role-instance>0</network-role-instance>

+   <resource-version>l3-version</resource-version>

+   <orchestration-status>Active</orchestration-status>

+   <heat-stack-id>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</heat-stack-id>

+   <contrail-network-fqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</contrail-network-fqdn>

+   <physical-network-name>networkName</physical-network-name>

+   <is-provider-network>false</is-provider-network>

+   <is-shared-network>true</is-shared-network>

+   <is-external-network>false</is-external-network>

+   <subnets>

+      <subnet>

+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>

+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>

+         <gateway-address>107.239.52.1</gateway-address>

+         <network-start-address>107.239.52.0</network-start-address>

+         <cidr-mask>24</cidr-mask>

+         <ip-version>4</ip-version>

+         <orchestration-status>Active</orchestration-status>

+         <dhcp-enabled>true</dhcp-enabled>

+         <subnet-name>subnetName</subnet-name>

+      </subnet>

+   </subnets>

+   <segmentation-assignments>

+      <segmentation-id>414</segmentation-id>

+      <resource-version>4132176</resource-version>

+   </segmentation-assignments>

+   <segmentation-assignments>

+      <segmentation-id>415</segmentation-id>

+      <resource-version>4132176</resource-version>

+   </segmentation-assignments>

+   <ctag-assignments>

+      <ctag-assignment>

+         <vlan-id-inner>inner</vlan-id-inner>

+         <resource-version>ctag-version</resource-version>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>tenant.tenant-name</property-key>

+                  <property-value>MSOTest1</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>

+               </related-to-property>

+            </relationship>

+            <relationship>

+               <related-to>vpn-binding</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>

+               <relationship-data>

+                  <relationship-key>vpn-binding.vpn-id</relationship-key>

+                  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>vpn-binding.vpn-name</property-key>

+                  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

+      </ctag-assignment>

+   </ctag-assignments>

+   <relationship-list>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>vpn-binding</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>

+         <relationship-data>

+            <relationship-key>vpn-binding.vpn-id</relationship-key>

+            <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>tenant</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+         <relationship-data>

+            <relationship-key>tenant.tenant-id</relationship-key>

+            <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>network-policy</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>

+         <relationship-data>

+            <relationship-key>network-policy.network-policy-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+      <relationship>

+         <related-to>route-table-reference</related-to>

+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>

+         <relationship-data>

+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>

+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>

+         </relationship-data>

+      </relationship>

+   </relationship-list>

+</l3-network>"""

+

+

+	  String updateContrailAAIResponse =

+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+                   statusCode="200">

+   <rest:headers>

+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>

+      <rest:header name="Content-Length" value="0"/>

+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>

+      <rest:header name="Server" value="Apache-Coyote/1.1"/>

+      <rest:header name="Cache-Control" value="private"/>

+   </rest:headers>

+</rest:RESTResponse>"""

+

+	  String updateNetworkErrorResponse =

+	  """<updateNetworkError>

+		 <messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>

+		 <message>400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.network.properties: : Unknown Property network_ipam_refs_data</message>

+		 <rolledBack>true</rolledBack>

+	   </updateNetworkError>"""

+

+

+  String networkException500 =

+  """<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>"http://org.openecomp.mso/network", the namespace on the "updateNetworkContrail" element, is not a valid SOAP version.</faultstring></soap:Fault></soap:Body></soap:Envelope>"""

+

+	String aaiResponse =

+   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+					 statusCode="200">

+	 <rest:headers>

+		<rest:header name="Transfer-Encoding" value="chunked"/>

+		<rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>

+		<rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>

+		<rest:header name="X-AAI-TXID"

+					 value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>

+		<rest:header name="Content-Type" value="application/xml"/>

+		<rest:header name="Server" value="Apache-Coyote/1.1"/>

+		<rest:header name="Cache-Control" value="private"/>

+	 </rest:headers>

+	 <rest:payload contentType="text/xml">

+		<l3-network xmlns="http://org.openecomp.aai.inventory/v3">

+		   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>

+		   <network-name>HSL_direct_net_2</network-name>

+		   <network-type>CONTRAIL_BASIC</network-type>

+		   <network-role>HSL_direct</network-role>

+		   <network-technology>contrail</network-technology>

+		   <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>

+		   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		   <orchestration-status>active</orchestration-status>

+		   <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>

+		   <subnets>

+			  <subnet>

+				 <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>

+				 <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>

+				 <gateway-address>172.16.34.1</gateway-address>

+				 <network-start-address>172.16.34.0</network-start-address>

+				 <cidr-mask>28</cidr-mask>

+				 <ip-version>4</ip-version>

+				 <orchestration-status>active</orchestration-status>

+				 <dhcp-enabled>true</dhcp-enabled>

+				 <relationship-list/>

+			  </subnet>

+		   </subnets>

+		   <relationship-list>

+			  <relationship>

+				 <related-to>tenant</related-to>

+				 <related-link>https://aai-app-e2e.test.com:8443/aai/v3/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>

+				 <relationship-data>

+					<relationship-key>tenant.tenant-id</relationship-key>

+					<relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>

+				 </relationship-data>

+			  </relationship>

+		   </relationship-list>

+		</l3-network>

+	 </rest:payload>

+  </rest:RESTResponse>"""

+

+	String changeAssignSDNCRequest =

+    """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>changeassign</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>NetworkActivateRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-request-information>

+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String assignResponse =

+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sdncadapterworkflow:response-data> <tag0:CallbackHeader> <tag0:RequestId>006927ca-f5a3-47fd-880c-dfcbcd81a093</tag0:RequestId> <tag0:ResponseCode>200</tag0:ResponseCode> <tag0:ResponseMessage>OK</tag0:ResponseMessage> </tag0:CallbackHeader> <tag0:RequestData xsi:type="xs:string"><output xmlns="com:att:sdnctl:vnf"><response-code>200</response-code><svc-request-id>006927ca-f5a3-47fd-880c-dfcbcd81a093</svc-request-id><ack-final-indicator>Y</ack-final-indicator><service-information><subscriber-name>notsurewecare</subscriber-name><service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id><service-instance-id>GN_EVPN_direct_net_0_ST_noGW</service-instance-id></service-information><network-information><network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id></network-information></output></tag0:RequestData> </sdncadapterworkflow:response-data> </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+  String sdncRollbackRequest =

+			  """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>NetworkActivateRequest</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+	   String sdncAdapterWorkflowResponse =

+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+   <sdncadapterworkflow:response-data>

+<tag0:CallbackHeader xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>

+   <tag0:ResponseCode>200</tag0:ResponseCode>

+   <tag0:ResponseMessage>OK</tag0:ResponseMessage>

+</tag0:CallbackHeader>

+   <tag0:RequestData xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1"

+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+                  xsi:type="xs:string">&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;00703dc8-71ff-442d-a4a8-3adc5beef6a9&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+

+	  String sdncAdapterWorkflowResponse_Error =

+	  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1"

+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+                                                 xmlns="com:att:sdnctl:vnf">

+   <sdncadapterworkflow:response-data>

+      <tag0:RequestData xsi:type="xs:string">

+         <output>

+            <response-code>400</response-code>

+            <response-message>Error writing to l3-netework</response-message>

+            <ack-final-indicator>Y</ack-final-indicator>

+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>

+         </output>

+      </tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+	  String expected_sdncAdapterWorkflowResponse_Error =

+  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns="com:att:sdnctl:vnf"

+                                                 xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1"

+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

+   <sdncadapterworkflow:response-data>

+      <tag0:RequestData xsi:type="xs:string">

+         <output>

+            <response-code>400</response-code>

+            <response-message>Error writing to l3-netework</response-message>

+            <ack-final-indicator>Y</ack-final-indicator>

+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>

+         </output>

+      </tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+	  String sdncAdapterWorkflowFormattedResponse =

+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                   xmlns="com:att:sdnctl:vnf">

+   <aetgt:response-data>

+      <output>

+         <svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id>

+         <response-code>200</response-code>

+         <ack-final-indicator>Y</ack-final-indicator>

+         <network-information>

+            <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>

+         </network-information>

+         <service-information>

+            <service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+            <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+            <subscriber-name>notsurewecare</subscriber-name>

+         </service-information>

+      </output>

+   </aetgt:response-data>

+</aetgt:SDNCAdapterWorkflowResponse>"""

+

+String rollbackSDNCRequest =

+"""<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                                  xmlns:ns5="http://org.openecomp/mso/request/types/v1"

+                                  xmlns:sdncadapter="http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1">

+   <sdncadapter:RequestHeader>

+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>

+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>

+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>

+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>

+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>

+   </sdncadapter:RequestHeader>

+   <aetgt:SDNCRequestData>

+      <request-information>

+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+         <request-action>CreateNetworkInstance</request-action>

+         <source>VID</source>

+         <notification-url/>

+         <order-number/>

+         <order-version/>

+      </request-information>

+      <service-information>

+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+         <service-type>MSO-dev-service-type</service-type>

+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>

+         <subscriber-name>MSO_1610_dev</subscriber-name>

+      </service-information>

+      <network-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <ecomp-model-information>

+            <model-invariant-uuid>invariant-uuid</model-invariant-uuid>

+            <model-customization-uuid>customization-uuid</model-customization-uuid>

+            <model-uuid>uuid</model-uuid>

+            <model-version>version</model-version>

+            <model-name>CONTRAIL_EXTERNAL</model-name>

+         </ecomp-model-information>

+      </network-information>

+      <network-request-information>

+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>

+         <network-type>CONTRAIL_EXTERNAL</network-type>

+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>

+         <tenant>7dd5365547234ee8937416c65507d266</tenant>

+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>

+      </network-request-information>

+   </aetgt:SDNCRequestData>

+</aetgt:SDNCAdapterWorkflowRequest>"""

+

+String rollbackNetworkRequest =

+"""<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">

+   <rollback>

+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>

+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>

+      <networkStackId/>

+      <networkType>CONTRAIL_EXTERNAL</networkType>

+      <networkCreated>true</networkCreated>

+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>

+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>

+      <msoRequest>

+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>

+         <serviceInstanceId/>

+      </msoRequest>

+   </rollback>

+</NetworkAdapter:rollbackNetwork>"""

+

+// - - - - - - - -

+

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+

+		}

+

+		public void initializeVariables (Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "messageId", "")

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "networkInputs", "")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", "")

+			verify(mockExecution).setVariable(Prefix + "requestId", "")

+			verify(mockExecution).setVariable(Prefix + "source", "")

+			verify(mockExecution).setVariable(Prefix + "networkId", "")

+

+			verify(mockExecution).setVariable(Prefix + "isPONR", false)

+

+			// AAI query Cloud Region

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo","")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", false)

+

+			// AAI query Id

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "")

+

+			// AAI query vpn binding

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", null)

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 0)

+			verify(mockExecution).setVariable(Prefix + "routeCollection", "")

+

+			// AAI query network policy

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", null)

+			verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)

+			verify(mockExecution).setVariable(Prefix + "networkCollection", "")

+

+			// AAI query route table reference

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", null)

+			verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)

+			verify(mockExecution).setVariable(Prefix + "tableRefCollection", "")

+

+

+			// AAI requery Id

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest","")

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "")

+

+			// AAI update contrail

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest","")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest","")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", "")

+			verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "")

+

+			verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", "")

+			verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")

+			verify(mockExecution).setVariable(Prefix + "networkReturnCode", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", false)

+

+			verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", "")

+			verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")

+			verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "")

+			//verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")

+			verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", false)

+			verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)

+

+			verify(mockExecution).setVariable(Prefix + "isVnfBindingPresent", false)

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+			verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "")

+

+			verify(mockExecution).setVariable(Prefix + "isException", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_NetworkRequest() {

+

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			// Authentications

+			verify(mockExecution).setVariable("action", "UPDATE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequest)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputs)

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", "")

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_vPERNetworkRequest() {

+

+			def networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111",

+                                     "modelName": "CONTRAIL_EXTERNAL",

+									 "modelType": "CONTRAIL_EXTERNAL",

+									 "modelVersion": "1",

+									 "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222",

+									 "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764"

+									}""".trim()

+			

+			println "************ preProcessRequest_Payload ************* "

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")     // optional

+			when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1")        // optional

+			when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL")

+			when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266")

+			when(mockExecution.getVariable("failIfExists")).thenReturn("false")

+			when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")

+			when(mockExecution.getVariable("action")).thenReturn("UPDATE")

+			when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type")

+			when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter")

+			when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc")

+			

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			// Authentications

+			verify(mockExecution).setVariable("action", "UPDATE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedVperNetworkRequest)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedVperNetworkInputs)

+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", "")

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_MissingNetworkId() {

+

+			println "************ preProcessRequest_MissingName() ************* "

+

+			WorkflowException missingNameWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Variable 'network-id' value/element is missing.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			//when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			try {

+				DoUpdateNetworkInstance.preProcessRequest(mockExecution)

+			} catch (Exception ex) {

+				println " Test End - Handle catch-throw BpmnError()! "

+			}

+

+			verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "UPDATE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingNetworkId)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputsMissingNetworkId)

+			verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+			verify(mockExecution).setVariable(Prefix + "networkOutputs", "")

+

+			verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingNameWorkflowException))

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest_MissingCloudRegion() {

+

+			println "************ preProcessRequest_MissingCloudRegion() ************* "

+

+			WorkflowException missingCloudRegionWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "requestDetails has missing 'aic-cloud-region' value/element.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)

+			when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)

+			when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("vnfId")).thenReturn("")

+			when(mockExecution.getVariable("volumeGroupId")).thenReturn("")

+			when(mockExecution.getVariable("networkId")).thenReturn("networkId")

+			when(mockExecution.getVariable("serviceType")).thenReturn("MOG")

+			when(mockExecution.getVariable("networkType")).thenReturn("modelName")

+

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest_MissingCloudRegion)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")

+			when(mockExecution.getVariable("disableRollback")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			try {

+				DoUpdateNetworkInstance.preProcessRequest(mockExecution)

+			} catch (Exception ex) {

+				println " Test End - Handle catch-throw BpmnError()! "

+			}

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")

+

+			//verify variable initialization

+			initializeVariables(mockExecution)

+

+			verify(mockExecution).setVariable("action", "UPDATE")

+			verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingCloudRegion)

+			verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)

+			verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputMissingCloudRegion)

+			verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			verify(mockExecution).setVariable(Prefix + "source", "VID")

+

+			verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingCloudRegionWorkflowException))

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareUpdateNetworkRequest() {

+

+			println "************ prepareNetworkRequest ************* "

+						ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedVperNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+

+			verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void prepareUpdateNetworkRequest_NoPhysicalname() {

+

+			println "************ prepareNetworkRequest ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(NetworkRequest_noPhysicalName)

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")

+			when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")

+			//when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)

+			when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")

+			when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")

+			when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			//when(mockExecution.getVariable("URN_?????")).thenReturn("")   // notificationUrl, //TODO - is this coming from URN? What variable/value to use?

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+

+			verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest_noPhysicalName)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRequest() {

+

+			println "************ prepareSDNCRequest ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.prepareSDNCRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", changeAssignSDNCRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareSDNCRollbackRequest() {

+

+			println "************ prepareSDNCRollbackRequest ************* "

+

+

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")

+			when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+			when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(assignResponse)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.prepareSDNCRollbackRequest(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRollbackRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkId_200() {

+

+			println "************ callRESTQueryAAINetworkId ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkId(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion30_200() {

+

+			println "************ callRESTQueryAAICloudRegion30_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion25_200() {

+

+			println "************ callRESTQueryAAICloudRegion25_200 ************* "

+

+			WireMock.reset();

+		    MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAICloudRegion_NotFound() {

+

+			println "************ callRESTQueryAAICloudRegionFake ************* "

+

+			WireMock.reset();

+			MockGetNetworkCloudRegion_404("MDTWNJ21");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestFakeRegion)

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/MDTWNJ21")

+			verify(mockExecution, atLeast(1)).setVariable(Prefix + "queryCloudRegionReturnCode", "404")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21")

+			verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25")

+			verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_200() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) // v6

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 2)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_TestScenario01_200() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponseTestScenario01)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 1)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 2)

+			verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkVpnBinding_NotPresent() {

+

+			println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* "

+

+			WireMock.reset();

+			MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponseVpnNotPresent)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")

+			verify(mockExecution).setVariable(Prefix + "vpnCount", 0)

+			verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", aaiVpnResponseStub)

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkTableRef_200() {

+

+			println "************ callRESTQueryAAINetworkTableRef_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");

+			MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_table_reference_uri")).thenReturn("")

+			when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_route_table_reference_uri")).thenReturn("/aai/v8/network/route-table-references/route-table-reference")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkTableRef(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 2)

+			verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", ['/aai/v8/network/route-table-references/route-table-reference/refFQDN1','/aai/v8/network/route-table-references/route-table-reference/refFQDN2'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest", "http://localhost:8090/aai/v8/network/route-table-references/route-table-reference/refFQDN1?depth=all")

+			verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")

+

+		}

+

+		@Test

+		//@Ignore

+		public void callRESTQueryAAINetworkPolicy_200() {

+

+			println "************ callRESTQueryAAINetworkPolicy_200 ************* "

+

+			WireMock.reset();

+			MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")

+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_network_policy_uri")).thenReturn("/aai/v8/network/network-policies/network-policy")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTQueryAAINetworkPolicy(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 1)

+			verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", ['/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg'])

+			// the last vpnBinding value is saved.

+			verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest", "http://localhost:8090/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg?depth=all")

+			verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void callRESTReQueryAAINetworkId_200() {

+

+			println "************ callRESTReQueryAAINetworkId ************* "

+

+			WireMock.reset();

+			MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTReQueryAAINetworkId(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "200")

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void callRESTUpdateContrailAAINetworkREST_200() {

+

+			println "************ callRESTUpdateContrailAAINetwork ************* "

+

+			WireMock.reset();

+			MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");

+			

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse)

+			when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)

+			when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)

+			when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090")

+			when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/')

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1")

+			verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest", updateContrailAAIPayloadRequest)

+			verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "200")

+			//verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", updateContrailAAIResponse)

+			verify(mockExecution).setVariable(Prefix + "isPONR", true)

+

+		}

+

+

+

+		@Test

+		//@Ignore

+		public void validateUpdateNetworkResponseREST() {

+

+			println "************ validateNetworkResponse ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)

+			when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200')

+

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)

+

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", updateNetworkResponseREST)

+			verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", true)

+			verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", updateRollbackNetworkRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateUpdateNetworkResponseREST_Error() {

+

+			println "************ validateNetworkResponse ************* "

+

+			WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(networkException500)

+			when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('500')

+

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			try {

+				DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)

+			} catch (Exception ex) {

+				println " Test End - Handle catch-throw BpmnError()! "

+			}

+

+			verify(mockExecution).setVariable("prefix", Prefix + "")

+			verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(workflowException, any(WorkflowException.class)))

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse() {

+

+			println "************ validateSDNCResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true)

+

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			try {

+			  DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)

+			  verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+			  verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")

+

+			} catch (Exception ex) {

+				println " Graceful Exit - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			//verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void validateSDNCResponse_Error() {

+

+			println "************ validateSDNCResponse ************* "

+			//ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error)

+			when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")

+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)

+			when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")

+			when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true)

+

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			try {

+				DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)

+			} catch (Exception ex) {

+				println " Graceful Exit! - " + ex.getMessage()

+			}

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+			// verify set prefix = Prefix + ""

+			//verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareRollbackData() {

+

+			println "************ prepareRollbackData() ************* "

+

+

+

+			WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackNetworkRequest)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.prepareRollbackData(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+		}

+

+		@Test

+		//@Ignore

+		public void postProcessResponse() {

+

+			println "************ postProcessResponse() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false)

+			when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")

+			when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackSDNCRequest)

+			when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("requestId")

+

+			// preProcessRequest(Execution execution)

+			DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()

+			DoUpdateNetworkInstance.postProcessResponse(mockExecution)

+

+			verify(mockExecution, atLeast(3)).getVariable("isDebugLogEnabled")

+			verify(mockExecution, atLeast(3)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+

+		}

+

+		private ExecutionEntity setupMock() {

+

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("DoUpdateNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoUpdateNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("DoUpdateNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("DoUpdateNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+		}

+

+

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceTest.groovy
new file mode 100644
index 0000000..e987d59
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceTest.groovy
@@ -0,0 +1,368 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.ProcessEngineServices

+import org.camunda.bpm.engine.RepositoryService

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.camunda.bpm.engine.repository.ProcessDefinition

+import org.camunda.bpm.engine.runtime.Execution

+import org.junit.Before

+import org.junit.Ignore

+import org.junit.Rule

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils

+import org.openecomp.mso.bpmn.core.WorkflowException

+

+import com.github.tomakehurst.wiremock.junit.WireMockRule

+import org.apache.commons.lang3.*

+

+

+@RunWith(MockitoJUnitRunner.class)

+class UpdateNetworkInstanceTest  {

+

+	@Rule

+	public WireMockRule wireMockRule = new WireMockRule(8090);

+

+		String Prefix="UPDNI_"

+		def utils = new MsoUtils()

+

+		String createDBRequestError =

+"""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

+						<soapenv:Header/>

+						<soapenv:Body>

+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">

+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>

+								<lastModifiedBy>BPMN</lastModifiedBy>

+								<statusMessage>Received error from SDN-C: No availability zone available</statusMessage>

+								<responseBody></responseBody>

+								<requestStatus>FAILED</requestStatus>

+								<vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>

+							</ns:updateInfraRequest>

+					   	</soapenv:Body>

+					   </soapenv:Envelope>"""

+

+	  String falloutHandlerRequest =

+					   """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"

+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">

+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>

+					      <action>UPDATE</action>

+					      <source>VID</source>

+					   </request-info>

+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+							<aetgt:ErrorMessage>Received error from SDN-C: No availability zone available.</aetgt:ErrorMessage>

+							<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+						</aetgt:WorkflowException>

+					</aetgt:FalloutHandlerRequest>"""

+

+	   String completeMsoProcessRequest =

+					   """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"

+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"

+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">

+   <request-info>

+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>

+      <action>UPDATE</action>

+      <source>VID</source>

+   </request-info>

+   <aetgt:status-message>Network has been updated successfully.</aetgt:status-message>

+   <aetgt:mso-bpel-name>BPMN Network action: UPDATE</aetgt:mso-bpel-name>

+</aetgt:MsoCompletionRequest>"""

+

+

+String jsonIncomingRequest =

+"""{ "requestDetails": {

+	      "modelInfo": {

+			"modelType": "networkTyp",

+  			"modelId": "modelId",

+  			"modelNameVersionId": "modelNameVersionId",

+  			"modelName": "CONTRAIL_EXTERNAL",

+  			"modelVersion": "1"

+		  },

+		  "cloudConfiguration": {

+  			"lcpCloudRegionId": "RDM2WAGPLCP",

+  			"tenantId": "7dd5365547234ee8937416c65507d266"

+		  },

+		  "requestInfo": {

+  			"instanceName": "MNS-25180-L-01-dmz_direct_net_1",

+  			"source": "VID",

+  			"callbackUrl": "",

+            "suppressRollback": true,

+	        "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"

+		  },

+		  "relatedInstanceList": [

+		  	{

+    	  		"relatedInstance": {

+       				"instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",

+       				"modelInfo": {

+          				"modelType": "serviceT",

+          				"modelId": "modelI",

+          				"modelNameVersionId": "modelNameVersionI",

+          				"modelName": "modleNam",

+          				"modelVersion": "1"

+       	  			}

+        		}

+     		}

+		  ],

+		  "requestParameters": {

+  			"userParams": [

+               {

+				 "name": "someUserParam1",

+				 "value": "someValue1"

+			   }

+            ]

+		  }

+  }}"""

+

+	    @Before

+		public void init()

+		{

+			MockitoAnnotations.initMocks(this)

+

+		}

+

+		public void initializeVariables(Execution mockExecution) {

+

+			verify(mockExecution).setVariable(Prefix + "source", "")

+			verify(mockExecution).setVariable(Prefix + "Success", false)

+

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", "")

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", "")

+

+		}

+

+		@Test

+		//@Ignore

+		public void preProcessRequest() {

+

+			println "************ preProcessRequest() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)

+

+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			

+			// preProcessRequest(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.preProcessRequest(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+			initializeVariables(mockExecution)

+			//verify(mockExecution).setVariable(Prefix + "Success", false)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void getNetworkModelInfo() {

+

+			println "************ getNetworkModelInfo() ************* "

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.getNetworkModelInfo(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+		}

+

+		@Test

+		//@Ignore

+		public void sendSyncResponse() {

+

+			println "************ sendSyncResponse ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+

+			// preProcessRequest(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.sendSyncResponse(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("UpdateNetworkInstanceResponseCode", "202")

+

+		}

+

+		@Test

+		//@Ignore

+		public void sendSyncError() {

+

+			println "************ sendSyncError ************* "

+

+			ExecutionEntity mockExecution = setupMock()

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")

+			when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")

+

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.sendSyncError(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable("UpdateNetworkInstanceResponseCode", "500")

+

+		}

+

+		@Test

+		//@Ignore

+		public void prepareDBRequestError() {

+

+			println "************ prepareDBRequestError ************* "

+

+			WorkflowException sndcWorkflowException = new WorkflowException("UpdateNetworkInstance", 500, "Received error from SDN-C: No availability zone available")

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+			//when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable("networkId")).thenReturn("")

+			when(mockExecution.getVariable("networkName")).thenReturn("")

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")

+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+			

+			// preProcessRequest(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.prepareDBRequestError(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "createDBRequest", createDBRequestError)

+

+		}

+

+

+		@Test

+		//@Ignore

+		public void prepareCompletion() {

+

+			println "************ postProcessResponse ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")

+			when(mockExecution.getVariable(Prefix + "dbReturnCode")).thenReturn("200")

+

+			// postProcessResponse(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.prepareCompletion(mockExecution)

+

+			// check the sequence of variable invocation

+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()

+			//preDebugger.printInvocations(mockExecution)

+

+			verify(mockExecution).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+			verify(mockExecution).setVariable(Prefix + "CompleteMsoProcessRequest", completeMsoProcessRequest)

+

+		}

+

+		@Test

+		//@Ignore

+		public void buildErrorResponse() {

+

+			println "************ buildErrorResponse ************* "

+

+

+			WorkflowException sndcWorkflowException = new WorkflowException("UpdateNetworkInstance", 5300, "Received error from SDN-C: No availability zone available.")

+

+			ExecutionEntity mockExecution = setupMock()

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("mso-request-id")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")

+			//when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)

+

+			// buildErrorResponse(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.buildErrorResponse(mockExecution)

+

+			verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix)

+			verify(mockExecution).setVariable(Prefix + "FalloutHandlerRequest", falloutHandlerRequest)

+

+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+			//debugger.printInvocations(mockExecution)

+

+		}

+

+		@Test

+		//@Ignore

+		public void postProcessResponse() {

+

+			println "************ postProcessResponse() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+			when(mockExecution.getVariable("CMSO_ResponseCode")).thenReturn("200")

+

+			// postProcessResponse(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.postProcessResponse(mockExecution)

+

+			//verify(mockExecution).getVariable("isDebugLogEnabled")

+			//verify(mockExecution).setVariable("prefix", Prefix)

+

+			verify(mockExecution).setVariable(Prefix + "Success", true)

+

+		}

+

+		@Test

+		//@Ignore

+		public void processRollbackData() {

+

+			println "************ callDBCatalog() ************* "

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+

+			// preProcessRequest(Execution execution)

+			UpdateNetworkInstance UpdateNetworkInstance = new UpdateNetworkInstance()

+			UpdateNetworkInstance.processRollbackData(mockExecution)

+

+			verify(mockExecution).getVariable("isDebugLogEnabled")

+			verify(mockExecution).setVariable("prefix", Prefix)

+

+		}

+

+		private ExecutionEntity setupMock() {

+

+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)

+			when(mockProcessDefinition.getKey()).thenReturn("UpdateNetworkInstance")

+			RepositoryService mockRepositoryService = mock(RepositoryService.class)

+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)

+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("UpdateNetworkInstance")

+			when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")

+			ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)

+			when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)

+

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			// Initialize prerequisite variables

+

+			when(mockExecution.getId()).thenReturn("100")

+			when(mockExecution.getProcessDefinitionId()).thenReturn("UpdateNetworkInstance")

+			when(mockExecution.getProcessInstanceId()).thenReturn("UpdateNetworkInstance")

+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)

+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)

+

+			return mockExecution

+		}

+

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateGenericALaCarteServiceInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateGenericALaCarteServiceInstanceTest.java
new file mode 100644
index 0000000..8419e19
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateGenericALaCarteServiceInstanceTest.java
@@ -0,0 +1,109 @@
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCustomer;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceByName;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit test cases for CreateGenericALaCarteServiceInstance.bpmn
+ */
+public class CreateGenericALaCarteServiceInstanceTest extends WorkflowTest {
+
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public CreateGenericALaCarteServiceInstanceTest() throws IOException {
+		callbacks.put("assign", FileUtil.readResourceFile("__files/VfModularity/SDNCSITopologyAssignCallback.xml"));
+	}
+
+	/**
+	 * Sunny day VID scenario.
+	 *
+	 * @throws Exception
+	 */
+	//@Ignore // File not found - unable to run the test.  Also, Stubs need updating..
+	@Test
+	@Deployment(resources = {
+			"process/CreateGenericALaCarteServiceInstance.bpmn",
+			"subprocess/DoCreateServiceInstance.bpmn",
+			"subprocess/DoCreateServiceInstanceRollback.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/GenericPutService.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/CompleteMsoProcess.bpmn",
+			"subprocess/FalloutHandler.bpmn" })
+	public void sunnyDayAlaCarte() throws Exception {
+
+		logStart();
+
+		//AAI
+		MockGetCustomer("MCBH-1610", "CreateServiceInstance/createServiceInstance_queryGlobalCustomerId_AAIResponse_Success.xml");
+		MockPutServiceInstance("MCBH-1610", "viprsvc", "RaaTest-1-id", "");
+		MockGetServiceInstance("MCBH-1610", "viprsvc", "RaaTest-1-id", "GenericFlows/getServiceInstance.xml");
+		MockNodeQueryServiceInstanceByName("RAATest-1", "");
+		MockNodeQueryServiceInstanceById("RaaTest-1-id", "");
+		//SDNC
+		mockSDNCAdapter(200);
+		//DB
+		mockUpdateRequestDB(200, "DBUpdateResponse.xml");
+
+
+		String businessKey = UUID.randomUUID().toString();
+
+		//String createVfModuleRequest = FileUtil.readResourceFile("__files/SIRequest.json");
+
+		Map<String, String> variables = setupVariables();
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CreateGenericALaCarteServiceInstance", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "CreateGenericALaCarteServiceInstance", "WorkflowResponse");
+		//assertNotNull(workflowResp);
+		System.out.println("Workflow (Synch) Response:\n" + workflowResp);
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "CreateGenericALaCarteServiceInstance", "WorkflowException");
+		String completionReq = BPMNUtil.getVariable(processEngineRule, "CreateGenericALaCarteServiceInstance", "completionRequest");
+		System.out.println("completionReq:\n" + completionReq);
+		System.out.println("workflowException:\n" + workflowException);
+		assertNotNull(completionReq);
+		assertEquals(null, workflowException);
+
+
+		//injectSDNCCallbacks(callbacks, "assign");
+
+		logEnd();
+	}
+
+	// Success Scenario
+	private Map<String, String> setupVariables() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("bpmnRequest", getRequest());
+		variables.put("mso-request-id", "RaaCSIRequestId-1");
+		variables.put("serviceInstanceId","RaaTest-1-id");
+		return variables;
+	}
+
+	public String getRequest() {
+		String request = "{\"requestDetails\":{\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantUuid\":\"uuid-miu-svc-011-abcdef\",\"modelVersionUuid\":\"ASDC_TOSCA_UUID\",\"modelName\":\"SIModelName1\",\"modelVersion\":\"2\"},\"subscriberInfo\":{\"globalSubscriberId\":\"MCBH-1610\",\"subscriberName\":\"Kaneohe\"},\"requestInfo\":{\"instanceName\":\"RAATest-1\",\"source\":\"VID\",\"suppressRollback\":\"true\",\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"mdt1\",\"tenantId\":\"8b1df54faa3b49078e3416e21370a3ba\"},\"requestParameters\":{\"subscriptionServiceType\":\"viprsvc\",\"aLaCarte\":\"false\",\"userParams\":[]}}}";
+		return request;
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateNetworkInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateNetworkInstanceTest.java
new file mode 100644
index 0000000..30cd4a5
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateNetworkInstanceTest.java
@@ -0,0 +1,645 @@
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.*;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterPost;
+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterRestRollbackDelete;
+// new mock methods
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter_500;
+import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
+
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
+import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+
+/**
+ * Unit test cases for CreateNetworkInstance.bpmn
+ *
+ */
+public class CreateNetworkInstanceTest extends WorkflowTest {
+	@WorkflowTestTransformer
+	public static final ResponseTransformer sdncAdapterMockTransformer =
+		new SDNCAdapterNetworkTopologyMockTransformer();
+
+	@Rule
+	public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
+		new SDNCAdapterCallbackRule(processEngineRule);
+
+	/**
+	 * End-to-End flow - Unit test for CreateNetworkInstance.bpmn
+	 *  - String input & String response
+	 */
+
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_vIPER_Success1() throws Exception {
+
+		System.out.println("-----------------------------------------------------------------");
+		System.out.println("    Success vIPER 1 - CreateNetworkInstance flow Started!       ");
+		System.out.println("-----------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
+		MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
+		MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		System.out.println("----------------------------------------------------------");
+		System.out.println("- got workflow response -");
+		System.out.println("----------------------------------------------------------");
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    assertEquals("true", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+	    Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
+
+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "CreateNetworkInstance", "WorkflowResponse");
+		Assert.assertNotNull(workflowResp);
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("   Success vIPER 1 - CreateNetworkInstance flow Completed      ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+			 				 "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_vIPER_Success2() throws Exception {
+
+		System.out.println("----------------------------------------------------------------");
+		System.out.println("  Success viPER 2 - CreateNetworkInstance flow Started!      ");
+		System.out.println("----------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
+		MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
+		MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables2();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    assertEquals("true", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+	    Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
+
+	    String completeMsoProcessRequest =
+	    		"<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'
+	    	  + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'
+	    	  + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'
+	    	  + "   <request-info>"  + '\n'
+	    	  + "      <request-id>testRequestId</request-id>"  + '\n'
+	    	  + "      <action>CREATE</action>"  + '\n'
+	    	  + "      <source>VID</source>"  + '\n'
+	    	  + "   </request-info>"  + '\n'
+	    	  + "   <aetgt:status-message>Network has been created successfully.</aetgt:status-message>"  + '\n'
+	    	  + "   <aetgt:mso-bpel-name>BPMN Network action: CREATE</aetgt:mso-bpel-name>" + '\n'
+	    	  + "</aetgt:MsoCompletionRequest>";
+
+	    Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
+
+		System.out.println("---------------------------------------------------------");
+		System.out.println("  Success viPER 2 - CreateNetworkInstance flow Completed     ");
+		System.out.println("---------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+                             "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+			 			     "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_VID_1610_Network_SDNC_Rollback() throws Exception {
+
+		System.out.println("--------------------------------------------------------------------------");
+		System.out.println("    Network and SDNC Rollback - CreateNetworkInstance flow Started!       ");
+		System.out.println("--------------------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>assign");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
+		MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+		MockNetworkAdapterRestRollbackDelete("deleteNetworkResponse_Success.xml","49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+
+		Map<String, String> variables = setupVariablesVID1();
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+	    Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println(" Network and SCNC Rollback - CreateNetworkInstance flow Completed   ");
+		System.out.println("--------------------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+                             "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+			 			     "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_vIPER_1702_Network_SDNC_Rollback() throws Exception {
+
+		System.out.println("--------------------------------------------------------------------------");
+		System.out.println("    Network and SDNC Rollback - CreateNetworkInstance flow Started!       ");
+		System.out.println("--------------------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>unassign");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>deactivate");
+		MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
+		MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+		MockNetworkAdapterRestRollbackDelete("deleteNetworkResponse_Success.xml","49c86598-f766-46f8-84f8-8d1c1b10f9b4");		
+
+		Map<String, String> variables = setupVariables1();
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+	    Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println(" Network and SCNC Rollback - CreateNetworkInstance flow Completed   ");
+		System.out.println("--------------------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+                             "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+			                 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_sdncFailure() throws Exception {
+
+		System.out.println("----------------------------------------------------------------");
+		System.out.println("        SNDC Failure - CreateNetworkInstance flow Started!      ");
+		System.out.println("----------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapter_500("SvcAction>query");
+		MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables2();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+	    Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
+
+		System.out.println("---------------------------------------------------------");
+		System.out.println("     SNDC Failure - CreateNetworkInstance flow Completed ");
+		System.out.println("---------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+							 "subprocess/GenericGetService.bpmn",
+							 "subprocess/FalloutHandler.bpmn",
+							 "subprocess/CompleteMsoProcess.bpmn",
+							 "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_queryServiceInstance404() throws Exception {
+
+		System.out.println("----------------------------------------------------------------------------------");
+		System.out.println(" Query ServiceIntance Not found - CreateNetworkInstance flow Started! ");
+		System.out.println("----------------------------------------------------------------------------------");
+	
+		//setup simulators
+		mockSDNCAdapter_500("SvcAction>query");
+		MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById_404("f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+	
+		Map<String, String> variables = setupVariables2();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+	
+		assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+		assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
+		Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
+	
+		System.out.println("---------------------------------------------------------------------------------");
+		System.out.println(" Query ServiceIntance Not found - CreateNetworkInstance flow Completed ");
+		System.out.println("---------------------------------------------------------------------------------");
+
+	}	
+	
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstance.bpmn",
+							 "subprocess/DoCreateNetworkInstanceRollback.bpmn",
+							 "subprocess/GenericGetService.bpmn",
+							 "subprocess/FalloutHandler.bpmn",
+							 "subprocess/CompleteMsoProcess.bpmn",
+            				 "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceCreateNetworkInstance_VID_Success1() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("  Success VID1 - CreateNetworkInstance flow Started!      ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>assign");
+		MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
+		MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesVID1();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
+		System.out.println("----------------------------------------------------------");
+		System.out.println("- got workflow response -");
+		System.out.println("----------------------------------------------------------");
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
+	    Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
+
+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "CreateNetworkInstance", "WorkflowResponse");
+		Assert.assertNotNull(workflowResp);
+
+		System.out.println("-----------------------------------------------------------");
+		System.out.println("  Success VID1 - CreateNetworkInstanceInfra flow Completed ");
+		System.out.println("-----------------------------------------------------------");
+
+	}
+
+	// *****************
+	// Utility Section
+	// *****************
+
+	String networkModelInfo =
+		       "  {\"modelUuid\": \"mod-inst-uuid-123\", " + '\n' +
+               "   \"modelName\": \"mod_inst_z_123\", " + '\n' +
+		       "   \"modelVersion\": \"mod-inst-uuid-123\", " + '\n' +
+		       "   \"modelCustomizationUuid\": \"z_network_123\", " + '\n' +
+		       "   \"modelInvariantUuid\": \"mod-invar-uuid-123\" " + '\n' +
+		       "  }";
+
+	String serviceModelInfo =
+		       "  {\"modelUuid\": \"36a3a8ea-49a6-4ac8-b06c-89a54544b9b6\", " + '\n' +
+               "   \"modelName\": \"HNGW Protected OAM\", " + '\n' +
+		       "   \"modelVersion\": \"1.0\", " + '\n' +
+		       "   \"modelInvariantUuid\": \"fcc85cb0-ad74-45d7-a5a1-17c8744fdb71\" " + '\n' +
+		       "  }";
+
+	// Success Scenario
+	private Map<String, String> setupVariables1() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "networkId");
+		variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_1");
+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
+		variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("disableRollback", "false"); // macro
+		variables.put("failIfExists", "false");
+		variables.put("sdncVersion", "1702");
+		variables.put("subscriptionServiceType", "MSO-dev-service-type");
+		variables.put("globalSubscriberId", "globalId_45678905678");
+		variables.put("networkModelInfo", networkModelInfo);
+		variables.put("serviceModelInfo", serviceModelInfo);
+
+
+		return variables;
+
+	}
+
+	// Success Scenario 2
+	private Map<String, String> setupVariables2() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "networkId");
+		variables.put("networkName", "myOwn_Network");  // Name Not found in AA&I
+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
+		variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("disableRollback", "false");  // 1702
+		variables.put("failIfExists", "false");
+		//variables.put("sdncVersion", "1702");
+		variables.put("sdncVersion", "1707");
+		variables.put("subscriptionServiceType", "MSO-dev-service-type");
+		variables.put("globalSubscriberId", "globalId_45678905678");
+		variables.put("networkModelInfo", networkModelInfo);
+		variables.put("serviceModelInfo", serviceModelInfo);
+
+		return variables;
+
+	}
+
+	// Active Scenario
+	private Map<String, String> setupVariablesActive() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "networkId");
+		variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_2");   // Unique name for Active
+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
+		variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("suppressRollback", "false");
+		variables.put("disableRollback", "false");
+		variables.put("failIfExists", "false");
+		variables.put("sdncVersion", "1702");
+		variables.put("subscriptionServiceType", "MSO-dev-service-type");
+		variables.put("globalSubscriberId", "globalId_45678905678");
+		variables.put("networkModelInfo", networkModelInfo);
+		variables.put("serviceModelInfo", serviceModelInfo);
+
+		return variables;
+
+	}
+
+	// Missing Name Scenario
+	private Map<String, String> setupVariablesMissingName() {
+		Map<String, String> variables = new HashMap<String, String>();
+		//variables.put("bpmnRequest", getCreateNetworkRequestMissingName());
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "networkId");
+		// variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_2");  // Missing 'name' variable
+		// variables.put("networkName", "");                                 // Missing 'value' of name variable
+		variables.put("modelName", "CONTRAIL_EXTERNAL");
+		variables.put("cloudConfiguration", "RDM2WAGPLCP");
+		variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("suppressRollback", "true");
+		variables.put("failIfExists", "false");
+
+		return variables;
+
+	}
+
+	// SDNC Rollback Scenario
+	private Map<String, String> setupVariablesSDNCRollback() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "networkId");
+		variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_3");  // Unique name for Rollback
+		variables.put("modelName", "CONTRAIL_EXTERNAL");
+		variables.put("cloudConfiguration", "RDM2WAGPLCP");
+		variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("suppressRollback", "true");
+		variables.put("disableRollback", "false");
+
+		return variables;
+
+	}
+
+	// old
+	public String getCreateNetworkRequestActive() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelCustomizationUuid\": \"modelCustUuid\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_2\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"false\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+
+	}
+
+	public String getCreateNetworkRequestSDNCRollback() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_3\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+
+		return request;
+	}
+
+
+	// VID json input
+	private Map<String, String> setupVariablesVID1() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("bpmnRequest", getCreateNetworkRequestVID1());
+		variables.put("mso-request-id", "testRequestId");
+		//variables.put("msoRequestId", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "CREATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		//variables.put("networkId", "networkId");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequestVID1() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1.0\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_1\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"false\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"backoutOnFailure\": false, " + '\n' +
+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java
index e70f48d..d361d1e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java
@@ -20,6 +20,10 @@
 
 package org.openecomp.mso.bpmn.infrastructure;
 
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;
 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupByName;
@@ -27,6 +31,7 @@
 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVolumeGroupById;
 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPostVNFVolumeGroup;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPutVNFVolumeGroupRollback;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -34,10 +39,12 @@
 import java.util.UUID;
 
 import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.openecomp.mso.bpmn.common.WorkflowTest;
 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
 import org.openecomp.mso.bpmn.mock.FileUtil;
+import org.openecomp.mso.bpmn.mock.StubResponseAAI;
 
 public class CreateVfModuleVolumeInfraV1Test extends WorkflowTest {
 
@@ -48,6 +55,8 @@
 	public CreateVfModuleVolumeInfraV1Test() throws IOException {
 		callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
 				"__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml"));
+		callbacks.put("volumeGroupDelete", FileUtil.readResourceFile(
+				"__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml"));
 		callbacks.put("volumeGroupException", FileUtil.readResourceFile(
 				"__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml"));
 		callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
@@ -58,9 +67,10 @@
 	 * Happy path scenario for VID
 	 *****************************/
 	@Test
+	//@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
-			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV2.bpmn",
             "subprocess/FalloutHandler.bpmn",
             "subprocess/CompleteMsoProcess.bpmn",
             "subprocess/VnfAdapterRestV1.bpmn"})
@@ -100,9 +110,61 @@
 	}
 	
 	/**
+	 * Fail - trigger rollback
+	 *****************************/
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV2.bpmn",
+			"subprocess/DoCreateVfModuleVolumeRollback.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestRollback() throws Exception {
+
+		logStart();
+		
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+		MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
+		mockPostVNFVolumeGroup(202);
+		mockPutVNFVolumeGroupRollback("TEST-VOLUME-GROUP-ID-0123", 202);
+		MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 202);
+		StubResponseAAI.MockGetVolumeGroupByName_404("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		StubResponseAAI.MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
+		StubResponseAAI.MockDeleteVolumeGroup("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360");
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		injectVNFRestCallbacks(callbacks, "volumeGroupDelete");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
 	 * Happy path scenario for VID
 	 *****************************/
 	@Test
+	@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
 			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
@@ -145,7 +207,7 @@
 	 *Vnf Create fail
 	 *****************************/
 	@Test
-	//@Ignore
+	@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
 			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
@@ -193,7 +255,7 @@
 	 * Error scenario - vnf not found
 	 ********************************/
 	@Test
-	//@Ignore
+	@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
 			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
@@ -233,7 +295,7 @@
 	 * Error scenario - error in validation
 	 **************************************/
 	@Test
-	//@Ignore
+	@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
 			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
@@ -270,7 +332,7 @@
 	 * Error scenario - service instance not found
 	 *********************************************/
 	@Test
-	//@Ignore
+	@Ignore
 	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
 			"subprocess/GenericGetService.bpmn",
 			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java
index 80c1e8c..4870522 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java
@@ -44,6 +44,7 @@
 import java.util.UUID;
 
 import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.openecomp.mso.bpmn.common.BPMNUtil;
 import org.openecomp.mso.bpmn.common.WorkflowTest;
@@ -134,6 +135,7 @@
 	}
 
 	@Test
+	@Ignore
 	@Deployment(resources = {"subprocess/DoCreateVnf.bpmn", "subprocess/GenericGetService.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericPutVnf.bpmn", "process/CreateVnfInfra.bpmn", "subprocess/FalloutHandler.bpmn", "subprocess/CompleteMsoProcess.bpmn"})
 	public void testCreateVnfInfra_error_siNotFound() throws Exception{
 
@@ -151,6 +153,7 @@
 	}
 
 	@Test
+	@Ignore
 	@Deployment(resources = {"subprocess/DoCreateVnf.bpmn", 
 							"subprocess/GenericGetService.bpmn", 
 							"subprocess/GenericGetVnf.bpmn", 
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteGenericALaCarteServiceInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteGenericALaCarteServiceInstanceTest.java
new file mode 100644
index 0000000..d9e882b
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteGenericALaCarteServiceInstanceTest.java
@@ -0,0 +1,91 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.junit.Assert.assertEquals;

+import static org.junit.Assert.assertNotNull;

+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;

+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+

+/**

+ * Unit test cases for DelServiceInstance.bpmn

+ */

+public class DeleteGenericALaCarteServiceInstanceTest extends WorkflowTest {

+

+	public DeleteGenericALaCarteServiceInstanceTest() throws IOException {

+	}

+

+	/**

+	 * Sunny day VID scenario.

+	 *

+	 * @throws Exception

+	 */

+    @Ignore // IGNORED FOR 1710 MERGE TO ONAP

+	@Test

+	@Deployment(resources = {

+			"process/DeleteGenericALaCarteServiceInstance.bpmn",

+			"subprocess/DoDeleteServiceInstance.bpmn",

+			"subprocess/GenericDeleteService.bpmn",

+			"subprocess/GenericGetService.bpmn",

+			"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/FalloutHandler.bpmn" })

+	public void sunnyDayAlaCarte() throws Exception {

+

+		logStart();

+

+		//AAI

+		MockDeleteServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");

+		MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");

+		//DB

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, String> variables = setupVariables();

+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteGenericALaCarteServiceInstance", variables);

+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());

+

+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteGenericALaCarteServiceInstance", "WorkflowResponse");

+		//assertNotNull(workflowResp);

+		System.out.println("Workflow (Synch) Response:\n" + workflowResp);

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteGenericALaCarteServiceInstance", "WorkflowException");

+		String completionReq = BPMNUtil.getVariable(processEngineRule, "DeleteGenericALaCarteServiceInstance", "completionRequest");

+		System.out.println("completionReq:\n" + completionReq);

+		System.out.println("workflowException:\n" + workflowException);

+		assertNotNull(completionReq);

+		assertEquals(null, workflowException);

+

+		logEnd();

+	}

+

+	// Success Scenario

+	private Map<String, String> setupVariables() {

+		Map<String, String> variables = new HashMap<String, String>();

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("bpmnRequest", getRequest());

+		variables.put("mso-request-id", "RaaTestRequestId-1");

+		variables.put("serviceInstanceId","MIS%252F1604%252F0026%252FSW_INTERNET");

+		return variables;

+	}

+

+	public String getRequest() {

+		String request = "{\"requestDetails\":{\"modelInfo\":{\"modelType\":\"service\",\"modelInvariantUuid\":\"uuid-miu-svc-011-abcdef\",\"modelUuid\":\"ASDC_TOSCA_UUID\",\"modelName\":\"SIModelName1\",\"modelVersion\":\"2\"},\"subscriberInfo\":{\"globalSubscriberId\":\"SDN-ETHERNET-INTERNET\",\"subscriberName\":\"\"},\"requestInfo\":{\"instanceName\":\"1604-MVM-26\",\"source\":\"VID\",\"suppressRollback\":\"true\",\"productFamilyId\":\"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\"},\"cloudConfiguration\":{\"lcpCloudRegionId\":\"mdt1\",\"tenantId\":\"8b1df54faa3b49078e3416e21370a3ba\"},\"requestParameters\":{\"subscriptionServiceType\":\"123456789\",\"aLaCarte\":\"false\",\"userParams\":\"somep\"}}}";

+		return request;

+	}

+

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteNetworkInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteNetworkInstanceTest.java
new file mode 100644
index 0000000..0da2526
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteNetworkInstanceTest.java
@@ -0,0 +1,321 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;

+import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterContainingRequest;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Rule;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;

+import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;

+

+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;

+

+

+/**

+ * Unit test cases for DeleteNetworkInstance.bpmn

+ *

+ */

+//@Ignore

+public class DeleteNetworkInstanceTest extends WorkflowTest {

+	@WorkflowTestTransformer

+	public static final ResponseTransformer sdncAdapterMockTransformer =

+		new SDNCAdapterNetworkTopologyMockTransformer();

+

+	@Rule

+	public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =

+		new SDNCAdapterCallbackRule(processEngineRule);

+

+	/**

+	 * End-to-End flow - Unit test for DeleteNetworkInstance.bpmn

+	 *  - String input & String response

+	 */

+

+	@Test

+	//@Ignore

+	@Deployment(resources = {"process/DeleteNetworkInstance.bpmn",

+							 "subprocess/DoDeleteNetworkInstance.bpmn",

+							 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",

+			                 "subprocess/FalloutHandler.bpmn",

+	                         "subprocess/CompleteMsoProcess.bpmn",

+	                         "subprocess/SDNCAdapterV1.bpmn"})

+

+	public void shouldInvokeServiceDeleteNetworkInstance_VID_Success() throws Exception {

+

+		System.out.println("----------------------------------------------------------");

+		System.out.println("      Success VID - DeleteNetworkInstance flow Started!   ");

+		System.out.println("----------------------------------------------------------");

+

+		// setup simulators

+		mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>delete");

+		MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");

+		MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+

+		Map<String, String> variables = new HashMap<String, String>();

+		variables.put("mso-request-id", "testRequestId");

+		variables.put("requestId", "testRequestId");

+		variables.put("isBaseVfModule", "true");

+		variables.put("recipeTimeout", "0");

+		variables.put("requestAction", "DELETE");

+		variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		variables.put("vnfId", "");

+		variables.put("vfModuleId", "");

+		variables.put("volumeGroupId", "");

+		variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");

+		variables.put("serviceType", "MOG");

+		variables.put("vfModuleType", "");

+		variables.put("networkType", "modelName");

+		variables.put("bpmnRequest", getDeleteNetworkInstanceInfraRequest());

+

+		executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);

+

+	    Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));

+	    Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));

+

+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");

+		Assert.assertNotNull(workflowResp);

+		System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_Success() WorkflowResponse:\n" + workflowResp);

+

+	    String completeMsoProcessRequest =

+	    		"<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'

+	    	  + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'

+	    	  + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'

+	    	  + "   <request-info>"  + '\n'

+	    	  + "      <request-id>testRequestId</request-id>"  + '\n'

+	    	  + "      <action>DELETE</action>"  + '\n'

+	    	  + "      <source>VID</source>"  + '\n'

+	    	  + "   </request-info>"  + '\n'

+	    	  + "   <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>"  + '\n'

+	    	  + "   <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'

+	    	  + "</aetgt:MsoCompletionRequest>";

+

+	    Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));

+

+		System.out.println("----------------------------------------------------------");

+		System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");

+		System.out.println("----------------------------------------------------------");

+

+

+	}

+

+	@Test

+	//@Ignore

+	@Deployment(resources = {"process/DeleteNetworkInstance.bpmn",

+							 "subprocess/DoDeleteNetworkInstance.bpmn",

+							 //"subprocess/DoDeleteNetworkInstanceRollback.bpmn",

+			                 "subprocess/FalloutHandler.bpmn",

+	                         "subprocess/CompleteMsoProcess.bpmn",

+	                         "subprocess/SDNCAdapterV1.bpmn"})

+

+	public void shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() throws Exception {

+

+		System.out.println("----------------------------------------------------------");

+		System.out.println("      Success vIPER - DeleteNetworkInstance flow Started! ");

+		System.out.println("----------------------------------------------------------");

+

+		// setup simulators

+		mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>unassign");

+		mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");

+		MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");

+		MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+

+		String networkModelInfo = "  {\"modelName\": \"modelName\", " + '\n' +

+		                          "   \"networkType\": \"modelName\" }";

+

+		Map<String, String> variables = new HashMap<String, String>();

+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");

+		variables.put("msoRequestId", "testRequestId");

+		variables.put("requestId", "testRequestId");

+		variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");

+		variables.put("networkName", "HSL_direct_net_2");

+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");

+		variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		variables.put("disableRollback", "false");  // 1702

+		variables.put("failIfExists", "false");

+		//variables.put("sdncVersion", "1702");

+		variables.put("sdncVersion", "1707");

+		variables.put("subscriptionServiceType", "MSO-dev-service-type");

+		variables.put("networkModelInfo", networkModelInfo);

+

+		executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);

+

+	    Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));

+	    Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));

+

+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");

+		Assert.assertNotNull(workflowResp);

+		System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() WorkflowResponse:\n" + workflowResp);

+

+	    String completeMsoProcessRequest =

+	    		"<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'

+	    	  + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'

+	    	  + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'

+	    	  + "   <request-info>"  + '\n'

+	    	  + "      <request-id>testRequestId</request-id>"  + '\n'

+	    	  + "      <action>DELETE</action>"  + '\n'

+	    	  + "      <source>VID</source>"  + '\n'

+	    	  + "   </request-info>"  + '\n'

+	    	  + "   <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>"  + '\n'

+	    	  + "   <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'

+	    	  + "</aetgt:MsoCompletionRequest>";

+

+	    Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));

+

+		System.out.println("----------------------------------------------------------");

+		System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");

+		System.out.println("----------------------------------------------------------");

+

+

+	}

+

+	@Test

+	//@Ignore

+	@Deployment(resources = {"process/DeleteNetworkInstance.bpmn",

+						 	 "subprocess/DoDeleteNetworkInstance.bpmn",

+						 	 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",

+			                 "subprocess/FalloutHandler.bpmn",

+	                         "subprocess/CompleteMsoProcess.bpmn",

+	                         "subprocess/SDNCAdapterV1.bpmn"})

+

+	public void shouldInvokeServiceDeleteNetworkInstanceInfra_vIPER_Rollback() throws Exception {

+        // Rollback is not Applicable for DeleteNetwork (no requirements). Rollback should not be invoked.

+		System.out.println("----------------------------------------------------------");

+		System.out.println("      Rollback - DeleteNetworkInstance flow Started!      ");

+		System.out.println("----------------------------------------------------------");

+

+		// setup simulatores

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>unassign", 500, "");

+		mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");

+		mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");

+		MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");

+		MockNetworkAdapterContainingRequest("createNetworkRequest", 200, "CreateNetworkV2/createNetworkResponse_Success.xml");

+		MockGetNetworkByIdWithDepth	("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+

+		String networkModelInfo = "  {\"modelCustomizationId\": \"uuid-nrc-001-1234\", " + '\n' +

+                "   \"modelInvariantId\": \"was-ist-das-001-1234\" }";

+

+		Map<String, String> variables = new HashMap<String, String>();

+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");

+		variables.put("msoRequestId", "testRequestId");

+		variables.put("requestId", "testRequestId");

+		variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");

+		variables.put("networkName", "HSL_direct_net_2");

+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");

+		variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		variables.put("disableRollback", "false");  // 1702

+		variables.put("failIfExists", "false");

+		variables.put("sdncVersion", "1702");

+		variables.put("subscriptionServiceType", "MSO-dev-service-type");

+		variables.put("networkModelInfo", networkModelInfo);

+

+		executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);

+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);

+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());

+

+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");

+		Assert.assertNotNull(workflowResp);

+

+		Assert.assertNotNull("DELNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_FalloutHandlerRequest"));

+	    Assert.assertEquals("false", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));

+	    Assert.assertEquals("false", BPMNUtil.getVariable(processEngineRule, "DoDeleteNetworkInstance", "DELNWKI_Success"));

+

+		System.out.println("----------------------------------------------------------");

+		System.out.println("     Rollback - DeleteNetworkInstanceModular flow Completed     ");

+		System.out.println("----------------------------------------------------------");

+

+

+	}

+

+

+	// *****************

+	// Utility Section

+	// *****************

+

+	public String getDeleteNetworkInstanceInfraRequest() {

+

+		String request =

+				"{ \"requestDetails\": { " + '\n' +

+				"      \"modelInfo\": { " + '\n' +

+				"         \"modelType\": \"modelType\", " + '\n' +

+				"         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +

+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +

+				"         \"modelVersion\": \"1.0\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"cloudConfiguration\": { " + '\n' +

+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +

+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"requestInfo\": { " + '\n' +

+				"          \"instanceName\": \"HSL_direct_net_2\", " + '\n' +

+				"          \"source\": \"VID\", " + '\n' +

+				"          \"suppressRollback\": \"false\", " + '\n' +

+				"          \"callbackUrl\": \"\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"requestParameters\": { " + '\n' +

+				"          \"backoutOnFailure\": true, " + '\n' +

+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +

+				"          \"userParams\": {} " + '\n' +

+				"      }	" + '\n' +

+			    " } " + '\n' +

+			    "}";

+		return request;

+

+	}

+

+

+	public String getDeleteNetworkInstanceInfraRequest_MissingId() {

+

+		String request =

+				"{ \"requestDetails\": { " + '\n' +

+				"      \"modelInfo\": { " + '\n' +

+				"         \"modelType\": \"modelType\", " + '\n' +

+				"         \"modelId\": \"modelId\", " + '\n' +

+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +

+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +

+				"         \"modelVersion\": \"1\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"cloudConfiguration\": { " + '\n' +

+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +

+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"requestInfo\": { " + '\n' +

+				"          \"instanceName\": \"HSL_direct_net_2\", " + '\n' +

+				"          \"source\": \"VID\", " + '\n' +

+				"          \"callbackUrl\": \"\" " + '\n' +

+				"      }, " + '\n' +

+				"      \"requestParameters\": { " + '\n' +

+				"          \"backoutOnFailure\": true, " + '\n' +

+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +

+				"          \"userParams\": [] " + '\n' +

+				"      }	" + '\n' +

+			    " } " + '\n' +

+			    "}";

+		return request;

+

+	}

+

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateSIRollbackTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateSIRollbackTest.java
new file mode 100644
index 0000000..f2c9680
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateSIRollbackTest.java
@@ -0,0 +1,179 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.junit.Assert.assertEquals;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.RollbackData;

+

+/**

+ * Unit test cases for DoCreateServiceInstanceRollback.bpmn

+ */

+public class DoCreateSIRollbackTest extends WorkflowTest {

+	private static final String EOL = "\n";

+	private final CallbackSet callbacks = new CallbackSet();

+	private final String sdncAdapterCallback =

+			"<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +

+			"  <svc-request-id>((REQUEST-ID))</svc-request-id>" + EOL +

+			"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +

+			"</output>" + EOL;

+		

+	public DoCreateSIRollbackTest() throws IOException {

+		callbacks.put("deactivate", sdncAdapterCallback);

+		callbacks.put("delete", sdncAdapterCallback);

+	}

+		

+	/**

+	 * Sunny day VID scenario.

+	 *

+	 * @throws Exception

+	 */

+	//@Ignore // File not found - unable to run the test.  Also, Stubs need updating..

+	@Test

+	@Deployment(resources = {

+			"subprocess/DoCreateServiceInstanceRollback.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericDeleteService.bpmn",

+			"subprocess/GenericGetService.bpmn",

+			"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/FalloutHandler.bpmn" })

+	public void sunnyDay() throws Exception {

+

+		logStart();

+

+		//AAI

+		MockDeleteServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");

+		MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");

+		//SDNC

+		mockSDNCAdapter(200);

+		//DB

+		mockUpdateRequestDB(200, "DBUpdateResponse.xml");

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, Object> variables =  new HashMap<String, Object>();

+		setupVariables(variables);

+		invokeSubProcess("DoCreateServiceInstanceRollback", businessKey, variables);

+		injectSDNCCallbacks(callbacks, "deactivate");

+		injectSDNCCallbacks(callbacks, "delete");

+		waitForProcessEnd(businessKey, 10000);

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateServiceInstanceRollback", "WorkflowException");

+		System.out.println("workflowException:\n" + workflowException);

+		assertEquals(null, workflowException);

+

+		logEnd();

+	}

+

+	// Success Scenario

+	private void setupVariables(Map<String, Object> variables) {

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("msoRequestId", "RaaTestRequestId-1");

+		variables.put("mso-request-id", "RaaTestRequestId-1");

+		variables.put("serviceInstanceId","MIS%252F1604%252F0026%252FSW_INTERNET");

+		

+		RollbackData rollbackData = new RollbackData();

+

+		rollbackData.put("SERVICEINSTANCE", "serviceInstanceId", "MIS%252F1604%252F0026%252FSW_INTERNET");

+		rollbackData.put("SERVICEINSTANCE", "globalCustomerId", "SDN-ETHERNET-INTERNET");

+		rollbackData.put("SERVICEINSTANCE", "serviceSubscriptionType", "123456789");

+		rollbackData.put("SERVICEINSTANCE", "disablerollback", "false");

+		rollbackData.put("SERVICEINSTANCE", "rollbackAAI", "true");

+		rollbackData.put("SERVICEINSTANCE", "rollbackSDNC", "true");

+		

+		String req =  "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +

+				 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +

+				 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +

+				 	"<sdncadapter:RequestHeader>" + EOL + 

+					"<sdncadapter:RequestId>b043d290-140d-4a38-a9b6-95d3b8bd27d4</sdncadapter:RequestId>" + EOL + 

+					"<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL + 

+					"<sdncadapter:SvcAction>deactivate</sdncadapter:SvcAction>" + EOL + 

+					"<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL + 

+					"<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL + 

+					"</sdncadapter:RequestHeader>" + EOL + 

+					"<sdncadapterworkflow:SDNCRequestData>" + EOL + 

+					"<request-information>" + EOL + 

+					"<request-id>RaaTestRequestId-1</request-id>" + EOL + 

+					"<source>MSO</source>" + EOL + 

+					"<notification-url/>" + EOL + 

+					"<order-number/>" + EOL + 

+					"<order-version/>" + EOL + 

+					"<request-action>DeleteServiceInstance</request-action>" + EOL + 

+					"</request-information>" + EOL + 

+					"<service-information>" + EOL + 

+					"<service-id/>" + EOL + 

+					"<subscription-service-type>123456789</subscription-service-type>" + EOL + 

+					"<ecomp-model-information>" + EOL + 

+					"<model-invariant-uuid/>" + EOL + 

+					"<model-uuid/>" + EOL + 

+					"<model-version/>" + EOL + 

+					"<model-name/>" + EOL + 

+					"</ecomp-model-information>" + EOL + 

+					"<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL + 

+					"<subscriber-name/>" + EOL + 

+					"<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL + 

+					"</service-information>" + EOL + 

+					"<service-request-input>" + EOL + 

+					"<service-instance-name/>" + EOL + 

+					"</service-request-input>" + EOL + 

+					"</sdncadapterworkflow:SDNCRequestData>" + EOL + 

+					"</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";

+		

+		String req1 = "<sdncadapterworkflow:SDNCAdapterWorkflowRequest xmlns:ns5=\"http://org.openecomp/mso/request/types/v1\"" + EOL +

+				 "xmlns:sdncadapter=\"http://org.openecomp.mso/workflow/sdnc/adapter/schema/v1\" " + EOL +

+				 "xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\">" + EOL +

+				 "<sdncadapter:RequestHeader>" + EOL +

+				"<sdncadapter:RequestId>bca4fede-0804-4c13-af69-9e80b378150f</sdncadapter:RequestId>" + EOL +

+				"<sdncadapter:SvcInstanceId>MIS%252F1604%252F0026%252FSW_INTERNET</sdncadapter:SvcInstanceId>" + EOL + 

+				"<sdncadapter:SvcAction>delete</sdncadapter:SvcAction>" + EOL + 

+				"<sdncadapter:SvcOperation>service-topology-operation</sdncadapter:SvcOperation>" + EOL + 

+				"<sdncadapter:CallbackUrl>http://localhost:8080/mso/SDNCAdapterCallbackService</sdncadapter:CallbackUrl>" + EOL + 

+				"</sdncadapter:RequestHeader>" + EOL + 

+				"<sdncadapterworkflow:SDNCRequestData>" + EOL + 

+				"<request-information>" + EOL + 

+				"<request-id>RaaTestRequestId-1</request-id>" + EOL + 

+				"<source>MSO</source>" + EOL + 

+				"<notification-url/>" + EOL + 

+				"<order-number/>" + EOL + 

+				"<order-version/>" + EOL + 

+				"<request-action>DeleteServiceInstance</request-action>" + EOL + 

+				"</request-information>" + EOL + 

+				"<service-information>" + EOL + 

+				"<service-id/>" + EOL + 

+				"<subscription-service-type>123456789</subscription-service-type>" + EOL + 

+				"<ecomp-model-information>" + EOL + 

+				"<model-invariant-uuid/>" + EOL + 

+				"<model-uuid/>" + EOL + 

+				"<model-version/>" + EOL + 

+				"<model-name/>" + EOL + 

+				"</ecomp-model-information>" + EOL + 

+				"<service-instance-id>MIS%252F1604%252F0026%252FSW_INTERNET</service-instance-id>" + EOL + 

+				"<subscriber-name/>" + EOL + 

+				"<global-customer-id>SDN-ETHERNET-INTERNET</global-customer-id>" + EOL + 

+				"</service-information>" + EOL + 

+				"<service-request-input>" + EOL + 

+				"<service-instance-name/>" + EOL + 

+				"</service-request-input>" + EOL + 

+				"</sdncadapterworkflow:SDNCRequestData>" + EOL + 

+				"</sdncadapterworkflow:SDNCAdapterWorkflowRequest>";

+								

+		rollbackData.put("SERVICEINSTANCE", "sdncDeactivate", req);

+						

+		rollbackData.put("SERVICEINSTANCE", "sdncDelete",req1); 

+		variables.put("rollbackData",rollbackData);

+				

+	}

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateServiceInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateServiceInstanceTest.java
new file mode 100644
index 0000000..359a372
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateServiceInstanceTest.java
@@ -0,0 +1,98 @@
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCustomer;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceByName;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+
+/**
+ * Unit test cases for DoCreateServiceInstance.bpmn
+ */
+public class DoCreateServiceInstanceTest extends WorkflowTest {
+	private static final String EOL = "\n";
+	private final CallbackSet callbacks = new CallbackSet();
+	private final String sdncAdapterCallback =
+			"<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +
+			"  <svc-request-id>((REQUEST-ID))</svc-request-id>" + EOL +
+			"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +
+			"</output>" + EOL;
+		
+	public DoCreateServiceInstanceTest() throws IOException {
+		callbacks.put("assign", sdncAdapterCallback);
+	}
+		
+	/**
+	 * Sunny day VID scenario.
+	 *
+	 * @throws Exception
+	 */
+	//@Ignore // File not found - unable to run the test.  Also, Stubs need updating..
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoCreateServiceInstance.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/GenericPutService.bpmn",
+			"subprocess/CompleteMsoProcess.bpmn",
+			"subprocess/DoCreateServiceInstanceRollback.bpmn",
+			"subprocess/FalloutHandler.bpmn" })
+	public void sunnyDay() throws Exception {
+
+		logStart();
+
+		//AAI
+		MockGetCustomer("MCBH-1610", "CreateServiceInstance/createServiceInstance_queryGlobalCustomerId_AAIResponse_Success.xml");
+		MockPutServiceInstance("MCBH-1610", "viprsvc", "RaaTest-si-id", "");
+		MockGetServiceInstance("MCBH-1610", "viprsvc", "RaaTest-si-id", "GenericFlows/getServiceInstance.xml");
+		MockNodeQueryServiceInstanceByName("RAATest-si", "");
+		
+		MockNodeQueryServiceInstanceById("RaaTest-si-id", "");
+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");
+		MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
+		//SDNC
+		mockSDNCAdapter(200);
+		//DB
+		mockUpdateRequestDB(200, "DBUpdateResponse.xml");
+		String businessKey = UUID.randomUUID().toString();
+
+		Map<String, Object> variables =  new HashMap<String, Object>();
+		setupVariables(variables);
+		invokeSubProcess("DoCreateServiceInstance", businessKey, variables);
+		injectSDNCCallbacks(callbacks, "assign");
+		waitForProcessEnd(businessKey, 10000);
+		Assert.assertTrue(isProcessEnded(businessKey));
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateServiceInstance", "WorkflowException");
+		System.out.println("workflowException:\n" + workflowException);
+		assertEquals(null, workflowException);
+
+		logEnd();
+	}
+
+	// Success Scenario
+	private void setupVariables(Map<String, Object> variables) {
+		variables.put("mso-request-id", "RaaDSITest1");
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("msoRequestId", "RaaDSITestRequestId-1");
+		variables.put("serviceInstanceId","RaaTest-si-id");
+		variables.put("serviceModelInfo", "{\"modelType\":\"service\",\"modelInvariantUuid\":\"uuid-miu-svc-011-abcdef\",\"modelVersionUuid\":\"ASDC_TOSCA_UUID\",\"modelName\":\"SIModelName1\",\"modelVersion\":\"2\"}");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("globalSubscriberId", "MCBH-1610");
+		variables.put("subscriptionServiceType", "viprsvc");
+		variables.put("instanceName", "RAATest-1");
+	}
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java
index 5b0d4c7..ea46bfe 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java
@@ -136,7 +136,8 @@
 		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

 		rollbackData.put("VFMODULE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

 		rollbackData.put("VFMODULE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

-		variables.put("RollbackData", rollbackData);

+		variables.put("rollbackData", rollbackData);

+		variables.put("sdncVersion", "1702");

 		invokeSubProcess("DoCreateVfModuleRollback", businessKey, variables);

 

 		// "changedelete" operation not required for deleting a Vf Module

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java
index fc4816c..565ef02 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java
@@ -22,8 +22,11 @@
 

 

 import static org.openecomp.mso.bpmn.common.BPMNUtil.getRawVariable;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;

@@ -38,10 +41,8 @@
 

 import org.camunda.bpm.engine.test.Deployment;

 import org.junit.Assert;

-import org.junit.Ignore;

 import org.junit.Test;

 import org.openecomp.mso.bpmn.common.WorkflowTest;

-import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;

 import org.openecomp.mso.bpmn.mock.FileUtil;

 

 /**

@@ -56,6 +57,12 @@
 			"__files/VfModularity/SDNCTopologyAssignCallback.xml"));

 		callbacks.put("query", FileUtil.readResourceFile(

 			"__files/VfModularity/SDNCTopologyQueryCallback.xml"));

+		callbacks.put("queryVnf", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVnf.xml"));

+		callbacks.put("queryModuleNoVnf", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVfModuleNoVnf.xml"));

+		callbacks.put("queryModule", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));

 		callbacks.put("activate", FileUtil.readResourceFile(

 			"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

 		callbacks.put("vnfCreate", FileUtil.readResourceFile(

@@ -66,10 +73,11 @@
 	 * Test the sunny day scenario.

 	 */

 	@Test	

-	@Ignore

+	

 	@Deployment(resources = {

 			"subprocess/DoCreateVfModule.bpmn",

 			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

 			"subprocess/VnfAdapterRestV1.bpmn",

 			"subprocess/ConfirmVolumeGroupTenant.bpmn",

 			"subprocess/ConfirmVolumeGroupName.bpmn",

@@ -82,6 +90,54 @@
 		

 		logStart();

 		

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		mockVNFPost("", 202, "skask");	

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		//RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		

+		Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();

+		//runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);

+		invokeSubProcess("DoCreateVfModule", businessKey, variables);

+		

+		injectSDNCCallbacks(callbacks, "queryVnf");

+		injectSDNCCallbacks(callbacks, "assign, queryModuleNoVnf");

+		injectVNFRestCallbacks(callbacks, "vnfCreate");

+		injectSDNCCallbacks(callbacks, "activate");

+

+		waitForProcessEnd(businessKey, 10000);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		Assert.assertTrue((boolean) getRawVariable(processEngineRule, "DoCreateVfModule", "DCVFM_SuccessIndicator"));

+		

+		logEnd();

+	}

+	

+	/**

+	 * Test the sunny day scenario with 1702 SDNC interaction.

+	 */

+	@Test	

+	

+	@Deployment(resources = {

+			"subprocess/DoCreateVfModule.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",

+			"subprocess/ConfirmVolumeGroupName.bpmn",

+			"subprocess/CreateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void sunnyDay_1702() throws IOException {

+		

+		logStart();

+		

 		MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);

 		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

 		MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");

@@ -91,11 +147,72 @@
 		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");

 		mockVNFPost("", 202, "skask");

 		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

 		

 		String businessKey = UUID.randomUUID().toString();

 		//RuntimeService runtimeService = processEngineRule.getRuntimeService();				

 		

 		Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();

+		variables.put("sdncVersion", "1702");

+		//runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);

+		invokeSubProcess("DoCreateVfModule", businessKey, variables);

+		

+		

+		injectSDNCCallbacks(callbacks, "assign, queryModule");

+		injectVNFRestCallbacks(callbacks, "vnfCreate");

+		injectSDNCCallbacks(callbacks, "activate");

+

+		waitForProcessEnd(businessKey, 10000);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		Assert.assertTrue((boolean) getRawVariable(processEngineRule, "DoCreateVfModule", "DCVFM_SuccessIndicator"));

+		

+		logEnd();

+	}

+	

+	/**

+	 * Test the sunny day scenario.

+	 */

+	@Test	

+	

+	@Deployment(resources = {

+			"subprocess/DoCreateVfModule.bpmn",

+			"subprocess/GenerateVfModuleName.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",

+			"subprocess/ConfirmVolumeGroupName.bpmn",

+			"subprocess/CreateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void sunnyDay_withVfModuleNameGeneration() throws IOException {

+		

+		logStart();

+		

+		MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");

+		MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);

+		MockPutGenericVnf("skask");

+		MockAAIVfModule();

+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");

+		mockVNFPost("", 202, "skask");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		

+		String businessKey = UUID.randomUUID().toString();

+		//RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		

+		Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();

+		variables.put("vfModuleName", null);

+		variables.put("vfModuleLabel", "MODULELABEL");

+		variables.put("sdncVersion", "1702");

 		//runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);

 		invokeSubProcess("DoCreateVfModule", businessKey, variables);

 		

@@ -111,11 +228,19 @@
 		logEnd();

 	}

 	

+	

 	private Map<String, Object> setupVariablesSunnyDayBuildingBlocks() {

 		Map<String, Object> variables = new HashMap<String, Object>();

+		//try {

+		//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));

+		//}

+		//catch (Exception e) {

+			

+		//}

 		

 		variables.put("mso-request-id", "testRequestId");

-		variables.put("requestId", "testRequestId");		

+		

+		variables.put("msoRequestId", "testRequestId");		

 		variables.put("isBaseVfModule", false);

 		variables.put("isDebugLogEnabled", "true");

 		variables.put("disableRollback", "true");

@@ -123,6 +248,7 @@
 		//variables.put("requestAction", "CREATE_VF_MODULE");

 		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");

 		variables.put("vnfId", "skask");

+		variables.put("vnfName", "vnfname");

 		variables.put("vfModuleName", "PCRF::module-0-2");

 		variables.put("vnfType", "vSAMP12");

 		variables.put("vfModuleId", "");

@@ -131,20 +257,40 @@
 		variables.put("vfModuleType", "");

 		variables.put("isVidRequest", "true");

 		variables.put("asdcServiceModelVersion", "1.0");

+		variables.put("usePreload", true);

 					

-		String vfModuleModelInfo = "{" + "\"modelInfo\": { "+ "\"modelType\": \"vfModule\"," +

-			"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 

-			"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+		String vfModuleModelInfo = "{ "+ "\"modelType\": \"vfModule\"," +

+			"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 

+			"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

 			"\"modelName\": \"STMTN5MMSC21-MMSC::model-1-0\"," +

 			"\"modelVersion\": \"1\"," + 

-			"\"modelCustomizationId\": \"MODEL-123\"" + "}}";

+			"\"modelCustomizationUuid\": \"MODEL-123\"" + "}";

 		variables.put("vfModuleModelInfo", vfModuleModelInfo);

 		

-		String cloudConfiguration = "{" + "\"cloudConfiguration\": { " + 

-				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		

-				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}}";

-		variables.put("cloudConfiguration", cloudConfiguration);

+		variables.put("sdncVersion", "1707");

+		

+		variables.put("lcpCloudRegionId", "MDTWNJ21");

+		variables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");		

+		

+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +

+				"\"modelInvariantUuid\": \"aa5256d2-5a33-55df-13ab-12abad84e7ff\"," + 

+				"\"modelUuid\": \"bb6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"SVC-STMTN5MMSC21-MMSC::model-1-0\"," +

+				"\"modelVersion\": \"1\"," + 

+				 "}";

+		variables.put("serviceModelInfo", serviceModelInfo);

+			

+		String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +

+					"\"modelInvariantUuid\": \"445256d2-5a33-55df-13ab-12abad84e7ff\"," + 

+					"\"modelUuid\": \"f26478e5-ea33-3346-ac12-ab121484a3fe\"," +

+					"\"modelName\": \"VNF-STMTN5MMSC21-MMSC::model-1-0\"," +

+					"\"modelVersion\": \"1\"," + 

+					"\"modelCustomizationUuid\": \"VNF-MODEL-123\"" + "}";

+		variables.put("vnfModelInfo", vnfModelInfo);

+		

+		variables.put("vnfQueryPath", "/restconf/vnfQueryPath");

+		

 		return variables;

 		

 	}

-}

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java
deleted file mode 100644
index c7a112d..0000000
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*- 
- * ============LICENSE_START======================================================= 
- * OPENECOMP - MSO 
- * ================================================================================ 
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
- * ================================================================================ 
- * Licensed under the Apache License, Version 2.0 (the "License"); 
- * you may not use this file except in compliance with the License. 
- * You may obtain a copy of the License at 
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0 
- * 
- * Unless required by applicable law or agreed to in writing, software 
- * distributed under the License is distributed on an "AS IS" BASIS, 
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
- * See the License for the specific language governing permissions and 
- * limitations under the License. 
- * ============LICENSE_END========================================================= 
- */ 
-
-package org.openecomp.mso.bpmn.infrastructure;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.delete;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.put;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.camunda.bpm.engine.test.Deployment;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.common.WorkflowTest;
-import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
-import org.openecomp.mso.bpmn.mock.FileUtil;
-
-public class DoCreateVfModuleVolumeV1Test extends WorkflowTest {
-	
-	public static final String _prefix = "CVFMODVOL2_";
-	
-	private final CallbackSet callbacks = new CallbackSet();
-
-	public DoCreateVfModuleVolumeV1Test() throws IOException {
-		callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
-				"__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml"));
-		callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
-				"__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml"));
-	}
-
-	/**
-	 * Happy Path
-	 * @throws Exception
-	 */
-	@Test
-	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
-            "subprocess/FalloutHandler.bpmn",
-            "subprocess/CompleteMsoProcess.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn"})
-	public void TestHappyPath() throws Exception {
-
-		logStart();
-		
-		DoCreateVfModuleVolume_Success();
-		
-		String businessKey = UUID.randomUUID().toString();
-		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
-		
-		Map<String, Object> testVariables = new HashMap<String, Object>();
-		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
-		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
-		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
-		//testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
-		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
-		
-		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
-		
-		waitForProcessEnd(businessKey, 100000);
-		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", true);
-		
-		logEnd();
-	}
-	
-	@Test
-	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
-            "subprocess/FalloutHandler.bpmn",
-            "subprocess/CompleteMsoProcess.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn"})
-	public void TestVolumeGroupExistError() throws Exception {
-
-		logStart();
-		
-		DoCreateVfModuleVolume_VolumeGroupExistsFail();
-		
-		String businessKey = UUID.randomUUID().toString();
-		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
-		
-		Map<String, Object> testVariables = new HashMap<String, Object>();
-		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
-		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
-		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
-		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
-		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
-		
-		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
-		
-		waitForProcessEnd(businessKey, 100000);
-		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
-		
-		logEnd();
-	}
-	
-	/**
-	 * Will trigger AAI create rollback
-	 * @throws Exception
-	 */
-	@Test
-	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
-            "subprocess/FalloutHandler.bpmn",
-            "subprocess/CompleteMsoProcess.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn"})
-	public void TestVnfVolumeGroupCreateError() throws Exception {
-
-		logStart();
-		
-		DoCreateVfModuleVolume_VnfCreateVolumeGroupFail();
-		
-		String businessKey = UUID.randomUUID().toString();
-		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
-		
-		Map<String, Object> testVariables = new HashMap<String, Object>();
-		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
-		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
-		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
-		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
-		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
-		
-		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
-		
-		waitForProcessEnd(businessKey, 100000);
-		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
-		
-		logEnd();
-	}
-	
-	/**
-	 * Will trigger AAI create rollback
-	 * @throws Exception
-	 */
-	@Test
-	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
-            "subprocess/FalloutHandler.bpmn",
-            "subprocess/CompleteMsoProcess.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn"})
-	public void TestUpdateAaiVolumeGroupError() throws Exception {
-
-		logStart();
-		
-		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
-		
-		String businessKey = UUID.randomUUID().toString();
-		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
-		
-		Map<String, Object> testVariables = new HashMap<String, Object>();
-		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
-		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
-		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
-		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
-		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
-		
-		injectVNFRestCallbacks(callbacks, "volumeGroupCreate,volumeGroupRollback");
-		
-		waitForProcessEnd(businessKey, 100000);
-		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
-		
-		logEnd();
-	}		
-
-	/**
-	 * Will trigger not trigger rollback
-	 * @throws Exception
-	 */
-	@Test
-	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
-            "subprocess/FalloutHandler.bpmn",
-            "subprocess/CompleteMsoProcess.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn",
-            "subprocess/VnfAdapterRestV1.bpmn"})
-	public void TestUpdateAaiVolumeGroupErrorNoRollback() throws Exception {
-
-		logStart();
-		
-		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
-		
-		String businessKey = UUID.randomUUID().toString();
-		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml");
-		
-		Map<String, Object> testVariables = new HashMap<String, Object>();
-		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
-		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
-		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
-		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
-		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
-		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
-		
-		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
-		
-		waitForProcessEnd(businessKey, 100000);
-		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
-		
-		logEnd();
-	}
-
-	public static void DoCreateVfModuleVolume_Success() {
-		// Notes:
-		// 1. initial aai volume group by name - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group?volume-group-name=TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0
-		// 2. Create volume group - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group
-		// 3. Requery Volume Group - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group?volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0
-		// 4. Update volume group (id from requery response - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379
-
-		//generic vnf
-		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
-		//create volume group
-		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(201)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
-		//requery volume group
-		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
-		//update volume group
-		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml")));
-		// VNF rest Adapter
- 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
- 				.willReturn(aResponse()
- 					.withStatus(202)
- 					.withHeader("Content-Type", "application/xml")));
-	}
-
-	public static void DoCreateVfModuleVolume_VolumeGroupExistsFail() {
-		//generic vnf
-		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
-		//initial volume group query
-		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group[?]volume-group-name=TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
-	}
-
-	public static void DoCreateVfModuleVolume_VnfCreateVolumeGroupFail() {
-		//generic vnf
-		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
-		//create volume group
-		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(201)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
-		//Query AAI volume group by name -- needed before delete
-		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
-		//delete volume group in aai
-		stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379[?]resource-version=1460134360"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml")));
- 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
- 				.willReturn(aResponse()
- 					.withStatus(404)
- 					.withHeader("Content-Type", "application/xml")));
-	}
-
-	public static void DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail() {
-		//generic vnf
-		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
-		//create volume group
-		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
-				  .willReturn(aResponse()
-				  .withStatus(201)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
-		//requery volume group
-		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
-		//delete volume group in aai
-		stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379[?]resource-version=1460134360"))
-				  .willReturn(aResponse()
-				  .withStatus(200)
-				  .withHeader("Content-Type", "text/xml")
-				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml")));
-		// VNF rest Adapter
- 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
- 				.willReturn(aResponse()
- 					.withStatus(202)
- 					.withHeader("Content-Type", "application/xml")));
- 		// VNF Rest Adapter rollback - vnfs/v1/volume-groups/STUB-TEST-8424bb3c-c3e7-4553-9662-469649ed9379/rollback
- 		stubFor(delete(urlEqualTo("/vnfs/v1/volume-groups/TEST-VOLUME-GROUP-ID-0123/rollback"))
- 				.willReturn(aResponse()
- 				.withStatus(202)
- 				.withHeader("Content-Type", "application/xml")));
-	}
-}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV2Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV2Test.java
new file mode 100644
index 0000000..3b1f4b8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV2Test.java
@@ -0,0 +1,220 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+@Ignore

+public class DoCreateVfModuleVolumeV2Test extends WorkflowTest {

+	

+	public static final String _prefix = "CVFMODVOL2_";

+	

+	private final CallbackSet callbacks = new CallbackSet();

+

+	public DoCreateVfModuleVolumeV2Test() throws IOException {

+		callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(

+				"__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml"));

+		callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(

+				"__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml"));

+	}

+

+	/**

+	 * Happy Path

+	 * @throws Exception

+	 */

+	@Test

+	//@Ignore 

+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",

+            "subprocess/FalloutHandler.bpmn",

+            "subprocess/CompleteMsoProcess.bpmn",

+            "subprocess/vnfAdapterRestV1.bpmn",

+            "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})

+	public void TestHappyPath() throws Exception {

+

+		logStart();

+		

+//		DoCreateVfModuleVolume_Success();

+		

+		String businessKey = UUID.randomUUID().toString();

+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");

+		

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");

+		testVariables.put("vnfId", "TEST-VNF-ID-0123");

+		testVariables.put("lcpCloudRegionId", "AAIAIC25");

+		testVariables.put("test-volume-group-name", "MSOTESTVOL101a-vSAMP12_base_vol_module-01");

+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		//testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);

+		

+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");

+		

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", true);

+		

+		logEnd();

+	}

+	

+	@Test

+//	@Ignore

+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",

+            "subprocess/FalloutHandler.bpmn",

+            "subprocess/CompleteMsoProcess.bpmn",

+            "subprocess/vnfAdapterRestV1.bpmn",

+            "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})

+	public void TestVolumeGroupExistError() throws Exception {

+

+		logStart();

+		

+//		DoCreateVfModuleVolume_VolumeGroupExistsFail();

+		

+		String businessKey = UUID.randomUUID().toString();

+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");

+		

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");

+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");

+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");

+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);

+		

+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");

+		

+		waitForProcessEnd(businessKey, 100000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");

+		Assert.assertTrue(wfe.getErrorCode() == 2500);

+		Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));

+		checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);

+		

+		logEnd();

+	}

+	

+	/**

+	 * Will trigger AAI create rollback

+	 * @throws Exception

+	 */

+	@Test

+//	@Ignore

+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",

+            "subprocess/FalloutHandler.bpmn",

+            "subprocess/CompleteMsoProcess.bpmn",

+            "subprocess/vnfAdapterRestV1.bpmn",

+            "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})

+	public void TestVnfVolumeGroupCreateError() throws Exception {

+

+		logStart();

+		

+//		DoCreateVfModuleVolume_VnfCreateVolumeGroupFail();

+		

+		String businessKey = UUID.randomUUID().toString();

+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");

+		

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");

+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");

+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");

+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);

+		

+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");

+		

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);

+		

+		logEnd();

+	}

+	

+	/**

+	 * Will trigger AAI create rollback

+	 * @throws Exception

+	 */

+	@Test

+//	@Ignore

+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",

+            "subprocess/FalloutHandler.bpmn",

+            "subprocess/CompleteMsoProcess.bpmn",

+            "subprocess/vnfAdapterRestV1.bpmn",

+            "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})

+	public void TestUpdateAaiVolumeGroupError() throws Exception {

+

+		logStart();

+		

+//		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();

+		

+		String businessKey = UUID.randomUUID().toString();

+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");

+		

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");

+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");

+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");

+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);

+		

+		// VNF callback not needed fort this failure scenario

+//		injectVNFRestCallbacks(callbacks, "volumeGroupCreate,volumeGroupRollback");

+		

+		waitForProcessEnd(businessKey, 100000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");

+		Assert.assertTrue(wfe.getErrorCode() == 2500);

+		Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));

+		checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);

+		

+		logEnd();

+	}		

+

+	/**

+	 * Will trigger not trigger rollback

+	 * @throws Exception

+	 */

+	@Test

+//	@Ignore

+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",

+            "subprocess/FalloutHandler.bpmn",

+            "subprocess/CompleteMsoProcess.bpmn",

+            "subprocess/vnfAdapterRestV1.bpmn",

+            "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})

+	public void TestUpdateAaiVolumeGroupErrorNoRollback() throws Exception {

+

+		logStart();

+		

+//		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();

+		

+		String businessKey = UUID.randomUUID().toString();

+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml");

+		

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");

+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");

+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");

+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");

+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);

+		

+		// VNF callback not needed fort this failure scenario

+//		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");

+		

+		waitForProcessEnd(businessKey, 100000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");

+		Assert.assertTrue(wfe.getErrorCode() == 2500);

+		Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));

+		checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);

+		

+		logEnd();

+	}		

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesRollbackTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesRollbackTest.java
new file mode 100644
index 0000000..fb065ab
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesRollbackTest.java
@@ -0,0 +1,405 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.containing;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByName;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFDelete;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVfModuleDelete;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.RollbackData;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit test for DoCreateVnfAndModulesRollback.bpmn.

+ */

+public class DoCreateVnfAndModulesRollbackTest extends WorkflowTest {

+	private final CallbackSet callbacks = new CallbackSet();

+

+	private static final String EOL = "\n";

+

+

+

+	private final String vnfAdapterDeleteCallback =

+		"<deleteVfModuleResponse>" + EOL +

+		"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +

+		"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +

+		"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +

+		"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+		"</deleteVfModuleResponse>" + EOL;

+

+	private final String vnfAdapterDeleteCallbackFail =

+			"<vfModuleException>" + EOL +

+			"    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +

+			"    <category>INTERNAL</category>" + EOL +

+			"    <rolledBack>false</rolledBack>" + EOL +

+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+			"</vfModuleException>" + EOL;

+

+	private final String sdncAdapterDeleteCallback =

+		"<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +

+		"  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +

+		"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +

+		"</output>" + EOL;

+

+	public DoCreateVnfAndModulesRollbackTest() throws IOException {

+		callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);

+		callbacks.put("sdncDelete", sdncAdapterDeleteCallback);

+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);

+		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);

+		callbacks.put("deactivate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("unassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+	}

+

+	@Test

+	@Ignore

+	@Deployment(resources = {

+			"subprocess/DoCreateVnfAndModulesRollback.bpmn",

+			"subprocess/DoCreateVfModuleRollback.bpmn",

+			"subprocess/PrepareUpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/DeleteAAIVfModule.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/GenericDeleteVnf.bpmn",

+			"subprocess/DoDeleteVnf.bpmn"

+		})

+	public void  TestDoCreateVnfAndModulesRollbackSuccess_BaseOnly() {

+		// delete the Base Module and Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73

+		String request =

+			"<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +

+			"  <request-info>" + EOL +

+			"    <action>DELETE_VF_MODULE</action>" + EOL +

+			"    <source>PORTAL</source>" + EOL +

+			"  </request-info>" + EOL +

+			"  <vnf-inputs>" + EOL +

+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +

+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +

+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +

+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +

+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +

+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +

+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		logStart();

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");

+		mockVNFDelete(".*", "/.*", 202);

+		mockVfModuleDelete("78987");

+		MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");

+		MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721.*", "DoCreateVfModule_getVnfResponse.xml", 200);

+		MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");

+		MockDeleteVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "0000073", 200);

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		RollbackData rollbackData = new RollbackData();

+

+		rollbackData.put("VFMODULE_BASE", "source", "PORTAL");

+		rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");

+		rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");

+		rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");

+		rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");

+		rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");

+		rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");

+		rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");

+		rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");

+		rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");

+		rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");

+

+		rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");

+

+		rollbackData.put("VNF", "vnfId", "testVnfId123");

+

+		rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");

+

+		variables.put("isDebugLogEnabled","true");

+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+

+		variables.put("rollbackData", rollbackData);

+		invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);

+

+		// "changedelete" operation not required for deleting a Vf Module

+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		//waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);

+		injectSDNCCallbacks(callbacks, "sdncDelete");

+

+		waitForProcessEnd(businessKey, 10000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		checkVariable(businessKey, "WorkflowException", null);

+		if (wfe != null) {

+			System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +

+					", ErrorMessage=" + wfe.getErrorMessage());

+		}

+		logEnd();

+	}

+

+	@Test

+	@Deployment(resources = {

+			"subprocess/DoCreateVnfAndModulesRollback.bpmn",

+			"subprocess/PrepareUpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/DeleteAAIVfModule.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/GenericDeleteVnf.bpmn",

+			"subprocess/DoDeleteVnf.bpmn"

+		})

+	public void  TestDoCreateVnfAndModulesRollbackSuccess_vnfOnly() {

+		// delete the Base Module and Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73

+		String request =

+			"<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +

+			"  <request-info>" + EOL +

+			"    <action>DELETE_VF_MODULE</action>" + EOL +

+			"    <source>PORTAL</source>" + EOL +

+			"  </request-info>" + EOL +

+			"  <vnf-inputs>" + EOL +

+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +

+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +

+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +

+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +

+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +

+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +

+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		logStart();

+		MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");

+		MockDeleteGenericVnf("testVnfId123", "testReVer123");

+		MockDoDeleteVfModule_SDNCSuccess();

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		RollbackData rollbackData = new RollbackData();

+

+		rollbackData.put("VNF", "vnfId", "testVnfId123");

+		rollbackData.put("VNF", "rollbackVnfCreate", "true");

+		rollbackData.put("VNF", "rollbackSDNCAssign", "true");

+		rollbackData.put("VNF", "rollbackSDNCActivate", "true");

+		rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");

+

+

+		variables.put("isDebugLogEnabled","true");

+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+

+

+		variables.put("rollbackData", rollbackData);

+		variables.put("sdncVersion", "1707");

+		invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);

+

+		// "changedelete" operation not required for deleting a Vf Module

+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");

+

+		//waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);

+	//	injectSDNCCallbacks(callbacks, "sdncDelete");

+

+		waitForProcessEnd(businessKey, 10000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		checkVariable(businessKey, "WorkflowException", null);

+		if (wfe != null) {

+			System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +

+					", ErrorMessage=" + wfe.getErrorMessage());

+		}

+		logEnd();

+	}

+

+	@Test

+	@Ignore

+	@Deployment(resources = {

+			"subprocess/DoCreateVnfAndModulesRollback.bpmn",

+			"subprocess/DoCreateVfModuleRollback.bpmn",

+			"subprocess/PrepareUpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/DeleteAAIVfModule.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/GenericDeleteVnf.bpmn",

+			"subprocess/DoDeleteVnf.bpmn"

+		})

+	public void  TestDoCreateVnfAndModulesRollbackSuccess_AddOn() {

+		// delete the Base Module and Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73

+		String request =

+			"<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +

+			"  <request-info>" + EOL +

+			"    <action>DELETE_VF_MODULE</action>" + EOL +

+			"    <source>PORTAL</source>" + EOL +

+			"  </request-info>" + EOL +

+			"  <vnf-inputs>" + EOL +

+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +

+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +

+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +

+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +

+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +

+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +

+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		logStart();

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");

+		mockVNFDelete(".*", "/.*", 202);

+		mockVfModuleDelete("78987");

+		MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");

+		MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721", "DoCreateVfModule_getVnfResponse.xml", 200);

+		MockGetGenericVnfByIdWithDepth("a27ce5a9-29c4-4c22-a017-6615ac73c721", 1, "DoCreateVfModuleRollback/GenericVnf.xml");

+		MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");

+		MockDeleteVfModuleId("", "", "", 200);

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		RollbackData rollbackData = new RollbackData();

+	

+		rollbackData.put("VFMODULE_BASE", "source", "PORTAL");

+		rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");

+		rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");

+		rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");

+		rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");

+		rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");

+		rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");

+		rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");

+		rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");

+		rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");

+		rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");

+		rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");

+		rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");

+		rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+	

+	

+		rollbackData.put("VFMODULE_ADDON_1", "source", "PORTAL");

+		rollbackData.put("VFMODULE_ADDON_1", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_ADDON_1", "vnfname", "STMTN5MMSC21");

+		rollbackData.put("VFMODULE_ADDON_1", "vnftype", "asc_heat-int");

+		rollbackData.put("VFMODULE_ADDON_1", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		rollbackData.put("VFMODULE_ADDON_1", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");

+		rollbackData.put("VFMODULE_ADDON_1", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");

+		rollbackData.put("VFMODULE_ADDON_1", "aiccloudregion", "RDM2WAGPLCP");

+		rollbackData.put("VFMODULE_ADDON_1", "heatstackid", "thisisaheatstack");

+		rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");

+		rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");

+		rollbackData.put("VFMODULE_ADDON_1", "oamManagementV6Address", "2000:abc:bce:1111");

+		rollbackData.put("VFMODULE_ADDON_1", "oamManagementV4Address", "127.0.0.1");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackPrepareUpdateVfModule", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackVnfAdapterCreate", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackSDNCRequestActivate", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateAAIVfModule", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateNetworkPoliciesAAI", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateVnfAAI", "true");

+		rollbackData.put("VFMODULE_ADDON_1", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		rollbackData.put("VFMODULE_ADDON_1", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+	

+		rollbackData.put("VNF", "vnfId", "testVnfId123");

+	

+		rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "1");

+	

+		variables.put("isDebugLogEnabled","true");

+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+	

+	

+		variables.put("rollbackData", rollbackData);

+		invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);

+	

+		// "changedelete" operation not required for deleting a Vf Module

+	//	injectSDNCCallbacks(callbacks, "sdncChangeDelete");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		//waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);

+		injectSDNCCallbacks(callbacks, "sdncDelete");

+	

+		waitForProcessEnd(businessKey, 10000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		checkVariable(businessKey, "WorkflowException", null);

+		if (wfe != null) {

+			System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +

+					", ErrorMessage=" + wfe.getErrorMessage());

+		}

+		logEnd();

+	}

+	

+	public static void MockDoDeleteVfModule_SDNCSuccess() {

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>deactivate"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>unassign"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+	}

+

+

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesTest.java
new file mode 100644
index 0000000..3c10872
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfAndModulesTest.java
@@ -0,0 +1,354 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.junit.Assert.assertEquals;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.domain.ModelInfo;

+import org.openecomp.mso.bpmn.core.domain.ModuleResource;

+import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;

+import org.openecomp.mso.bpmn.core.domain.VnfResource;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit Test for the DoCreateVnfAndModules Flow

+ *

+ */

+public class DoCreateVnfAndModulesTest extends WorkflowTest {

+

+	private final CallbackSet callbacks = new CallbackSet();

+

+	public DoCreateVnfAndModulesTest() throws IOException {	

+

+		callbacks.put("assign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyAssignCallback.xml"));

+		callbacks.put("activate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("query", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallback.xml"));

+		callbacks.put("queryVnf", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVnf.xml"));

+		callbacks.put("queryModuleNoVnf", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVfModuleNoVnf.xml"));

+		callbacks.put("queryModule", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));

+		callbacks.put("vnfCreate", FileUtil.readResourceFile(

+				"__files/VfModularity/VNFAdapterRestCreateCallback.xml"));

+	}

+

+	@Test

+    @Ignore // IGNORED FOR 1710 MERGE TO ONAP

+	@Deployment(resources = {"subprocess/GenericGetService.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/GenericPutVnf.bpmn", 

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/DoCreateVnf.bpmn",

+			"subprocess/GenerateVfModuleName.bpmn",

+			"subprocess/DoCreateVfModule.bpmn",

+			"subprocess/DoCreateVnfAndModules.bpmn",					

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",

+			"subprocess/ConfirmVolumeGroupName.bpmn",

+			"subprocess/CreateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/DoCreateVnfAndModulesRollback.bpmn"})

+	public void testDoCreateVnfAndModulesBaseOnly_success() throws Exception{

+		

+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");

+		MockGetGenericVnfById_404("testVnfId");

+		MockPutGenericVnf(".*");

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");		

+		MockVNFAdapterRestVfModule();

+		MockDBUpdateVfModule();	

+		

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		setVariablesSuccess(variables, "", "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");

+		invokeSubProcess("DoCreateVnfAndModules", businessKey, variables);

+

+		injectSDNCCallbacks(callbacks, "assign");

+		injectSDNCCallbacks(callbacks, "query");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "queryVnf");

+		injectSDNCCallbacks(callbacks, "assign, queryModuleNoVnf");

+		injectVNFRestCallbacks(callbacks, "vnfCreate");

+		injectSDNCCallbacks(callbacks, "activate");

+		waitForProcessEnd(businessKey, 10000);

+

+		Assert.assertTrue(isProcessEnded(businessKey));

+		assertVariables("true", "true", "false", "true", "Success", null);

+

+	}

+	

+	@Test

+    @Ignore // IGNORED FOR 1710 MERGE TO ONAP

+	@Deployment(resources = {"subprocess/GenericGetService.bpmn",

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/GenericPutVnf.bpmn", 

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/DoCreateVnf.bpmn",

+			"subprocess/GenerateVfModuleName.bpmn",

+			"subprocess/DoCreateVfModule.bpmn",

+			"subprocess/DoCreateVnfAndModules.bpmn",					

+			"subprocess/GenericGetVnf.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",

+			"subprocess/ConfirmVolumeGroupName.bpmn",

+			"subprocess/CreateAAIVfModule.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn",

+			"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/DoCreateVnfAndModulesRollback.bpmn"})

+	public void testDoCreateVnfAndModulesWithAddon_success() throws Exception{

+		

+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");

+		MockGetGenericVnfById_404("testVnfId");

+		MockPutGenericVnf(".*");

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");		

+		MockVNFAdapterRestVfModule();

+		MockDBUpdateVfModule();	

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		setVariablesAddonSuccess(variables, "", "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");

+		invokeSubProcess("DoCreateVnfAndModules", businessKey, variables);

+

+		injectSDNCCallbacks(callbacks, "assign");

+		injectSDNCCallbacks(callbacks, "query");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "queryVnf");

+		injectSDNCCallbacks(callbacks, "assign, queryModuleNoVnf");

+		injectVNFRestCallbacks(callbacks, "vnfCreate");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "queryVnf");

+		injectSDNCCallbacks(callbacks, "assign, queryModuleNoVnf");

+		injectVNFRestCallbacks(callbacks, "vnfCreate");

+		injectSDNCCallbacks(callbacks, "activate");

+		waitForProcessEnd(businessKey, 10000);

+

+		Assert.assertTrue(isProcessEnded(businessKey));

+		assertVariables("true", "true", "false", "true", "Success", null);

+

+	}

+

+	private void assertVariables(String exSIFound, String exSISucc, String exVnfFound, String exVnfSucc, String exResponse, String exWorkflowException) {

+

+		String siFound = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "GENGS_FoundIndicator");

+		String siSucc = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "GENGS_SuccessIndicator");

+		String vnfFound = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "GENGV_FoundIndicator");

+		String vnfSucc = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "GENGV_SuccessIndicator");

+		String response = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "WorkflowResponse");

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "SavedWorkflowException1");

+

+		//assertEquals(exSIFound, siFound);

+		//assertEquals(exSISucc, siSucc);

+		//assertEquals(exVnfFound, vnfFound);

+		//assertEquals(exVnfSucc, vnfSucc);

+		//assertEquals(exResponse, response);

+		assertEquals(exWorkflowException, workflowException);

+	}

+

+	private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("bpmnRequest", request);

+		variables.put("mso-request-id", requestId);

+		variables.put("serviceInstanceId",siId);

+		variables.put("testVnfId","testVnfId123");

+		variables.put("vnfType", "STMTN");

+	}

+

+	private void setVariablesSuccess(Map<String, Object> variables, String request, String requestId, String siId) {

+		variables.put("isDebugLogEnabled", "true");		

+		variables.put("mso-request-id", requestId);

+		variables.put("requestId", requestId);

+		variables.put("msoRequestId", requestId);

+		variables.put("serviceInstanceId",siId);		

+		variables.put("disableRollback", "true");		

+		//variables.put("testVnfId","testVnfId123");

+		variables.put("vnfType", "STMTN");

+		

+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +

+				"\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"ServicevSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," +

+				"}";

+		variables.put("serviceModelInfo", serviceModelInfo);

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		String vnfModelInfo = "{" + "\"modelType\": \"vnf\"," +

+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"vSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," + 

+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"" + "}";

+		variables.put("vnfModelInfo", vnfModelInfo);

+

+		String cloudConfiguration = "{" + "\"cloudConfiguration\": { " +

+				"\"lcpCloudRegionId\": \"mdt1\"," +

+				"\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}}";

+		variables.put("cloudConfiguration", cloudConfiguration);

+		variables.put("sdncVersion", "1707");

+		variables.put("globalSubscriberId", "subscriber123");

+		

+		try {

+			String serviceDecomposition = FileUtil.readResourceFile("__files/VIPR/serviceDecompositionATMFW.json");

+			ServiceDecomposition sd = new ServiceDecomposition();

+			ModelInfo serviceModel = new ModelInfo();

+			serviceModel.setModelName("servicewithVNFs");

+			sd.setModelInfo(serviceModel);			

+			VnfResource vr = new VnfResource();

+			ModelInfo mvr = new ModelInfo();

+			mvr.setModelName("vSAMP12");

+			mvr.setModelInstanceName("v123");

+			mvr.setModelInvariantUuid("");

+			mvr.setModelVersion("1.0");

+			mvr.setModelCustomizationUuid("MODEL-ID-1234");

+			vr.setModelInfo(mvr);

+			vr.constructVnfType("vnf1");			

+			vr.setNfType("somenftype");

+			vr.setNfRole("somenfrole");

+			vr.setNfFunction("somenffunction");

+			vr.setNfNamingCode("somenamingcode");	

+			ModuleResource mr = new ModuleResource();

+			ModelInfo mvmr = new ModelInfo();

+			mvmr.setModelInvariantUuid("ff5256d2-5a33-55df-13ab-12abad84e7ff");

+			mvmr.setModelName("STMTN5MMSC21-MMSC::model-1-0");

+			mvmr.setModelVersion("1");

+			mvmr.setModelCustomizationUuid("MODEL-123");

+			mr.setModelInfo(mvmr);

+			mr.setIsBase(true);

+			mr.setVfModuleLabel("MODULELABEL");

+			vr.addVfModule(mr);

+			sd.addVnfResource(vr);			

+			

+			variables.put("serviceDecomposition", sd);

+			variables.put("isTest", true);

+		} catch(Exception e) {

+			

+		}

+		

+	}

+		

+	private void setVariablesAddonSuccess(Map<String, Object> variables, String request, String requestId, String siId) {

+		variables.put("isDebugLogEnabled", "true");		

+		variables.put("mso-request-id", requestId);

+		variables.put("requestId", requestId);

+		variables.put("msoRequestId", requestId);

+		variables.put("serviceInstanceId",siId);		

+		variables.put("disableRollback", "true");		

+		//variables.put("testVnfId","testVnfId123");

+		variables.put("vnfType", "STMTN");

+		

+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +

+				"\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"ServicevSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," +

+				"}";

+		variables.put("serviceModelInfo", serviceModelInfo);

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		String vnfModelInfo = "{" + "\"modelType\": \"vnf\"," +

+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"vSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," + 

+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"" + "}";

+		variables.put("vnfModelInfo", vnfModelInfo);

+

+		String cloudConfiguration = "{" + "\"cloudConfiguration\": { " +

+				"\"lcpCloudRegionId\": \"mdt1\"," +

+				"\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}}";

+		variables.put("cloudConfiguration", cloudConfiguration);

+		variables.put("sdncVersion", "1707");

+		variables.put("globalSubscriberId", "subscriber123");

+		

+		try {

+			String serviceDecomposition = FileUtil.readResourceFile("__files/VIPR/serviceDecompositionATMFW.json");

+			ServiceDecomposition sd = new ServiceDecomposition();

+			ModelInfo serviceModel = new ModelInfo();

+			serviceModel.setModelName("servicewithVNFs");

+			sd.setModelInfo(serviceModel);

+			VnfResource vr = new VnfResource();

+			ModelInfo mvr = new ModelInfo();

+			mvr.setModelName("vSAMP12");

+			mvr.setModelInstanceName("v123");

+			mvr.setModelInvariantUuid("");

+			mvr.setModelVersion("1.0");

+			mvr.setModelCustomizationUuid("MODEL-ID-1234");

+			vr.setModelInfo(mvr);

+			vr.setNfType("somenftype");

+			vr.setNfRole("somenfrole");

+			vr.setNfFunction("somenffunction");

+			vr.setNfNamingCode("somenamingcode");	

+			ModuleResource mr = new ModuleResource();

+			ModelInfo mvmr = new ModelInfo();

+			mvmr.setModelInvariantUuid("ff5256d2-5a33-55df-13ab-12abad84e7ff");

+			mvmr.setModelName("STMTN5MMSC21-MMSC::model-1-0");

+			mvmr.setModelVersion("1");

+			mvmr.setModelCustomizationUuid("MODEL-123");

+			mr.setModelInfo(mvmr);

+			mr.setIsBase(true);

+			mr.setVfModuleLabel("MODULELABEL");

+			vr.addVfModule(mr);

+			ModuleResource mr1 = new ModuleResource();

+			ModelInfo mvmr1 = new ModelInfo();

+			mvmr1.setModelInvariantUuid("ff5256d2-5a33-55df-13ab-12abad84e7ff");

+			mvmr1.setModelName("STMTN5MMSC21-MMSC::model-1-0");

+			mvmr1.setModelVersion("1");

+			mvmr1.setModelCustomizationUuid("MODEL-123");

+			mr1.setModelInfo(mvmr1);

+			mr1.setIsBase(false);

+			mr1.setVfModuleLabel("MODULELABEL");

+			mr1.setInitialCount(1);

+			vr.addVfModule(mr1);				

+			

+			sd.addVnfResource(vr);			

+			

+			variables.put("serviceDecomposition", sd);

+			variables.put("isTest", true);

+		} catch(Exception e) {

+			

+			

+			

+		}

+	}

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java
index b161d05..4d2b512 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java
@@ -102,11 +102,11 @@
 		variables.put("vnfType", "STMTN");
 		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
 		String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +
-				"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +
-				"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +
+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
 				"\"modelName\": \"vSAMP12\"," +
 				"\"modelVersion\": \"1.0\"," +
-				"\"modelCustomizationId\": \"MODEL-ID-1234\"," +
+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"," +
 				"}";
 		variables.put("vnfModelInfo", vnfModelInfo);
 
@@ -114,6 +114,15 @@
 				"\"lcpCloudRegionId\": \"mdt1\"," +
 				"\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}";
 		variables.put("cloudConfiguration", cloudConfiguration);
+		
+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +
+				"\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +
+				"\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +
+				"\"modelName\": \"ServicevSAMP12\"," +
+				"\"modelVersion\": \"1.0\"," +
+				"}";
+		variables.put("serviceModelInfo", serviceModelInfo);
+		variables.put("globalSubscriberId", "MSO-1610");
 	}
 
 }
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteServiceInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteServiceInstanceTest.java
new file mode 100644
index 0000000..3aefb6a
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteServiceInstanceTest.java
@@ -0,0 +1,88 @@
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+
+/**
+ * Unit test cases for DoDeleteServiceInstance.bpmn
+ */
+public class DoDeleteServiceInstanceTest extends WorkflowTest {
+
+	private final CallbackSet callbacks = new CallbackSet();
+	private static final String EOL = "\n";
+	private final String sdncAdapterCallback =
+			"<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +
+			"  <svc-request-id>((REQUEST-ID))</svc-request-id>" + EOL +
+			"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +
+			"</output>" + EOL;
+		
+	public DoDeleteServiceInstanceTest() throws IOException {
+		callbacks.put("deactivate", sdncAdapterCallback);
+		callbacks.put("delete", sdncAdapterCallback);
+	}
+		
+	/**
+	 * Sunny day VID scenario.
+	 *
+	 * @throws Exception
+	 */
+	//@Ignore // File not found - unable to run the test.  Also, Stubs need updating..
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteServiceInstance.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/GenericDeleteService.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/CompleteMsoProcess.bpmn",
+			"subprocess/FalloutHandler.bpmn" })
+	public void sunnyDay() throws Exception {
+
+		logStart();
+
+		//AAI
+		MockDeleteServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "", 204);
+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSINoRelations.xml");
+		MockNodeQueryServiceInstanceById("MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
+		//SDNC
+		mockSDNCAdapter(200);
+		//DB
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		String businessKey = UUID.randomUUID().toString();
+
+		Map<String, Object> variables =  new HashMap<String, Object>();
+		setupVariables(variables);
+		invokeSubProcess("DoDeleteServiceInstance", businessKey, variables);
+		injectSDNCCallbacks(callbacks, "deactivate");
+		injectSDNCCallbacks(callbacks, "delete");
+		waitForProcessEnd(businessKey, 10000);
+		Assert.assertTrue(isProcessEnded(businessKey));
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteServiceInstance", "WorkflowException");
+		System.out.println("workflowException:\n" + workflowException);
+		assertEquals(null, workflowException);
+
+		logEnd();
+	}
+
+	// Success Scenario
+	private void setupVariables(Map<String, Object> variables) {
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("msoRequestId", "RaaDDSIRequestId-1");
+		variables.put("mso-request-id", "RaaDDSIRequestId-1");
+		variables.put("serviceInstanceId","MIS%252F1604%252F0026%252FSW_INTERNET");
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleFromVnfTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleFromVnfTest.java
new file mode 100644
index 0000000..a1f6655
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleFromVnfTest.java
@@ -0,0 +1,157 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.containing;

+import static com.github.tomakehurst.wiremock.client.WireMock.delete;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteVfModule;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+

+public class DoDeleteVfModuleFromVnfTest extends WorkflowTest {

+	private final CallbackSet callbacks = new CallbackSet();

+	

+	private static final String EOL = "\n";

+

+	private final String vnfAdapterDeleteCallback = 

+		"<deleteVfModuleResponse>" + EOL +

+		"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +

+		"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +

+		"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +

+		"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+		"</deleteVfModuleResponse>" + EOL;

+			

+	private final String vnfAdapterDeleteCallbackFail = 

+			"<vfModuleException>" + EOL +

+			"    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +

+			"    <category>INTERNAL</category>" + EOL +

+			"    <rolledBack>false</rolledBack>" + EOL +

+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+			"</vfModuleException>" + EOL;

+				

+	private final String sdncAdapterDeleteCallback =

+		"<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +

+		"  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +

+		"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +

+		"</output>" + EOL;

+	

+	public DoDeleteVfModuleFromVnfTest() throws IOException {

+		callbacks.put("deactivate", sdncAdapterDeleteCallback);

+		callbacks.put("unassign", sdncAdapterDeleteCallback);

+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);

+		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);

+	}

+	

+	private final String wfeString = "WorkflowException";

+

+	@Test

+	@Deployment(resources = {

+			"subprocess/DoDeleteVfModuleFromVnf.bpmn",			

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDoDeleteVfModuleFromVnfSuccess() {

+		// delete the Base Module and Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73

+		String request =

+			"<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +

+			"  <request-info>" + EOL +

+			"    <action>DELETE_VF_MODULE</action>" + EOL +

+			"    <source>PORTAL</source>" + EOL +

+			"  </request-info>" + EOL +

+			"  <vnf-inputs>" + EOL +

+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +

+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +

+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +

+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +

+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +

+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +

+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		logStart();

+		MockDoDeleteVfModule_SDNCSuccess();

+		MockDoDeleteVfModule_DeleteVNFSuccess();

+		MockAAIGenericVnfSearch();	

+		MockAAIDeleteVfModule();

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("msoRequestId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("serviceInstanceId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("vfModuleId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");

+		variables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");

+		variables.put("sdncVersion", "1707");

+		

+		invokeSubProcess("DoDeleteVfModuleFromVnf", businessKey, variables);

+

+		injectSDNCCallbacks(callbacks, "deactivate");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		//waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);

+		injectSDNCCallbacks(callbacks, "unassign");

+

+		waitForProcessEnd(businessKey, 10000);

+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);

+		checkVariable(businessKey, wfeString, null);

+		if (wfe != null) {

+			System.out.println("TestDoDeleteVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +

+					", ErrorMessage=" + wfe.getErrorMessage());

+		}

+		logEnd();

+	}

+

+	

+	// start of mocks used locally and by other VF Module unit tests

+	

+

+	

+	public static void MockDoDeleteVfModule_SDNCSuccess() {

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>deactivate"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>unassign"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+	}

+

+	

+	public static void MockDoDeleteVfModule_DeleteVNFSuccess() {

+		stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+		stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+	}

+

+	

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java
index a3165f7..3e1c498 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java
@@ -43,6 +43,7 @@
 import org.junit.Test;

 import org.openecomp.mso.bpmn.common.WorkflowTest;

 import org.openecomp.mso.bpmn.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

 

 /**

  * Unit test for DoDeleteVfModule.bpmn.

@@ -77,7 +78,8 @@
 	public DoDeleteVfModuleTest() throws IOException {

 		callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);

 		callbacks.put("sdncDelete", sdncAdapterDeleteCallback);

-		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);

+		callbacks.put("vnfDelete", FileUtil.readResourceFile(

+				"__files/DeleteVfModuleCallbackResponse.xml"));

 		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);

 	}

 	

@@ -182,12 +184,13 @@
 		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-0-0");

 		variables.put("sdncVersion", "1610");

 		variables.put("isVidRequest", "true");

+		variables.put("retainResources", false);

 		String vfModuleModelInfo = "{" + "\"modelType\": \"vnf\"," +

-				"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 

-				"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 

+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

 				"\"modelName\": \"vSAMP12\"," +

 				"\"modelVersion\": \"1.0\"," + 

-				"\"modelCustomizationId\": \"MODEL-ID-1234\"," + 

+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"," + 

 				"}";

 		variables.put("vfModuleModelInfo", vfModuleModelInfo);

 			

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleVolumeV2Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleVolumeV2Test.java
new file mode 100644
index 0000000..0104310
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleVolumeV2Test.java
@@ -0,0 +1,198 @@
+/*-

+ * ============LICENSE_START=======================================================

+ * OPENECOMP - MSO

+ * ================================================================================

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.

+ * ================================================================================

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0

+ * 

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ * ============LICENSE_END=========================================================

+ */

+

+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPutVNFVolumeGroup;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVfModuleDelete;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+public class DoDeleteVfModuleVolumeV2Test extends WorkflowTest {

+

+	private final CallbackSet callbacks = new CallbackSet();

+	

+	public DoDeleteVfModuleVolumeV2Test() throws IOException {

+		callbacks.put("volumeGroupDelete", FileUtil.readResourceFile(

+				"__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml"));

+	}

+

+	@Test

+	//@Ignore 

+	@Deployment(resources = {"subprocess/DoDeleteVfModuleVolumeV2.bpmn", "subprocess/VnfAdapterRestV1.bpmn"})

+	public void happyPath() throws Exception {

+

+		logStart();

+		

+		MockGetNetworkCloudRegion("MDTWNJ21", "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+		MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");

+		MockDeleteVolumeGroupById("RDM2WAGPLCP", "78987", "0000020", 200);

+		mockPutVNFVolumeGroup("78987", 202);

+		mockVfModuleDelete("78987");

+		MockDeleteVolumeGroupById("AAIAIC25", "78987", "0000020", 200);

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("mso-request-id", "TEST-REQUEST-ID-0123");

+		testVariables.put("msoRequestId", "TEST-REQUEST-ID-0123");

+		testVariables.put("isDebugLogEnabled", "true");

+		//testVariables.put("lcpCloudRegionId", "MDTWNJ21");

+		//testVariables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");

+		testVariables.put("volumeGroupId", "78987");

+		testVariables.put("serviceInstanceId", "test-service-instance-id-0123");

+		

+		String cloudConfiguration = "{" + 

+				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		

+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}";

+		testVariables.put("cloudConfiguration", cloudConfiguration);

+		

+		invokeSubProcess("DoDeleteVfModuleVolumeV2", businessKey, testVariables);

+

+		injectVNFRestCallbacks(callbacks, "volumeGroupDelete");

+		

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "wasDeleted", "true");

+		

+		logEnd();

+	}

+

+

+	@Test

+	//@Ignore 

+	@Deployment(resources = {"subprocess/DoDeleteVfModuleVolumeV2.bpmn", "subprocess/VnfAdapterRestV1.bpmn"})

+	public void testVolumeGroupInUse() throws Exception {

+

+		logStart();

+		MockGetNetworkCloudRegion("MDTWNJ21", "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+		MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_HasVfModRelationship.xml");

+		MockDeleteVolumeGroupById("RDM2WAGPLCP", "78987", "0000020", 200);

+		mockVfModuleDelete("78987");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("mso-request-id", "TEST-REQUEST-ID-0123");

+		testVariables.put("msoRequestId", "TEST-REQUEST-ID-0123");

+		testVariables.put("isDebugLogEnabled", "true");

+		testVariables.put("volumeGroupId", "78987");

+		testVariables.put("serviceInstanceId", "test-service-instance-id-0123");

+		

+		String cloudConfiguration = "{" + 

+				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		

+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}";

+		testVariables.put("cloudConfiguration", cloudConfiguration);

+		

+		invokeSubProcess("DoDeleteVfModuleVolumeV2", businessKey, testVariables);

+

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "wasDeleted", "false");

+		WorkflowException msoException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("WorkflowException - Code: " + msoException.getErrorCode() + " Message: " + msoException.getErrorMessage());

+		

+		

+		logEnd();

+	}

+

+	@Test

+	//@Ignore 

+	@Deployment(resources = {"subprocess/DoDeleteVfModuleVolumeV2.bpmn", "subprocess/VnfAdapterRestV1.bpmn"})

+	public void testTenantIdMismatch() throws Exception {

+

+		logStart();

+		MockGetNetworkCloudRegion("MDTWNJ21", "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+		MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");

+		MockDeleteVolumeGroupById("RDM2WAGPLCP", "78987", "0000020", 200);

+		mockVfModuleDelete("78987", 404);

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("mso-request-id", "TEST-REQUEST-ID-0123");

+		testVariables.put("msoRequestId", "TEST-REQUEST-ID-0123");

+		testVariables.put("isDebugLogEnabled", "true");

+		testVariables.put("volumeGroupId", "78987");

+		testVariables.put("serviceInstanceId", "test-service-instance-id-0123");

+		

+		String cloudConfiguration = "{" + 

+				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		

+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421xxx\"" + "}";

+		testVariables.put("cloudConfiguration", cloudConfiguration);

+		

+		invokeSubProcess("DoDeleteVfModuleVolumeV2", businessKey, testVariables);

+		

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "wasDeleted", "false");

+		WorkflowException msoException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("WorkflowException - Code: " + msoException.getErrorCode() + " Message: " + msoException.getErrorMessage());

+		

+		

+		logEnd();

+	}

+	

+	@Test

+	//@Ignore 

+	@Deployment(resources = {"subprocess/DoDeleteVfModuleVolumeV2.bpmn", "subprocess/VnfAdapterRestV1.bpmn"})

+	public void testVnfAdapterCallfail() throws Exception {

+

+		logStart();

+		MockGetNetworkCloudRegion("MDTWNJ21", "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");

+		MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");

+		MockDeleteVolumeGroupById("RDM2WAGPLCP", "78987", "0000020", 200);

+		mockVfModuleDelete("78987", 404);

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		String businessKey = UUID.randomUUID().toString();

+

+		Map<String, Object> testVariables = new HashMap<String, Object>();

+		testVariables.put("mso-request-id", "TEST-REQUEST-ID-0123");

+		testVariables.put("msoRequestId", "TEST-REQUEST-ID-0123");

+		testVariables.put("isDebugLogEnabled", "true");

+		testVariables.put("volumeGroupId", "78987");

+		testVariables.put("serviceInstanceId", "test-service-instance-id-0123");

+		

+		String cloudConfiguration = "{" + 

+				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		

+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}";

+		testVariables.put("cloudConfiguration", cloudConfiguration);

+		

+		invokeSubProcess("DoDeleteVfModuleVolumeV2", businessKey, testVariables);

+		

+		waitForProcessEnd(businessKey, 100000);

+		checkVariable(businessKey, "wasDeleted", "false");

+		WorkflowException msoException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("WorkflowException - Code: " + msoException.getErrorCode() + " Message: " + msoException.getErrorMessage());

+		

+		logEnd();

+	}

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfAndModulesTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfAndModulesTest.java
new file mode 100644
index 0000000..585c26d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfAndModulesTest.java
@@ -0,0 +1,190 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.containing;

+import static com.github.tomakehurst.wiremock.client.WireMock.delete;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+import static org.junit.Assert.assertEquals;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteVfModule;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+public class DoDeleteVnfAndModulesTest extends WorkflowTest {

+	private final CallbackSet callbacks = new CallbackSet();

+	private static final String EOL = "\n";

+	private final String vnfAdapterDeleteCallback = 

+			"<deleteVfModuleResponse>" + EOL +

+			"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +

+			"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +

+			"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +

+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+			"</deleteVfModuleResponse>" + EOL;

+

+	public DoDeleteVnfAndModulesTest () throws IOException {

+		callbacks.put("deactivate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("unassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);

+

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/DoDeleteVnfAndModules.bpmn", "subprocess/SDNCAdapterV1.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn", "subprocess/DoDeleteVfModule.bpmn"})

+	public void testDoDeleteVnfAndModules_successVnfOnly() throws Exception{

+		MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");

+		MockDeleteGenericVnf("testVnfId123", "testReVer123");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		mockSDNCAdapter(200);

+

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		setVariablesVnfOnly(variables);

+		invokeSubProcess("DoDeleteVnfAndModules", businessKey, variables);

+		

+		injectSDNCCallbacks(callbacks, "deactivate");

+		injectSDNCCallbacks(callbacks, "unassign");

+

+		waitForProcessEnd(businessKey, 10000);

+

+		Assert.assertTrue(isProcessEnded(businessKey));		

+

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnfAndModules", "WorkflowException");

+		

+		assertEquals(null, workflowException);

+	}

+

+	

+	private void setVariablesVnfOnly(Map<String, Object> variables) {

+		variables.put("mso-request-id", "testRequestId123");		

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("vnfId","testVnfId123");

+		variables.put("serviceInstanceId", "MIS%2F1604%2F0026%2FSW_INTERNET");

+		//variables.put("vnfName", "testVnfName123");

+		variables.put("disableRollback", "true");

+		variables.put("msoRequestId", "testVnfId123");

+		variables.put("testVnfId","testVnfId123");

+		//variables.put("vnfType", "STMTN");

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +

+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"vSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," +

+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"," +

+				"}";

+		//variables.put("vnfModelInfo", vnfModelInfo);

+

+		variables.put("lcpCloudRegionId", "mdt1");

+		variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");		

+		

+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +

+				"\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"ServicevSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," +

+				"}";

+		//variables.put("serviceModelInfo", serviceModelInfo);

+		variables.put("globalSubscriberId", "MSO-1610");

+		variables.put("sdncVersion", "1707");

+		

+	}

+	

+	@Test	

+	@Deployment(resources = {"subprocess/DoDeleteVnfAndModules.bpmn", "subprocess/SDNCAdapterV1.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn", "subprocess/DoDeleteVfModuleFromVnf.bpmn", "subprocess/VnfAdapterRestV1.bpmn", "subprocess/DeleteAAIVfModule.bpmn"})

+	public void testDoDeleteVnfAndModules_successVnfAndModules() throws Exception{

+		MockAAIGenericVnfSearch();

+		MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");

+		MockDeleteGenericVnf("testVnfId123", "testReVer123");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		mockSDNCAdapter(200);

+		MockDoDeleteVfModule_SDNCSuccess();

+		MockDoDeleteVfModule_DeleteVNFSuccess();

+		MockAAIDeleteVfModule();

+

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		setVariablesVnfAndModules(variables);

+		invokeSubProcess("DoDeleteVnfAndModules", businessKey, variables);

+		

+		injectSDNCCallbacks(callbacks, "deactivate");

+		injectSDNCCallbacks(callbacks, "deactivate");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		injectSDNCCallbacks(callbacks, "unassign");

+		MockGetGenericVnfById("a27ce5a9-29c4-4c22-a017-6615ac73c721", "GenericFlows/getGenericVnfByNameResponse.xml");

+		injectSDNCCallbacks(callbacks, "unassign");

+		//MockGetGenericVnfById("a27ce5a9-29c4-4c22-a017-6615ac73c721", "GenericFlows/getGenericVnfByNameResponse.xml");

+

+		waitForProcessEnd(businessKey, 10000);

+

+		Assert.assertTrue(isProcessEnded(businessKey));		

+

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnfAndModules", "WorkflowException");

+		

+		assertEquals(null, workflowException);

+	}

+

+	

+	private void setVariablesVnfAndModules(Map<String, Object> variables) {

+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");		

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("vnfId","a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("serviceInstanceId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+				

+		variables.put("msoRequestId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		//variables.put("testVnfId","testVnfId123");

+		

+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");

+		variables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");

+		

+		variables.put("sdncVersion", "1707");

+		

+	}

+	

+

+	public static void MockDoDeleteVfModule_SDNCSuccess() {

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>deactivate"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>unassign"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+	}

+

+	

+	public static void MockDoDeleteVfModule_DeleteVNFSuccess() {

+		stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+		stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+	}

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java
index bba6f62..fa0bc49 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java
@@ -22,10 +22,19 @@
 

 

 

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.put;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVfModuleIdNoResponse;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;

 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

@@ -41,7 +50,6 @@
 import org.junit.Ignore;

 import org.junit.Test;

 import org.openecomp.mso.bpmn.common.WorkflowTest;

-import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;

 import org.openecomp.mso.bpmn.mock.FileUtil;

 

 /**

@@ -112,5 +120,125 @@
 		

 		logEnd();

 	}

+	

+	/**

+	 * Test the happy path through the flow with Building Blocks interface.

+	 */

+	@Test	

+	

+	@Deployment(resources = {

+			"subprocess/DoUpdateVfModule.bpmn",

+			"subprocess/PrepareUpdateAAIVfModule.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/UpdateAAIGenericVnf.bpmn",

+			"subprocess/UpdateAAIVfModule.bpmn"

+		})

+	public void happyPathBB() throws IOException {

+		

+		logStart();

+		

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		MockSDNCAdapterVfModule();

+		MockVNFAdapterRestVfModule();

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "DEV-VF-0011");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("msoRequestId", "DEV-VF-0011");

+		variables.put("isBaseVfModule", "false");

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("disableRollback", "true");

+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");

+		variables.put("vnfId", "skask");

+		variables.put("vfModuleId", "supercool");

+		variables.put("vnfType", "pcrf-capacity");

+		variables.put("isVidRequest", "true");

+		variables.put("volumeGroupId", "78987");

+		variables.put("usePreload", true);

+		

+		variables.put("sdncVersion", "1702");

+		

+		variables.put("lcpCloudRegionId", "MDTWNJ21");

+		variables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");

+		

+		String vfModuleModelInfo = "{ "+ "\"modelType\": \"vfModule\"," +

+				"\"modelInvariantUuid\": \"introvert\"," + 

+				"\"modelUuid\": \"3.14\"," +

+				"\"modelName\": \"STMTN5MMSC21-MMSC::model-1-0\"," +

+				"\"modelVersion\": \"1\"," + 

+				"\"modelCustomizationUuid\": \"MODEL-123\"" + "}";

+		variables.put("vfModuleModelInfo", vfModuleModelInfo);

+		

+		String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +

+				"\"modelInvariantUuid\": \"introvert\"," + 

+				"\"modelUuid\": \"3.14\"," +

+				"\"modelName\": \"VNF-STMTN5MMSC21-MMSC::model-1-0\"," +

+				"\"modelVersion\": \"1\"," + 

+				"\"modelCustomizationUuid\": \"VNF-MODEL-123\"" + "}";

+	variables.put("vnfModelInfo", vnfModelInfo);

+		

+		invokeSubProcess("DoUpdateVfModule", businessKey, variables);

+		

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+

+		waitForProcessEnd(businessKey, 10000);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		checkVariable(businessKey, "DoUpdateVfModuleSuccessIndicator", true);

+		

+		String heatStackId = (String) getVariableFromHistory(businessKey, "DOUPVfMod_heatStackId");

+		System.out.println("Heat stack Id from AAI: " + heatStackId);

+		

+		logEnd();

+	}

+	

+	// start of mocks used locally and by other VF Module unit tests

+	public static void MockSDNCAdapterVfModule() {

+		// simplified the implementation to return "success" for all requests

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+//			.withRequestBody(containing("SvcInstanceId><"))

+			.willReturn(aResponse()

+				.withStatus(200)

+				.withHeader("Content-Type", "text/xml")

+				.withBodyFile("VfModularity/StandardSDNCSynchResponse.xml")));

+//		stubFor(post(urlEqualTo("/SDNCAdapter"))

+//				.withRequestBody(containing("vnf-type>STMTN"))

+//				.willReturn(aResponse()

+//					.withStatus(200)

+//					.withHeader("Content-Type", "text/xml")

+//					.withBodyFile("VfModularity/StandardSDNCSynchResponse.xml")));

+//		stubFor(post(urlEqualTo("/SDNCAdapter"))

+//				.withRequestBody(containing("SvcAction>query"))

+//				.willReturn(aResponse()

+//					.withStatus(200)

+//					.withHeader("Content-Type", "text/xml")

+//					.withBodyFile("VfModularity/StandardSDNCSynchResponse.xml")));

+	}

+

+	public static void MockVNFAdapterRestVfModule() {

+		stubFor(put(urlEqualTo("/vnfs/v1/vnfs/skask/vf-modules/supercool"))

+			.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+		stubFor(post(urlMatching("/vnfs/v1/vnfs/.*/vf-modules"))

+				.willReturn(aResponse()

+					.withStatus(202)

+					.withHeader("Content-Type", "application/xml")));

+		stubFor(post(urlEqualTo("/vnfs/v1/vnfs/skask/vf-modules"))

+			.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+		stubFor(put(urlEqualTo("/vnfs/v1/volume-groups/78987"))

+			.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+	}

 }

 

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVnfAndModulesTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVnfAndModulesTest.java
new file mode 100644
index 0000000..b7650af
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVnfAndModulesTest.java
@@ -0,0 +1,206 @@
+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.junit.Assert.assertEquals;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.BPMNUtil;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.core.domain.ModelInfo;

+import org.openecomp.mso.bpmn.core.domain.ModuleResource;

+import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;

+import org.openecomp.mso.bpmn.core.domain.VnfResource;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit Test for the DoUpdateVnfAndModules Flow

+ *

+ */

+public class DoUpdateVnfAndModulesTest extends WorkflowTest {

+

+	private final CallbackSet callbacks = new CallbackSet();

+

+	public DoUpdateVnfAndModulesTest() throws IOException {	

+

+		callbacks.put("changeassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));

+		callbacks.put("activate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("query", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallback.xml"));		

+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(

+				"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));

+	}

+

+	@Test

+	

+	@Deployment(resources = {			

+			"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/PrepareUpdateAAIVfModule.bpmn",

+			"subprocess/DoUpdateVfModule.bpmn",

+			"subprocess/DoUpdateVnfAndModules.bpmn",		

+			"subprocess/VnfAdapterRestV1.bpmn",

+			"subprocess/ConfirmVolumeGroupTenant.bpmn",		

+			"subprocess/UpdateAAIVfModule.bpmn",			

+			"subprocess/UpdateAAIGenericVnf.bpmn"})

+	public void testDoUpdateVnfAndModules_success() throws Exception{

+		

+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");

+		//MockGetGenericVnfById_404("testVnfId");

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutGenericVnf(".*");

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");	

+		mockVNFPut("skask", "/supercool", 202);

+		mockVNFPut("skask", "/lukewarm", 202);

+		MockVNFAdapterRestVfModule();

+		MockDBUpdateVfModule();	

+		

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		setVariablesSuccess(variables, "", "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");

+		invokeSubProcess("DoUpdateVnfAndModules", businessKey, variables);

+

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		waitForProcessEnd(businessKey, 10000);

+

+		Assert.assertTrue(isProcessEnded(businessKey));

+		assertVariables("2", "200", null);

+

+	}

+	

+	

+

+	private void assertVariables(String exModuleCount, String exVnfFound, String exWorkflowException) {

+

+		String moduleCount = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "DUVAM_moduleCount");		

+		String vnfFound = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "DUVAM_queryAAIVfModuleResponseCode");		

+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "SavedWorkflowException1");

+		

+		assertEquals(exModuleCount, moduleCount);

+		assertEquals(exVnfFound, vnfFound);		

+		assertEquals(exWorkflowException, workflowException);

+	}

+

+	private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {

+		variables.put("isDebugLogEnabled", "true");

+		variables.put("bpmnRequest", request);

+		variables.put("msoRequestUdid", requestId);

+		variables.put("serviceInstanceId",siId);

+		variables.put("testVnfId","testVnfId123");

+		variables.put("vnfType", "STMTN");

+	

+	}

+

+	private void setVariablesSuccess(Map<String, Object> variables, String request, String requestId, String siId) {

+		variables.put("isDebugLogEnabled", "true");			

+		variables.put("requestId", requestId);

+		variables.put("msoRequestId", requestId);

+		variables.put("serviceInstanceId",siId);		

+		variables.put("disableRollback", "true");		

+		//variables.put("testVnfId","testVnfId123");

+		variables.put("vnfType", "STMTN");

+		variables.put("vnfId", "skask");

+		variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");

+		variables.put("lcpCloudRegionId", "mdt1");

+		

+		String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +

+				"\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"ServicevSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," +

+				"}";

+		variables.put("serviceModelInfo", serviceModelInfo);

+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");

+		String vnfModelInfo = "{" + "\"modelType\": \"vnf\"," +

+				"\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +

+				"\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +

+				"\"modelName\": \"vSAMP12\"," +

+				"\"modelVersion\": \"1.0\"," + 

+				"\"modelCustomizationUuid\": \"MODEL-ID-1234\"" + "}";

+		variables.put("vnfModelInfo", vnfModelInfo);

+

+		String cloudConfiguration = "{" + "\"cloudConfiguration\": { " +

+				"\"lcpCloudRegionId\": \"mdt1\"," +

+				"\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}}";

+		variables.put("cloudConfiguration", cloudConfiguration);

+		variables.put("sdncVersion", "1702");

+		variables.put("globalSubscriberId", "subscriber123");

+		variables.put("asdcServiceModelVersion", "serviceVersion01");

+		

+		try {						

+			VnfResource vr = new VnfResource();

+			ModelInfo mvr = new ModelInfo();

+			mvr.setModelName("vSAMP12");

+			mvr.setModelInstanceName("v123");

+			mvr.setModelInvariantUuid("extrovert");

+			mvr.setModelVersion("1.0");

+			mvr.setModelCustomizationUuid("MODEL-ID-1234");

+			vr.setModelInfo(mvr);

+			vr.constructVnfType("vnf1");			

+			vr.setNfType("somenftype");

+			vr.setNfRole("somenfrole");

+			vr.setNfFunction("somenffunction");

+			vr.setNfNamingCode("somenamingcode");	

+			ModuleResource mr = new ModuleResource();

+			ModelInfo mvmr = new ModelInfo();

+			mvmr.setModelInvariantUuid("introvert");

+			mvmr.setModelName("STMTN5MMSC21-MMSC::model-1-0");

+			mvmr.setModelVersion("1");

+			mvmr.setModelCustomizationUuid("MODEL-123");

+			mr.setModelInfo(mvmr);

+			mr.setIsBase(true);

+			mr.setVfModuleLabel("MODULELABEL");

+			vr.addVfModule(mr);

+			ModuleResource mr1 = new ModuleResource();

+			ModelInfo mvmr1 = new ModelInfo();

+			mvmr1.setModelInvariantUuid("extrovert");

+			mvmr1.setModelName("SECONDMODELNAME");

+			mvmr1.setModelVersion("1");

+			mvmr1.setModelCustomizationUuid("MODEL-123");

+			mr1.setModelInfo(mvmr1);

+			mr1.setIsBase(false);

+			mr1.setVfModuleLabel("MODULELABEL1");

+			vr.addVfModule(mr1);			

+			variables.put("vnfResourceDecomposition", vr);

+			variables.put("isTest", true);

+		} catch(Exception e) {

+			

+		}

+		

+	}

+		

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/ReplaceVnfInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/ReplaceVnfInfraTest.java
new file mode 100644
index 0000000..acccbf5
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/ReplaceVnfInfraTest.java
@@ -0,0 +1,259 @@
+/*- 

+ * ============LICENSE_START======================================================= 

+ * OPENECOMP - MSO 

+ * ================================================================================ 

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 

+ * ================================================================================ 

+ * Licensed under the Apache License, Version 2.0 (the "License"); 

+ * you may not use this file except in compliance with the License. 

+ * You may obtain a copy of the License at 

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0 

+ * 

+ * Unless required by applicable law or agreed to in writing, software 

+ * distributed under the License is distributed on an "AS IS" BASIS, 

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

+ * See the License for the specific language governing permissions and 

+ * limitations under the License. 

+ * ============LICENSE_END========================================================= 

+ */ 

+

+package org.openecomp.mso.bpmn.infrastructure;

+

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.containing;

+import static com.github.tomakehurst.wiremock.client.WireMock.delete;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteVfModule;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetPserverByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfsByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSetInMaintFlagByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockGetServiceResourcesCatalogData;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponsePolicy.MockPolicyAbort;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;

+import static org.openecomp.mso.bpmn.mock.StubResponsePolicy.MockPolicySkip;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit test cases for UpdateVnfInfra.bpmn

+ */

+public class ReplaceVnfInfraTest extends WorkflowTest {

+	

+	private final CallbackSet callbacks = new CallbackSet();

+	private static final String EOL = "\n";

+	private final String vnfAdapterDeleteCallback = 

+			"<deleteVfModuleResponse>" + EOL +

+			"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +

+			"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +

+			"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +

+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +

+			"</deleteVfModuleResponse>" + EOL;

+

+	public ReplaceVnfInfraTest() throws IOException {

+		callbacks.put("deactivate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("unassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);

+		callbacks.put("changeassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));

+		callbacks.put("activate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("query", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallback.xml"));		

+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(

+				"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));

+	}

+	

+	/**

+	 * Sunny day scenario.

+	 * 

+	 * @throws Exception

+	 */

+	@Test	

+    @Ignore

+	@Deployment(resources = {

+		"process/ReplaceVnfInfra.bpmn",		

+		"subprocess/DoDeleteVfModule.bpmn",

+		"subprocess/DoDeleteVnfAndModules.bpmn",

+		"subprocess/DeleteAAIVfModule.bpmn",

+		"subprocess/PrepareUpdateAAIVfModule.bpmn",

+		"subprocess/ConfirmVolumeGroupTenant.bpmn",

+		"subprocess/SDNCAdapterV1.bpmn",

+		"subprocess/DoDeleteVnfAndModules.bpmn",

+		"subprocess/GenericDeleteVnf.bpmn", 

+		"subprocess/DoDeleteVnf.bpmn", 

+		"subprocess/DoDeleteVfModule.bpmn",

+		"subprocess/VnfAdapterRestV1.bpmn",

+		"subprocess/UpdateAAIGenericVnf.bpmn",

+		"subprocess/UpdateAAIVfModule.bpmn",

+		"subprocess/GenericGetService.bpmn",

+		"subprocess/GenericGetVnf.bpmn",

+		"subprocess/GenericPutVnf.bpmn",

+		"subprocess/DoCreateVnf.bpmn",

+		"subprocess/GenerateVfModuleName.bpmn",

+		"subprocess/DoCreateVfModule.bpmn",

+		"subprocess/DoCreateVnfAndModules.bpmn",					

+		"subprocess/ConfirmVolumeGroupName.bpmn",

+		"subprocess/CreateAAIVfModule.bpmn",

+		"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",

+		"subprocess/CompleteMsoProcess.bpmn",

+		"subprocess/FalloutHandler.bpmn",

+		"subprocess/DoCreateVnfAndModulesRollback.bpmn",

+		"subprocess/BuildingBlock/DecomposeService.bpmn",

+		"subprocess/BuildingBlock/RainyDayHandler.bpmn",

+		"subprocess/BuildingBlock/ManualHandling.bpmn"

+		

+		})

+	public void sunnyDay() throws Exception {

+				

+		logStart();

+		MockAAIGenericVnfSearch();

+		MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");

+		MockDeleteGenericVnf("testVnfId123", "testReVer123");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		mockSDNCAdapter(200);

+		MockDoDeleteVfModule_SDNCSuccess();

+		MockDoDeleteVfModule_DeleteVNFSuccess();

+		MockAAIDeleteVfModule();		

+		

+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");

+		//MockGetGenericVnfById_404("testVnfId");

+		MockGetServiceResourcesCatalogData("995256d2-5a33-55df-13ab-12abad84e7ff", "1.0", "VIPR/getCatalogServiceResourcesDataForReplaceVnfInfra.json");

+		//MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		//MockPutGenericVnf(".*");

+		MockAAIVfModule();

+		MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", ".*");

+		//mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");	

+		//mockVNFPut("skask", "/supercool", 202);

+		//mockVNFPut("skask", "/lukewarm", 202);

+		//MockVNFAdapterRestVfModule();

+		//MockDBUpdateVfModule();	

+		//MockGetPserverByVnfId("skask", "AAI/AAI_pserverByVnfId.json", 200);

+		//MockGetGenericVnfsByVnfId("skask", "AAI/AAI_genericVnfsByVnfId.json", 200);

+		MockSetInMaintFlagByVnfId("skask", 200);

+		MockPolicySkip();

+		

+		//mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		//mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		String updaetVnfRequest =

+			FileUtil.readResourceFile("__files/InfrastructureFlows/ReplaceVnf_VID_request.json");

+		

+		Map<String, Object> variables = setupVariablesSunnyDayVID();

+		

+		

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("ReplaceVnfInfra",

+			"v1", businessKey, updaetVnfRequest, variables);

+		

+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);

+		

+		String responseBody = response.getResponse();

+		System.out.println("Workflow (Synch) Response:\n" + responseBody);

+		

+		//injectSDNCCallbacks(callbacks, "deactivate");

+		//injectSDNCCallbacks(callbacks, "deactivate");

+		injectVNFRestCallbacks(callbacks, "vnfDelete");

+		//injectSDNCCallbacks(callbacks, "unassign");

+		MockGetGenericVnfById("a27ce5a9-29c4-4c22-a017-6615ac73c721", "GenericFlows/getGenericVnfByNameResponse.xml");

+		injectSDNCCallbacks(callbacks, "unassign");

+		

+		

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		

+		// TODO add appropriate assertions

+

+		waitForProcessEnd(businessKey, 10000);

+		checkVariable(businessKey, "ReplaceVfModuleInfraSuccessIndicator", true);

+		

+		logEnd();

+	}

+	

+	// Active Scenario

+	private Map<String, Object> setupVariablesSunnyDayVID() {

+				Map<String, Object> variables = new HashMap<String, Object>();

+				//try {

+				//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));

+				//}

+				//catch (Exception e) {

+					

+				//}

+				//variables.put("mso-request-id", "testRequestId");

+				variables.put("requestId", "testRequestId");				

+				variables.put("isDebugLogEnabled", "true");				

+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");

+				variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+				variables.put("vnfType", "vSAMP12");					

+				variables.put("serviceType", "MOG");	

+						

+				return variables;

+				

+			}

+	

+	public static void MockDoDeleteVfModule_SDNCSuccess() {

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>deactivate"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+		stubFor(post(urlEqualTo("/SDNCAdapter"))

+				  .withRequestBody(containing("SvcAction>unassign"))

+				  .willReturn(aResponse()

+				  .withStatus(200)

+				  .withHeader("Content-Type", "text/xml")

+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));

+	}

+

+	

+	public static void MockDoDeleteVfModule_DeleteVNFSuccess() {

+		stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+		stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))

+				.willReturn(aResponse()

+				.withStatus(202)

+				.withHeader("Content-Type", "application/xml")));

+	}

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceTest.java
new file mode 100644
index 0000000..39cdd72
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceTest.java
@@ -0,0 +1,468 @@
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.*;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterRestPut;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
+import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
+import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
+
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+
+/**
+ * Unit test cases for DoUpdateNetworkInstance.bpmn
+ *
+ */
+public class UpdateNetworkInstanceTest extends WorkflowTest {
+	@WorkflowTestTransformer
+	public static final ResponseTransformer sdncAdapterMockTransformer =
+		new SDNCAdapterNetworkTopologyMockTransformer();
+
+	@Rule
+	public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
+		new SDNCAdapterCallbackRule(processEngineRule);
+
+	/**
+	 * End-to-End flow - Unit test for DoUpdateNetworkInstance.bpmn
+	 *  - String input & String response
+	 */
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
+							 "subprocess/DoUpdateNetworkInstance.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstance_SuccessVID1() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("            Success1 - UpdateNetworkInstance flow Started!       ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesVID1();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		System.out.println("----------------------------------------------------------");
+		System.out.println("- got workflow response -");
+		System.out.println("----------------------------------------------------------");
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
+	    Assert.assertNotNull("UPDNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
+
+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "UpdateNetworkInstance", "WorkflowResponse");
+		Assert.assertNotNull(workflowResp);
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("     Success1 - UpdateNetworkInstance flow Completed      ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
+			                 "subprocess/DoUpdateNetworkInstance.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstance_SuccessVIPER1() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("            Success2 - UpdateNetworkInstance flow Started!      ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesVIPER1();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
+	    Assert.assertNotNull("UPDNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
+
+	    String completeMsoProcessRequest =
+	    		"<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'
+	    	  + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'
+	    	  + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'
+	    	  + "   <request-info>"  + '\n'
+	    	  + "      <request-id>testRequestId</request-id>"  + '\n'
+	    	  + "      <action>UPDATE</action>"  + '\n'
+	    	  + "      <source>VID</source>"  + '\n'
+	    	  + "   </request-info>"  + '\n'
+	    	  + "   <aetgt:status-message>Network has been updated successfully.</aetgt:status-message>" + '\n'
+	    	  + "   <aetgt:mso-bpel-name>BPMN Network action: UPDATE</aetgt:mso-bpel-name>" + '\n'
+	    	  + "</aetgt:MsoCompletionRequest>";
+
+	    Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("     Success2 - UpdateNetworkInstance flow Completed     ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
+            				 "subprocess/DoUpdateNetworkInstance.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstance_MissingNetworkId() throws Exception {
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println("     Missing networkId - UpdateNetworkInstance flow Started!   ");
+		System.out.println("--------------------------------------------------------------------");
+
+		// setup simulators
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesMissingNetworkId();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
+	    Assert.assertNotNull("UPDNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest"));
+
+	    String falloutHandlerActual = getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest");
+	    String falloutHandlerExpected =
+"<aetgt:FalloutHandlerRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + "\n" +
+"					                             xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + "\n" +
+"					                             xmlns:wfsch=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
+"					   <request-info xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + "\n" +
+"					      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>" + "\n" +
+"					      <action>UPDATE</action>" + "\n" +
+"					      <source>VID</source>" + "\n" +
+"					   </request-info>" + "\n" +
+"						<aetgt:WorkflowException xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
+"							<aetgt:ErrorMessage>Variable 'network-id' value/element is missing.</aetgt:ErrorMessage>" + "\n" +
+"							<aetgt:ErrorCode>7000</aetgt:ErrorCode>" + "\n" +
+"						</aetgt:WorkflowException>" + "\n" +
+"					</aetgt:FalloutHandlerRequest>";
+
+		assertEquals("Response", falloutHandlerExpected, falloutHandlerActual);
+
+		System.out.println("------------------------------------------------------------------");
+		System.out.println("    Missing networkId - UpdateNetworkInstance flow Completed ");
+		System.out.println("------------------------------------------------------------------");
+
+	}
+
+
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
+		     				 "subprocess/DoUpdateNetworkInstance.bpmn",
+		     				 "subprocess/DoUpdateNetworkInstanceRollback.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstance_Network_SDNC_Rollback() throws Exception {
+
+		System.out.println("---------------------------------------------------------------");
+		System.out.println("    Network and SDNC Rollback - UpdateNetworkInstance flow Started!       ");
+		System.out.println("---------------------------------------------------------------");
+
+		// setup simulators
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
+		MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
+		MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
+		MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
+		MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
+		MockUpdateRequestDB("DBUpdateResponse.xml");
+		//MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesVID1();
+		//WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
+	    Assert.assertNotNull("UPDNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest"));
+
+		System.out.println("---------------------------------------------------------------------");
+		System.out.println(" Network and SCNC Rollback - UpdateNetworkInstance flow Completed   ");
+		System.out.println("---------------------------------------------------------------------");
+
+	}
+
+	// *****************
+	// Utility Section
+	// *****************
+
+	String networkModelInfo =
+		       "  {\"modelUuid\": \"mod-inst-uuid-123\", " + '\n' +
+            "   \"modelName\": \"mod_inst_z_123\", " + '\n' +
+		       "   \"modelVersion\": \"1.0\", " + '\n' +
+		       "   \"modelCustomizationUuid\": \"mod-inst-uuid-123\", " + '\n' +
+		       "   \"modelInvariantUuid\": \"mod-invar-uuid-123\" " + '\n' +
+		       "  }";
+
+	String serviceModelInfo =
+		       "  {\"modelUuid\": \"36a3a8ea-49a6-4ac8-b06c-89a54544b9b6\", " + '\n' +
+            "   \"modelName\": \"HNGW Protected OAM\", " + '\n' +
+		       "   \"modelVersion\": \"1.0\", " + '\n' +
+		       "   \"modelInvariantUuid\": \"fcc85cb0-ad74-45d7-a5a1-17c8744fdb71\" " + '\n' +
+		       "  }";
+
+	// Success Scenario
+	private Map<String, String> setupVariablesVID1() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("bpmnRequest", getCreateNetworkRequest1());
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequest1() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1.0\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_1\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"false\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"backoutOnFailure\": true, " + '\n' +
+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+	}
+
+	public String getCreateNetworkRequest2() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"myOwn_Network\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"backoutOnFailure\": true, " + '\n' +
+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+
+	}
+
+	// Success Scenario
+	private Map<String, String> setupVariablesVIPER1() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("msoRequestId", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_1");
+		variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
+		variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		variables.put("disableRollback", "false"); // macro
+		variables.put("failIfExists", "false");
+		//variables.put("sdncVersion", "1702");
+		variables.put("sdncVersion", "1707");
+		variables.put("subscriptionServiceType", "MSO-dev-service-type");
+		variables.put("globalSubscriberId", "globalId_45678905678");
+		variables.put("networkModelInfo", networkModelInfo);
+		variables.put("serviceModelInfo", serviceModelInfo);
+		return variables;
+
+	}
+
+	// Missing Name Scenario
+	private Map<String, String> setupVariablesMissingNetworkId() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("bpmnRequest", getCreateNetworkRequestNetworkId());
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		//variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4"); // missing, ok
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequestNetworkId() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+			return request;
+
+	}
+
+	public String getCreateNetworkRequestSDNCRollback() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_3\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+
+		return request;
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraV2Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraV2Test.java
new file mode 100644
index 0000000..3997d0a
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraV2Test.java
@@ -0,0 +1,119 @@
+/*- 

+ * ============LICENSE_START======================================================= 

+ * OPENECOMP - MSO 

+ * ================================================================================ 

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 

+ * ================================================================================ 

+ * Licensed under the Apache License, Version 2.0 (the "License"); 

+ * you may not use this file except in compliance with the License. 

+ * You may obtain a copy of the License at 

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0 

+ * 

+ * Unless required by applicable law or agreed to in writing, software 

+ * distributed under the License is distributed on an "AS IS" BASIS, 

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

+ * See the License for the specific language governing permissions and 

+ * limitations under the License. 

+ * ============LICENSE_END========================================================= 

+ */ 

+

+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;

+import org.openecomp.mso.bpmn.common.WorkflowTest.TestAsyncResponse;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit test cases for UpdateVfModuleV2.bpmn

+ */

+public class UpdateVfModuleInfraV2Test extends WorkflowTest {

+	

+	private final CallbackSet callbacks = new CallbackSet();

+

+	public UpdateVfModuleInfraV2Test() throws IOException {

+		/*callbacks.put("changeassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));

+		callbacks.put("query", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallback.xml"));

+		callbacks.put("activate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(

+				"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));*/

+	}

+	

+	@Test

+	@Ignore // IGNORED FOR 1710 MERGE TO ONAP

+	@Deployment(resources = {

+		"process/UpdateVfModuleInfraV2.bpmn",

+		"subprocess/DoUpdateVfModule.bpmn",

+		"subprocess/CompleteMsoProcess.bpmn",

+		})

+	

+	public void sunnyDay() throws Exception {

+		//logStart();

+			

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutVfModuleIdNoResponse("skask", "PCRF", "supercool");

+		MockGetGenericVnfByIdWithPriority("skask", "supercool", 200, "VfModularity/VfModule-supercool.xml", 1);

+		mockSDNCAdapter("/SDNCAdapter", "SvcInstanceId><", 200, "VfModularity/StandardSDNCSynchResponse.xml");

+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");

+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");

+		mockVNFPut("skask", "/supercool", 202);

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		

+		String businessKey = UUID.randomUUID().toString();	

+		Map<String, Object> variables = setupVariablesSunnyDayVID();

+		

+		String updateVfModuleRequest =

+				FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVfModule_VID_request.json");

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleInfraV2",

+				"v1", businessKey, updateVfModuleRequest, variables);

+			

+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);

+			

+		//String responseBody = response.getResponse();

+		//System.out.println("Workflow (Synch) Response:\n" + responseBody);

+		

+		//logEnd();

+	}

+	

+	// Active Scenario

+	private Map<String, Object> setupVariablesSunnyDayVID() {

+				Map<String, Object> variables = new HashMap<String, Object>();

+				variables.put("requestId", "testRequestId");		

+				variables.put("isBaseVfModule", false);

+				variables.put("isDebugLogEnabled", "true");

+				variables.put("recipeTimeout", "0");		

+				variables.put("requestAction", "UPDATE_VF_MODULE");

+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");

+				variables.put("vnfId", "skask");

+				variables.put("vnfType", "vSAMP12");

+				variables.put("vfModuleId", "supercool");

+				variables.put("volumeGroupId", "");			

+				variables.put("serviceType", "MOG");	

+				variables.put("vfModuleType", "");	

+				variables.put("moduleUuid", "fe6985cd-ea33-3346-ac12-ab121484a3fe");

+				return variables;

+				

+	}

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVnfInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVnfInfraTest.java
new file mode 100644
index 0000000..496dab4
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVnfInfraTest.java
@@ -0,0 +1,174 @@
+/*- 

+ * ============LICENSE_START======================================================= 

+ * OPENECOMP - MSO 

+ * ================================================================================ 

+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 

+ * ================================================================================ 

+ * Licensed under the Apache License, Version 2.0 (the "License"); 

+ * you may not use this file except in compliance with the License. 

+ * You may obtain a copy of the License at 

+ * 

+ *      http://www.apache.org/licenses/LICENSE-2.0 

+ * 

+ * Unless required by applicable law or agreed to in writing, software 

+ * distributed under the License is distributed on an "AS IS" BASIS, 

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

+ * See the License for the specific language governing permissions and 

+ * limitations under the License. 

+ * ============LICENSE_END========================================================= 

+ */ 

+

+package org.openecomp.mso.bpmn.infrastructure;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetPserverByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfsByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSetInMaintFlagByVnfId;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockGetServiceResourcesCatalogData;

+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;

+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;

+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;

+import static org.openecomp.mso.bpmn.mock.StubResponsePolicy.MockPolicySkip;

+

+import java.io.IOException;

+import java.util.HashMap;

+import java.util.Map;

+import java.util.UUID;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.WorkflowTest;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit test cases for UpdateVnfInfra.bpmn

+ */

+public class UpdateVnfInfraTest extends WorkflowTest {

+	

+	private final CallbackSet callbacks = new CallbackSet();

+

+	public UpdateVnfInfraTest() throws IOException {

+		callbacks.put("changeassign", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));

+		callbacks.put("activate", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));

+		callbacks.put("query", FileUtil.readResourceFile(

+				"__files/VfModularity/SDNCTopologyQueryCallback.xml"));		

+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(

+				"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));

+	}

+	

+	/**

+	 * Sunny day scenario.

+	 * 

+	 * @throws Exception

+	 */

+	@Test	

+	@Ignore // IGNORED FOR 1710 MERGE TO ONAP

+	@Deployment(resources = {

+		"process/UpdateVnfInfra.bpmn",		

+		"subprocess/DoUpdateVfModule.bpmn",

+		"subprocess/DoUpdateVnfAndModules.bpmn",

+		"subprocess/PrepareUpdateAAIVfModule.bpmn",

+		"subprocess/ConfirmVolumeGroupTenant.bpmn",

+		"subprocess/SDNCAdapterV1.bpmn",

+		"subprocess/VnfAdapterRestV1.bpmn",

+		"subprocess/UpdateAAIGenericVnf.bpmn",

+		"subprocess/UpdateAAIVfModule.bpmn",

+		"subprocess/CompleteMsoProcess.bpmn",

+		"subprocess/FalloutHandler.bpmn",

+		"subprocess/BuildingBlock/DecomposeService.bpmn",

+		"subprocess/BuildingBlock/RainyDayHandler.bpmn",

+		"subprocess/BuildingBlock/ManualHandling.bpmn"

+		

+		})

+	public void sunnyDay() throws Exception {

+				

+		logStart();

+		

+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");

+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");

+		//MockGetGenericVnfById_404("testVnfId");

+		MockGetServiceResourcesCatalogData("995256d2-5a33-55df-13ab-12abad84e7ff", "1.0", "VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json");

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutGenericVnf(".*");

+		MockAAIVfModule();

+		MockPatchGenericVnf("skask");

+		MockPatchVfModuleId("skask", ".*");

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");	

+		mockVNFPut("skask", "/supercool", 202);

+		mockVNFPut("skask", "/lukewarm", 202);

+		MockVNFAdapterRestVfModule();

+		MockDBUpdateVfModule();	

+		MockGetPserverByVnfId("skask", "AAI/AAI_pserverByVnfId.json", 200);

+		MockGetGenericVnfsByVnfId("skask", "AAI/AAI_genericVnfsByVnfId.json", 200);

+		MockSetInMaintFlagByVnfId("skask", 200);

+		MockPolicySkip();

+		

+		mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		String updaetVnfRequest =

+			FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVnf_VID_request.json");

+		

+		Map<String, Object> variables = setupVariablesSunnyDayVID();

+		

+		

+		TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVnfInfra",

+			"v1", businessKey, updaetVnfRequest, variables);

+		

+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);

+		

+		String responseBody = response.getResponse();

+		System.out.println("Workflow (Synch) Response:\n" + responseBody);

+		

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		injectSDNCCallbacks(callbacks, "changeassign, query");

+		injectVNFRestCallbacks(callbacks, "vnfUpdate");

+		injectSDNCCallbacks(callbacks, "activate");

+		

+		// TODO add appropriate assertions

+

+		waitForProcessEnd(businessKey, 10000);

+		checkVariable(businessKey, "UpdateVfModuleInfraSuccessIndicator", true);

+		

+		logEnd();

+	}

+	

+	// Active Scenario

+	private Map<String, Object> setupVariablesSunnyDayVID() {

+				Map<String, Object> variables = new HashMap<String, Object>();

+				//try {

+				//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));

+				//}

+				//catch (Exception e) {

+					

+				//}

+				//variables.put("mso-request-id", "testRequestId");

+				variables.put("requestId", "testRequestId");				

+				variables.put("isDebugLogEnabled", "true");				

+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");

+				variables.put("vnfId", "skask");

+				variables.put("vnfType", "vSAMP12");					

+				variables.put("serviceType", "MOG");	

+						

+				return variables;

+				

+			}

+	

+}

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_genericVnfsByVnfId.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_genericVnfsByVnfId.json
new file mode 100644
index 0000000..c7361f8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_genericVnfsByVnfId.json
@@ -0,0 +1,329 @@
+{
+  "vnf-id": "example-vnf-id-val-90603",
+  "vnf-name": "example-vnf-name-val-56838",
+  "vnf-name2": "example-vnf-name2-val-56319",
+  "vnf-type": "example-vnf-type-val-30533",
+  "service-id": "example-service-id-val-28290",
+  "regional-resource-zone": "example-regional-resource-zone-val-11059",
+  "prov-status": "example-prov-status-val-59777",
+  "operational-status": "example-operational-status-val-22513",
+  "in-maint": true,
+ 
+  "equipment-role": "example-equipment-role-val-23396",
+  "orchestration-status": "example-orchestration-status-val-59435",
+  "heat-stack-id": "example-heat-stack-id-val-96869",
+  "mso-catalog-key": "example-mso-catalog-key-val-30721",
+  "management-option": "example-management-option-val-61927",
+  "ipv4-oam-address": "example-ipv4-oam-address-val-23494",
+  "ipv4-loopback0-address": "example-ipv4-loopback0-address-val-87072",
+  "nm-lan-v6-address": "example-nm-lan-v6-address-val-91063",
+  "management-v6-address": "example-management-v6-address-val-80466",
+  "vcpu": 45837298,
+  "vcpu-units": "example-vcpu-units-val-86249",
+  "vmemory": 57288956,
+  "vmemory-units": "example-vmemory-units-val-13291",
+  "vdisk": 16937143,
+  "vdisk-units": "example-vdisk-units-val-73197",
+  
+  "is-closed-loop-disabled": true,
+  "summary-status": "example-summary-status-val-86438",
+  "encrypted-access-flag": true,
+  
+  
+  
+  
+  "model-invariant-id": "example-model-invariant-id-val-14704",
+  "model-version-id": "example-model-version-id-val-47847",
+  "model-customization-id": "example-model-customization-id-val-52688",
+  "widget-model-id": "example-widget-model-id-val-20939",
+  "widget-model-version": "example-widget-model-version-val-72210",
+  "as-number": "example-as-number-val-68358",
+  "regional-resource-subzone": "example-regional-resource-subzone-val-34391",
+  "nf-type": "example-nf-type-val-54866",
+  "nf-function": "example-nf-function-val-24790",
+  "nf-role": "example-nf-role-val-4780",
+  "nf-naming-code": "example-nf-naming-code-val-25118",
+  "selflink": "example-selflink-val-68404",
+  
+  
+ 
+ 
+  "l-interfaces": {
+    "l-interface": [
+      {
+        "interface-name": "example-interface-name-val-50593",
+        "interface-role": "example-interface-role-val-23375",
+        "v6-wan-link-ip": "example-v6-wan-link-ip-val-5921",
+        "selflink": "example-selflink-val-75663",
+        "interface-id": "example-interface-id-val-37465",
+        "macaddr": "example-macaddr-val-62657",
+        "network-name": "example-network-name-val-7252",
+        "management-option": "example-management-option-val-32963",
+        "interface-description": "example-interface-description-val-89453",
+        "is-port-mirrored": true,
+        "vlans": {
+          "vlan": [
+            {
+              "vlan-interface": "example-vlan-interface-val-16684",
+              "vlan-id-inner": 8602916,
+              "vlan-id-outer": 97348542,
+              "speed-value": "example-speed-value-val-90330",
+              "speed-units": "example-speed-units-val-15849",
+              "vlan-description": "example-vlan-description-val-46942",
+              "backdoor-connection": "example-backdoor-connection-val-78445",
+              
+              "orchestration-status": "example-orchestration-status-val-44994",
+              
+             
+             
+              "l3-interface-ipv4-address-list": [
+                {
+                  "l3-interface-ipv4-address": "example-l3-interface-ipv4-address-val-90277",
+                  "l3-interface-ipv4-prefix-length": 3364150,
+                  "vlan-id-inner": 44021171,
+                  "vlan-id-outer": 55708677,
+                  "is-floating": true,
+                  "neutron-network-id": "example-neutron-network-id-val-43267",
+                  "neutron-subnet-id": "example-neutron-subnet-id-val-62870"
+                }
+              ],
+              "l3-interface-ipv6-address-list": [
+                {
+                  "l3-interface-ipv6-address": "example-l3-interface-ipv6-address-val-45323",
+                  "l3-interface-ipv6-prefix-length": 56688923,
+                  "vlan-id-inner": 5703071,
+                  "vlan-id-outer": 86682265,
+                  "is-floating": true,
+                  "neutron-network-id": "example-neutron-network-id-val-28366",
+                  "neutron-subnet-id": "example-neutron-subnet-id-val-53034"
+                }
+              ]
+            }
+          ]
+        },
+        "sriov-vfs": {
+          "sriov-vf": [
+            {
+              "pci-id": "example-pci-id-val-4720",
+              "vf-vlan-filter": "example-vf-vlan-filter-val-42594",
+              "vf-mac-filter": "example-vf-mac-filter-val-13375",
+              "vf-vlan-strip": true,
+              "vf-vlan-anti-spoof-check": true,
+              "vf-mac-anti-spoof-check": true,
+              "vf-mirrors": "example-vf-mirrors-val-6057",
+              "vf-broadcast-allow": true,
+              "vf-unknown-multicast-allow": true,
+              "vf-unknown-unicast-allow": true,
+              "vf-insert-stag": true,
+              "vf-link-status": "example-vf-link-status-val-81448",
+              "neutron-network-id": "example-neutron-network-id-val-9504"
+            }
+          ]
+        },
+        "l-interfaces": {
+          "l-interface": [
+            {
+              "interface-name": "example-interface-name-val-16738",
+              "interface-role": "example-interface-role-val-13943",
+              "v6-wan-link-ip": "example-v6-wan-link-ip-val-63173",
+              "selflink": "example-selflink-val-43085",
+              "interface-id": "example-interface-id-val-51379",
+              "macaddr": "example-macaddr-val-16195",
+              "network-name": "example-network-name-val-45683",
+              "management-option": "example-management-option-val-78983",
+              "interface-description": "example-interface-description-val-34414",
+              "is-port-mirrored": true
+            }
+          ]
+        },
+        "l3-interface-ipv4-address-list": [
+          {
+            "l3-interface-ipv4-address": "example-l3-interface-ipv4-address-val-99078",
+            "l3-interface-ipv4-prefix-length": 55755841,
+            "vlan-id-inner": 81525473,
+            "vlan-id-outer": 90908072,
+            "is-floating": true,
+            "neutron-network-id": "example-neutron-network-id-val-47919",
+            "neutron-subnet-id": "example-neutron-subnet-id-val-84236"
+          }
+        ],
+        "l3-interface-ipv6-address-list": [
+          {
+            "l3-interface-ipv6-address": "example-l3-interface-ipv6-address-val-21939",
+            "l3-interface-ipv6-prefix-length": 50057584,
+            "vlan-id-inner": 75774660,
+            "vlan-id-outer": 4421090,
+            "is-floating": true,
+            "neutron-network-id": "example-neutron-network-id-val-46377",
+            "neutron-subnet-id": "example-neutron-subnet-id-val-16585"
+          }
+        ]
+      }
+    ]
+  },
+  "lag-interfaces": {
+    "lag-interface": [
+      {
+        "interface-name": "example-interface-name-val-39234",
+        "interface-description": "example-interface-description-val-1037",
+        "speed-value": "example-speed-value-val-1929",
+        "speed-units": "example-speed-units-val-74937",
+        "interface-id": "example-interface-id-val-91265",
+        "interface-role": "example-interface-role-val-19613",
+       
+       
+        "l-interfaces": {
+          "l-interface": [
+            {
+              "interface-name": "example-interface-name-val-10722",
+              "interface-role": "example-interface-role-val-95194",
+              "v6-wan-link-ip": "example-v6-wan-link-ip-val-24328",
+              "selflink": "example-selflink-val-24987",
+              "interface-id": "example-interface-id-val-75726",
+              "macaddr": "example-macaddr-val-36940",
+              "network-name": "example-network-name-val-65359",
+              "management-option": "example-management-option-val-49521",
+              "interface-description": "example-interface-description-val-70528",
+              "is-port-mirrored": true,
+              "vlans": {
+                "vlan": [
+                  {
+                    "vlan-interface": "example-vlan-interface-val-70827",
+                    "vlan-id-inner": 55659612,
+                    "vlan-id-outer": 90335612,
+                    "speed-value": "example-speed-value-val-54761",
+                    "speed-units": "example-speed-units-val-91398",
+                    "vlan-description": "example-vlan-description-val-17018",
+                    "backdoor-connection": "example-backdoor-connection-val-4021",
+                    
+                    "orchestration-status": "example-orchestration-status-val-18315",
+                    
+                  
+                    "l3-interface-ipv4-address-list": [
+                      {
+                        "l3-interface-ipv4-address": "example-l3-interface-ipv4-address-val-59336",
+                        "l3-interface-ipv4-prefix-length": 57636053,
+                        "vlan-id-inner": 34068397,
+                        "vlan-id-outer": 48570286,
+                        "is-floating": true,
+                        "neutron-network-id": "example-neutron-network-id-val-69862",
+                        "neutron-subnet-id": "example-neutron-subnet-id-val-75795"
+                      }
+                    ],
+                    "l3-interface-ipv6-address-list": [
+                      {
+                        "l3-interface-ipv6-address": "example-l3-interface-ipv6-address-val-15038",
+                        "l3-interface-ipv6-prefix-length": 42694503,
+                        "vlan-id-inner": 15929806,
+                        "vlan-id-outer": 87413856,
+                        "is-floating": true,
+                        "neutron-network-id": "example-neutron-network-id-val-52519",
+                        "neutron-subnet-id": "example-neutron-subnet-id-val-24471"
+                      }
+                    ]
+                  }
+                ]
+              },
+              "sriov-vfs": {
+                "sriov-vf": [
+                  {
+                    "pci-id": "example-pci-id-val-44669",
+                    "vf-vlan-filter": "example-vf-vlan-filter-val-53436",
+                    "vf-mac-filter": "example-vf-mac-filter-val-71902",
+                    "vf-vlan-strip": true,
+                    "vf-vlan-anti-spoof-check": true,
+                    "vf-mac-anti-spoof-check": true,
+                    "vf-mirrors": "example-vf-mirrors-val-54963",
+                    "vf-broadcast-allow": true,
+                    "vf-unknown-multicast-allow": true,
+                    "vf-unknown-unicast-allow": true,
+                    "vf-insert-stag": true,
+                    "vf-link-status": "example-vf-link-status-val-1546",
+                    "neutron-network-id": "example-neutron-network-id-val-92159"
+                  }
+                ]
+              },
+              "l-interfaces": {
+                "l-interface": [
+                  {
+                    "interface-name": "example-interface-name-val-9327",
+                    "interface-role": "example-interface-role-val-21859",
+                    "v6-wan-link-ip": "example-v6-wan-link-ip-val-21445",
+                    "selflink": "example-selflink-val-6085",
+                    "interface-id": "example-interface-id-val-39854",
+                    "macaddr": "example-macaddr-val-14433",
+                    "network-name": "example-network-name-val-3722",
+                    "management-option": "example-management-option-val-64739",
+                    "interface-description": "example-interface-description-val-5814",
+                    "is-port-mirrored": true
+                    
+                   
+                    
+                  }
+                ]
+              },
+              "l3-interface-ipv4-address-list": [
+                {
+                  "l3-interface-ipv4-address": "example-l3-interface-ipv4-address-val-64531",
+                  "l3-interface-ipv4-prefix-length": 66545882,
+                  "vlan-id-inner": 12194134,
+                  "vlan-id-outer": 29589286,
+                  "is-floating": true,
+                  "neutron-network-id": "example-neutron-network-id-val-91108",
+                  "neutron-subnet-id": "example-neutron-subnet-id-val-56984"
+                }
+              ],
+              "l3-interface-ipv6-address-list": [
+                {
+                  "l3-interface-ipv6-address": "example-l3-interface-ipv6-address-val-37408",
+                  "l3-interface-ipv6-prefix-length": 5116459,
+                  "vlan-id-inner": 39229896,
+                  "vlan-id-outer": 15091934,
+                  "is-floating": true,
+                  "neutron-network-id": "example-neutron-network-id-val-87700",
+                  "neutron-subnet-id": "example-neutron-subnet-id-val-37352"
+                }
+              ]
+            }
+          ]
+        }
+      }
+    ]
+  },
+  "vf-modules": {
+    "vf-module": [
+      {
+        "vf-module-id": "example-vf-module-id-val-56249",
+        "vf-module-name": "example-vf-module-name-val-18987",
+        "heat-stack-id": "example-heat-stack-id-val-80110",
+        "orchestration-status": "example-orchestration-status-val-8226",
+        "is-base-vf-module": true,
+        "model-invariant-id": "example-model-invariant-id-val-5071",
+        "model-version-id": "example-model-version-id-val-80793",
+        "model-customization-id": "example-model-customization-id-val-83277",
+        "widget-model-id": "example-widget-model-id-val-99814",
+        "widget-model-version": "example-widget-model-version-val-22799",
+        "contrail-service-instance-fqdn": "example-contrail-service-instance-fqdn-val-52133",
+        "module-index": 1933,
+        "selflink": "example-selflink-val-69992"
+      }
+    ]
+  },
+  "licenses": {
+    "license": [
+      {
+        "group-uuid": "example-group-uuid-val-73012",
+        "resource-uuid": "example-resource-uuid-val-80045"
+      }
+    ]
+  },
+  "entitlements": {
+    "entitlement": [
+      {
+        "group-uuid": "example-group-uuid-val-14874",
+        "resource-uuid": "example-resource-uuid-val-49146"
+      }
+    ]
+  }
+
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_pserverByVnfId.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_pserverByVnfId.json
new file mode 100644
index 0000000..1059d8c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/AAI/AAI_pserverByVnfId.json
@@ -0,0 +1,72 @@
+    {
+       
+       "result":  [{   
+            
+        "hostname": "8862-PserverHOSTNAME-LB1113",
+        "equipType": "JUNIPER UCPE", 
+        "equipVendor": "JUNIPER", 
+        "equipModel": "QFX51010-PNF",        
+        "ipv4OamAddress": "190.8.5.199",
+        "serialNumber": "VX986001PNF",
+        "pserverId": "5715CE4F-8600-58E103FE60C79",
+        "internetTopology": "WAN",
+        "inMaint": false,
+        "resourceVersion": "1500495668780",
+        "pserverName2": "test81600",
+        "relationshipList": {
+          "relationship": [
+            {
+              "relatedTo": "vserver",
+              "relatedLink": "/aai/v10/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/8862-tenantl-LB1113/vservers/vserver/8862-Lvserver-LB1113",
+              "relationshipData": [
+                {
+                  "relationshipKey": "cloud-region.cloud-owner",
+                  "relationshipValue": "att-aic"
+                },
+                {
+                  "relationshipKey": "cloud-region.cloud-region-id",
+                  "relationshipValue": "AAIAIC25"
+                },
+                {
+                  "relationshipKey": "tenant.tenant-id",
+                  "relationshipValue": "8862-tenantl-LB1113"
+                },
+                {
+                  "relationshipKey": "vserver.vserver-id",
+                  "relationshipValue": "8862-Lvserver-LB1113"
+                }
+              ],
+              "relatedToProperty": [
+                {
+                  "propertyKey": "vserver.vserver-name",
+                  "propertyValue": "hjZAYKyl5LO"
+                }
+              ]
+            }
+          ]
+        },
+        "pinterfaces": {
+          "pinterface": [
+            {
+              "interfaceName": "ge-0/5/8",
+              "speedValue": "1",
+              "speedUnits": "GBPS",
+              "resourceVersion": "1500495668784",
+              "inMaint": false
+            },
+            {
+              "interfaceName": "ge-1/5/8",
+              "speedValue": "1",
+              "speedUnits": "GBPS",
+              "resourceVersion": "1500495668788",
+              "inMaint": false
+            }
+          ]
+        }
+      }
+      
+     
+   
+   ]
+}    
+ 
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml
new file mode 100644
index 0000000..e6af141
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
+	<soapenv:Header />
+	<soapenv:Body>
+	<v1:SDNCAdapterCallback>		
+      <SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
+        <CallbackHeader>
+         <RequestId>79ec9006-3695-4fcc-93a8-be6f9e248beb</RequestId>
+         <ResponseCode>200</ResponseCode>
+         <ResponseMessage>OK</ResponseMessage>
+       </CallbackHeader>
+       <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">&lt;output xmlns="com:att:sdnctl:generic-resource"&gt;&lt;response-message&gt;&lt;/response-message&gt;&lt;svc-request-id&gt;79ec9006-3695-4fcc-93a8-be6f9e248beb&lt;/svc-request-id&gt;&lt;service-response-information&gt;&lt;instance-id&gt;f805ec2b-b4d8-473e-8325-67f110139e5d&lt;/instance-id&gt;&lt;/service-response-information&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;network-response-information&gt;&lt;instance-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/instance-id&gt;&lt;object-path&gt;restconf/config/GENERIC-RESOURCE-API:services/service/f805ec2b-b4d8-473e-8325-67f110139e5d/service-data/networks/network/f7e4db56-aab5-4065-8e65-cec1cd1de24f&lt;/object-path&gt;&lt;/network-response-information&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;/output&gt;</RequestData>
+      </SDNCAdapterCallbackRequest>	
+	</v1:SDNCAdapterCallback>	      
+	</soapenv:Body>
+</soapenv:Envelope>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml
new file mode 100644
index 0000000..40bb93b
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
+	<soapenv:Header />
+	<soapenv:Body>
+		<v1:SDNCAdapterCallback>	
+			<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
+			 <CallbackHeader>
+			   <RequestId>testRequestId</RequestId>
+			   <ResponseCode>200</ResponseCode>
+			   <ResponseMessage>OK</ResponseMessage> 
+			 </CallbackHeader>
+			 <RequestData xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+			           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+			           xsi:type="xs:string">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;19174929-3809-49ca-89eb-17f84a035389&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;HSL_direct_net_2&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</RequestData>
+			</SDNCAdapterCallbackRequest>
+		</v1:SDNCAdapterCallback>			
+	</soapenv:Body>
+</soapenv:Envelope>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json
index 91048ec..5a7ef5e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json
@@ -2,11 +2,11 @@
 	"requestDetails": {
 		"modelInfo": {
 			"modelType": "volumeGroup",
-			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
-			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1",
-			"modelCustomizationId": "ee6478e5-ea33-3346-ac12-ab121484a3fe"
+			"modelCustomizationUuid": "ee6478e5-ea33-3346-ac12-ab121484a3fe"
 		},
 		"cloudConfiguration": {
 			"lcpCloudRegionId": "mdt1",
@@ -23,8 +23,8 @@
 					"instanceId": "{service-instance-id}",
 					"modelInfo": {
 						"modelType": "service",
-						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test",
 						"modelVersion": "2.0"
 					}
@@ -34,11 +34,11 @@
 					"instanceId": "{vnf-instance-id}",
 					"modelInfo": {
 						"modelType": "vnf",
-						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "vSAMP12",
 						"modelVersion": "1",
-						"modelCustomizationName": "vSAMP12"
+						"modelInstanceName": "vSAMP12"
 					}
 				}
 			}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json
index 72e4183..de99a6d 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json
@@ -3,7 +3,7 @@
 		"modelInfo": {
 			"modelType": "volumeGroup",
 			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
-			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1"
 		},
@@ -23,7 +23,7 @@
 					"modelInfo": {
 						"modelType": "service",
 						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "{parent service model name}",
 						"modelVersion": "1"
 					}
@@ -34,7 +34,7 @@
 					"modelInfo": {
 						"modelType": "vnf",
 						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test/vSAMP12",
 						"modelVersion": "1"
 					}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
index cb20a41..8d9efb3 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
@@ -29,6 +29,7 @@
 		 <heat-stack-id/>

 		 <vnf-type>simple_cinder_master</vnf-type>

 		 <orchestration-status>Pending</orchestration-status>

+		 <vf-module-model-customization-id>ee6478e5-ea33-3346-ac12-ab121484a3fe</vf-module-model-customization-id>

 		 <resource-version>1460134360</resource-version>

 		 <relationship-list>

 			<relationship>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_HasVfModRelationship.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_HasVfModRelationship.xml
new file mode 100644
index 0000000..8d9c5c0
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_HasVfModRelationship.xml
@@ -0,0 +1,62 @@
+<volume-group xmlns="http://com.att.aai.inventory/v8">

+	<volume-group-id>78987</volume-group-id>

+	<volume-group-name>MSOTESTVOL102a-vSAMP12_base_vol_module-0</volume-group-name>

+	<heat-stack-id/>

+	<vnf-type>Test/vSAMP12</vnf-type>

+	<orchestration-status>Pending</orchestration-status>

+	<resource-version>0000020</resource-version>

+	<relationship-list>

+		<relationship>

+			<related-to>generic-vnf</related-to>

+			<related-link>https://aai-ext1.test.att.com:8443/aai/v8/network/generic-vnfs/generic-vnf/9e48f6ea-f786-46de-800a-d480e5ccc846/</related-link>

+			<relationship-data>

+				<relationship-key>generic-vnf.vnf-id</relationship-key>

+				<relationship-value>9e48f6ea-f786-46de-800a-d480e5ccc846</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>generic-vnf.vnf-name</property-key>

+				<property-value>MSOSTSAMP12-10601</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>tenant</related-to>

+			<related-link>https://aai-ext1.test.att.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>

+			<relationship-data>

+				<relationship-key>tenant.tenant-id</relationship-key>

+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>mdt1</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>tenant.tenant-name</property-key>

+				<property-value>ECOMP_MDT1</property-value>

+			</related-to-property>

+		</relationship>

+		<relationship>

+			<related-to>vf-module</related-to>

+			<related-link>https://aai-ext1.test.att.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>

+			<relationship-data>

+				<relationship-key>vf-module.vf-module-id</relationship-key>

+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-owner</relationship-key>

+				<relationship-value>att-aic</relationship-value>

+			</relationship-data>

+			<relationship-data>

+				<relationship-key>cloud-region.cloud-region-id</relationship-key>

+				<relationship-value>mdt1</relationship-value>

+			</relationship-data>

+			<related-to-property>

+				<property-key>vf-module.vf-module-name</property-key>

+				<property-value>ECOMP_MDT1</property-value>

+			</related-to-property>

+		</relationship>

+	</relationship-list>

+</volume-group>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request.json
index 1b56dbd..d1e5ee1 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request.json
@@ -2,8 +2,8 @@
 "requestDetails": {

 "modelInfo": {

 "modelType": "vfModule",

-"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

 "modelName": "STMTN5MMSC21-MMSC::model-1-0",

 "modelVersion": "1",

 "modelCustomizationUuid": "ee6478e5-ea33-3346-ac12-ab121484a3fe"

@@ -28,8 +28,8 @@
 "instanceName": "MSOTESTVOL103a-vSAMP12_base_module-0_vol",

 "modelInfo": {

 "modelType": "volumeGroup",

-"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

 "modelName": "vSAMP12..base..module-0",

 "modelVersion": "1"

 }

@@ -40,8 +40,8 @@
 "instanceId": "123456",

 "modelInfo": {

 "modelType": "service",

-"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",

 "modelName": "SERVICE_MODEL_NAME",

 "modelVersion": "1.0"

 }

@@ -53,11 +53,11 @@
 "instanceName": "skask-test",

 "modelInfo": {

 "modelType": "vnf",

-"modelInvariantId": "skask",

-"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "skask",

+"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",

 "modelName": "vSAMP12",

 "modelVersion": "1.0",

-"modelCustomizationName": "vSAMP12 1"

+"modelInstanceName": "vSAMP12 1"

 }

 }

 }

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request_noPreloads.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request_noPreloads.json
index f8cac48..55dc313 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request_noPreloads.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModule_VID_request_noPreloads.json
@@ -2,8 +2,8 @@
 "requestDetails": {

 "modelInfo": {

 "modelType": "vfModule",

-"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

 "modelName": "STMTN5MMSC21-MMSC::model-1-0",

 "modelVersion": "1",

 "modelCustomizationUuid": "ee6478e5-ea33-3346-ac12-ab121484a3fe"

@@ -28,8 +28,8 @@
 "instanceName": "MSOTESTVOL103a-vSAMP12_base_module-0_vol",

 "modelInfo": {

 "modelType": "volumeGroup",

-"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",

 "modelName": "vSAMP12..base..module-0",

 "modelVersion": "1"

 }

@@ -40,8 +40,8 @@
 "instanceId": "123456",

 "modelInfo": {

 "modelType": "service",

-"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",

-"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",

+"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",

 "modelName": "SERVICE_MODEL_NAME",

 "modelVersion": "1.0"

 }

@@ -53,11 +53,11 @@
 "instanceName": "skask-test",

 "modelInfo": {

 "modelType": "vnf",

-"modelInvariantId": "skask",

-"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",

+"modelInvariantUuid": "skask",

+"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",

 "modelName": "vSAMP12",

 "modelVersion": "1.0",

-"modelCustomizationName": "vSAMP12 1"

+"modelInstanceName": "vSAMP12 1"

 }

 }

 }

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DBUpdateResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DBUpdateResponse.xml
new file mode 100644
index 0000000..40e2344
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DBUpdateResponse.xml
@@ -0,0 +1,4 @@
+
+
+<ns2:updateRequestResponse xmlns:ns2="http://org.openecomp/requestsdb"
+                           xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml
new file mode 100644
index 0000000..8ec4f52
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

+	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+	<soapenv:Header />

+	<soapenv:Body>

+		<v1:SDNCAdapterCallback>	

+			<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+			 <CallbackHeader>

+			   <RequestId>19174929-3809-49ca-89eb-17f84a035389</RequestId>

+			   <ResponseCode>200</ResponseCode>

+			   <ResponseMessage>OK</ResponseMessage> 

+			 </CallbackHeader>

+			 <RequestData xmlns:xs="http://www.w3.org/2001/XMLSchema" 

+			           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

+			           xsi:type="xs:string">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;19174929-3809-49ca-89eb-17f84a035389&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;bdc5efe8-404a-409b-85f6-0dcc9eebae30&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;HSL_direct_net_2&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</RequestData>

+			</SDNCAdapterCallbackRequest>

+		</v1:SDNCAdapterCallback>			

+	</soapenv:Body>

+</soapenv:Envelope>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse_noExtraTag.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse_noExtraTag.xml
new file mode 100644
index 0000000..f180e61
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse_noExtraTag.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

+	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+	<soapenv:Header />

+	<soapenv:Body>

+			<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+			 <CallbackHeader>

+			   <RequestId>19174929-3809-49ca-89eb-17f84a035389</RequestId>

+			   <ResponseCode>200</ResponseCode>

+			   <ResponseMessage>OK</ResponseMessage> 

+			 </CallbackHeader>

+			 <RequestData xmlns:xs="http://www.w3.org/2001/XMLSchema" 

+			           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

+			           xsi:type="xs:string">&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;19174929-3809-49ca-89eb-17f84a035389&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;bdc5efe8-404a-409b-85f6-0dcc9eebae30&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;HSL_direct_net_2&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</RequestData>

+			</SDNCAdapterCallbackRequest>

+	</soapenv:Body>

+</soapenv:Envelope>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleCallbackResponse.xml
new file mode 100644
index 0000000..74a3beb
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleCallbackResponse.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<deleteVfModuleResponse>
+    <messageId>86651f79-057e-4245-8f5f-174db3cef553-1502888133261</messageId>
+    <vfModuleDeleted>true</vfModuleDeleted>
+    <vfModuleId>20928949-5230-495d-86a6-f3690b9b5d60</vfModuleId>
+    <vfModuleOutputs>
+        <entry>
+            <key>shared_private_network_id</key>
+            <value>bcd04543-b3d7-4c64-a910-1735b875ebb2</value>
+        </entry>
+        <entry>
+            <key>server1_port</key>
+            <value>d1605e82-50ba-4544-9f8d-a8a37b678046</value>
+        </entry>
+        <entry>
+            <key>vnf_id</key>
+            <value>7da56895-6be1-4bec-856b-525e0e573199</value>
+        </entry>
+    </vfModuleOutputs>
+    <vnfId>7da56895-6be1-4bec-856b-525e0e573199</vnfId>
+</deleteVfModuleResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json
index 35ba121..c6cc1ca 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json
@@ -2,7 +2,7 @@
 	"requestDetails": {
 		"modelInfo": {
 			"modelType": "volumeGroup",
-			"modelInvariantId": "0b01b8c2-8416-11e6-ae22-56b6b6499611",
+			"modelInvariantUuid": "0b01b8c2-8416-11e6-ae22-56b6b6499611",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1.0"
 		},
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json
index 5ff965f..5a05061 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json
@@ -3,7 +3,7 @@
 		"modelInfo": {
 			"modelType": "volumeGroup",
 			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
-			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1"
 		},
@@ -23,7 +23,7 @@
 					"modelInfo": {
 						"modelType": "service",
 						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "{parent service model name}",
 						"modelVersion": "1"
 					}
@@ -34,7 +34,7 @@
 					"modelInfo": {
 						"modelType": "vnf",
 						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test/vSAMP12",
 						"modelVersion": "1"
 					}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModule_getVnfResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModule_getVnfResponse.xml
new file mode 100644
index 0000000..021a8a7
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModule_getVnfResponse.xml
@@ -0,0 +1,26 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">

+			  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>

+			  <vnf-name>STMTN5MMSC21</vnf-name>

+			  <vnf-type>mmsc-capacity</vnf-type>

+			  <service-id>SDN-MOBILITY</service-id>

+			  <equipment-role>vMMSC</equipment-role>

+			  <orchestration-status>pending-create</orchestration-status>

+			  <in-maint>false</in-maint>

+			  <is-closed-loop-disabled>false</is-closed-loop-disabled>

+			  <resource-version>1508691</resource-version>

+			  <vf-modules>

+			    <vf-module>

+			      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>

+			      <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>

+			      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>

+			      <persona-model-version>1.0</persona-model-version>

+			      <is-base-vf-module>true</is-base-vf-module>

+			      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>

+			      <orchestration-status>pending-create</orchestration-status>

+			      <resource-version>1508692</resource-version>

+			    </vf-module>

+			  </vf-modules>

+			  <relationship-list/>

+			  <l-interfaces/>

+			  <lag-interfaces/>

+			</generic-vnf>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSINoRelations.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSINoRelations.xml
new file mode 100644
index 0000000..adb7aab
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSINoRelations.xml
@@ -0,0 +1,6 @@
+<service-instance>

+             <service-instance-id>MIS/1604/0026/SW_INTERNET</service-instance-id>

+             <resource-version>123456789</resource-version>

+             <relationship-list/> 

+         	<metadata/> 

+</service-instance>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlByIdVipr.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlByIdVipr.xml
new file mode 100644
index 0000000..80b0359
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlByIdVipr.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<search-results xmlns="http://org.openecomp.aai.inventory/v8">

+   <result-data>

+      <resource-type>service-instance</resource-type>

+      <resource-link>https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/aa8428ac-7dd2-441f-aa3e-e175802574fb</resource-link>

+   </result-data>

+</search-results>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json
index 2b9c287..3595c25 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json
@@ -2,11 +2,12 @@
   "requestDetails": {
       "modelInfo": {
         "modelType": "vnf",
-         "modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-         "modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+         "modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+         "modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
          "modelName": "vSAMP12",
          "modelVersion": "1.0",
-         "modelCustomizationName": "vSAMP12 1"
+         "modelInstanceName": "vSAMP12 1",
+         "modelCustomizationUuid": "customizationId123"
       },
       "cloudConfiguration": {
           "lcpCloudRegionId": "mdt1",
@@ -24,8 +25,8 @@
                "instanceId": "{serviceInstanceId}",
                "modelInfo": {
                   "modelType": "service",
-                  "modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-                  "modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+                  "modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+                  "modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
                   "modelName": "{parent service model name}",
                   "modelVersion": "1.0"
                }
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json
index f90b967..e8d9fc2 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json
@@ -2,11 +2,11 @@
   "requestDetails": {
       "modelInfo": {
         "modelType": "vnf",
-         "modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-         "modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+         "modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+         "modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
          "modelName": "vSAMP12",
          "modelVersion": "1.0",
-         "modelCustomizationName": "vSAMP12 1"
+         "modelInstanceName": "vSAMP12 1"
       },
       "cloudConfiguration": {
           "lcpCloudRegionId": "mdt1",
@@ -24,8 +24,8 @@
                "instanceId": "{serviceInstanceId}",
                "modelInfo": {
                   "modelType": "service",
-                  "modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-                  "modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+                  "modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+                  "modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
                   "modelName": "{parent service model name}",
                   "modelVersion": "1.0"
                }
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/ReplaceVnf_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/ReplaceVnf_VID_request.json
new file mode 100644
index 0000000..7c97172
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/ReplaceVnf_VID_request.json
@@ -0,0 +1,49 @@
+{
+"requestDetails": {
+"modelInfo": {
+"modelType": "vnf",
+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelName": "vSAMP12",
+"modelVersion": "1.0",
+"modelCustomizationUuid": "MODEL-ID-1234"
+},
+"cloudConfiguration": {
+"lcpCloudRegionId": "mdt1",
+"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+},
+"requestInfo": {
+"instanceName": "STMTN",
+"instanceId": "a27ce5a9-29c4-4c22-a017-6615ac73c721",
+"source": "VID",
+"suppressRollback": true
+},
+"relatedInstanceList": [
+{
+"relatedInstance": {
+"instanceId": "MIS%2F1604%2F0026%2FSW_INTERNET",
+"modelInfo": {
+"modelType": "service",
+"modelInvariantUuid": "995256d2-5a33-55df-13ab-12abad84e7ff",
+"modelUuid": "ab6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelName": "ServicevSAMP12",
+"modelVersion": "1.0"
+}
+}
+}
+],
+"requestParameters": {
+"usePreload": false,
+"userParams" : [
+	{
+		"name" : "someUserParam",
+		"value" : "someValue"
+	},
+	{ 
+		"name": "sgi_protected_subnet_id", 
+		"value": "thisissomefakevalue" 
+	}
+]
+}
+}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json
index e3556e7..c40a99e 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json
@@ -2,11 +2,11 @@
 "requestDetails": {
 "modelInfo": {
 "modelType": "vfModule",
-"modelInvariantId": "introvert",
-"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelInvariantUuid": "introvert",
+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 "modelName": "STMTN5MMSC21-MMSC::model-1-0",
 "modelVersion": "1",
-"modelCustomizationId": "MODEL12345"
+"modelCustomizationUuid": "MODEL12345"
 },
 "cloudConfiguration": {
 "lcpCloudRegionId": "MDTWNJ21",
@@ -24,8 +24,8 @@
 "instanceId": "123456",
 "modelInfo": {
 "modelType": "service",
-"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 "modelName": "SERVICE_MODEL_NAME",
 "modelVersion": "1.0"
 }
@@ -36,16 +36,26 @@
 "instanceId": "skask",
 "modelInfo": {
 "modelType": "vnf",
-"modelInvariantId": "skask",
-"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+"modelInvariantUuid": "skask",
+"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 "modelName": "vSAMP12",
 "modelVersion": "1.0",
-"modelCustomizationName": "vSAMP12 1"
+"modelInstanceName": "vSAMP12 1"
 }
 }
 }
 ],
 "requestParameters": {
-"userParams": {}
+"usePreload": false,
+"userParams" : [
+	{
+		"name" : "someUserParam",
+		"value" : "someValue"
+	},
+	{ 
+		"name": "sgi_protected_subnet_id", 
+		"value": "thisissomefakevalue" 
+	}
+]
 }
 }
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVnf_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVnf_VID_request.json
new file mode 100644
index 0000000..cdeaf92
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVnf_VID_request.json
@@ -0,0 +1,49 @@
+{
+"requestDetails": {
+"modelInfo": {
+"modelType": "vnf",
+"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelName": "vSAMP12",
+"modelVersion": "1.0",
+"modelCustomizationUuid": "MODEL-ID-1234"
+},
+"cloudConfiguration": {
+"lcpCloudRegionId": "mdt1",
+"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+},
+"requestInfo": {
+"instanceName": "STMTN",
+"instanceId": "skask",
+"source": "VID",
+"suppressRollback": true
+},
+"relatedInstanceList": [
+{
+"relatedInstance": {
+"instanceId": "MIS%2F1604%2F0026%2FSW_INTERNET",
+"modelInfo": {
+"modelType": "service",
+"modelInvariantUuid": "995256d2-5a33-55df-13ab-12abad84e7ff",
+"modelUuid": "ab6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelName": "ServicevSAMP12",
+"modelVersion": "1.0"
+}
+}
+}
+],
+"requestParameters": {
+"usePreload": false,
+"userParams" : [
+	{
+		"name" : "someUserParam",
+		"value" : "someValue"
+	},
+	{ 
+		"name": "sgi_protected_subnet_id", 
+		"value": "thisissomefakevalue" 
+	}
+]
+}
+}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policyAbortResponse.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policyAbortResponse.json
new file mode 100644
index 0000000..c315b1e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policyAbortResponse.json
@@ -0,0 +1 @@
+{"decision":"PERMIT","details":"Abort"}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policySkipResponse.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policySkipResponse.json
new file mode 100644
index 0000000..7cbdebb
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Policy/policySkipResponse.json
@@ -0,0 +1 @@
+{"decision":"PERMIT","details":"Skip"}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
index 244a51e..c48c6a6 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
@@ -9,7 +9,7 @@
 	<relationship-list>

 		<relationship>

 			<related-to>tenant</related-to>

-			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>

+			<related-link>/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>

 			<relationship-data>

 				<relationship-key>tenant.tenant-id</relationship-key>

 				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>

@@ -29,7 +29,7 @@
 		</relationship>

 		<relationship>

 			<related-to>vf-module</related-to>

-			<related-link>http://localhost:28090/aai/v8/network/generic-vnfs/generic-vnf/9e48f6ea-f786-46de-800a-d480e5ccc846/vf-modules/vf-module/6a1dc898-b590-47b9-bbf0-34424a7a2ec3/</related-link>

+			<related-link>/aai/v8/network/generic-vnfs/generic-vnf/9e48f6ea-f786-46de-800a-d480e5ccc846/vf-modules/vf-module/6a1dc898-b590-47b9-bbf0-34424a7a2ec3/</related-link>

 			<relationship-data>

 				<relationship-key>generic-vnf.vnf-id</relationship-key>

 				<relationship-value>9e48f6ea-f786-46de-800a-d480e5ccc846</relationship-value>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json
index 8ab460e..603c1f4 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json
@@ -2,8 +2,8 @@
 	"requestDetails": {
 		"modelInfo": {
 			"modelType": "volumeGroup",
-			"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
-			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1"
 		},
@@ -22,8 +22,8 @@
 					"instanceId": "{service-instance-id}",
 					"modelInfo": {
 						"modelType": "service",
-						"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test",
 						"modelVersion": "2.0"
 					}
@@ -33,11 +33,11 @@
 					"instanceId": "{vnf-instance-id}",
 					"modelInfo": {
 						"modelType": "vnf",
-						"modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test/vSAMP12",
 						"modelVersion": "1",
-						"modelCustomizationName": "vSAMP12"
+						"modelInstanceName": "vSAMP12"
 					}
 				}
 			}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json
index 963e2dd..f32ba29 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json
@@ -2,8 +2,8 @@
 	"requestDetails": {
 		"modelInfo": {
 			"modelType": "volumeGroup",
-			"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
-			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelInvariantUuid": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelUuid": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
 			"modelName": "vSAMP12::base::module-0",
 			"modelVersion": "1"
 		},
@@ -22,8 +22,8 @@
 					"instanceId": "{service-instance-id}",
 					"modelInfo": {
 						"modelType": "service",
-						"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff-x",
-						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff3514e3-5a33-55df-13ab-12abad84e7ff-x",
+						"modelUuid": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test",
 						"modelVersion": "2.0"
 					}
@@ -33,11 +33,11 @@
 					"instanceId": "{vnf-instance-id}",
 					"modelInfo": {
 						"modelType": "vnf",
-						"modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
-						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelInvariantUuid": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelUuid": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
 						"modelName": "Test/vSAMP12",
 						"modelVersion": "1",
-						"modelCustomizationName": "vSAMP12"
+						"modelInstanceName": "vSAMP12"
 					}
 				}
 			}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml
index 58b8708..85773cd 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml
@@ -5,8 +5,8 @@
    <orchestration-status>active</orchestration-status>

    <is-base-vf-module>true</is-base-vf-module>

    <resource-version>1475077639</resource-version>

-   <persona-model-id>ff5256d2-5a33-55df-13ab-12abad84e7ff</persona-model-id>

-   <persona-model-version>1.0</persona-model-version>

+   <model-invariant-id>ff5256d2-5a33-55df-13ab-12abad84e7ff</model-invariant-id>

+   <model-version-id>1.0</model-version-id>

    <relationship-list>

       <relationship>

          <related-to>volume-group</related-to>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForReplaceVnfInfra.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForReplaceVnfInfra.json
new file mode 100644
index 0000000..9126442
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForReplaceVnfInfra.json
@@ -0,0 +1,93 @@
+{ "serviceResources"    : {
+	"modelInfo"       : {
+		"modelName"          : "MSO Test Network",
+		"modelUuid"          : "aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e",
+		"modelInvariantUuid" : "52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f",
+		"modelVersion"       : null
+	},
+	"serviceVnfs": [
+		{ "modelInfo"                    : {
+			"modelName"              : "vHNF for DHV Test",
+			"modelUuid"              : "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelInvariantUuid"     : "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelVersion"           : "1.0",
+			"modelCustomizationUuid" : "MODEL-ID-1234",
+			"modelInstanceName"      : "vHNF for DHV Test 17"
+			},
+		"toscaNodeType"            : null,
+		"nfFunction"           	: null,
+		"nfType"              		: null,
+		"nfRole"              		: "vSCP",
+		"nfNamingCode"         	: null,
+			"vfModules": [
+				{
+					"modelInfo"               : { 
+						"modelName"              : "VhnfForDhvTest..base_TEST..module-0",
+						"modelUuid"              : "ebc3d18c-3e62-4c24-bcd6-961e98701a0a",
+						"modelInvariantUuid"     : "introvert",
+						"modelVersion"           : "1",
+						"modelCustomizationUuid" : "1740536a-742e-40f5-b9c8-83918849a787"
+					},		"isBase"                 : true,
+					"vfModuleLabel"          : "base_TEST",
+					"initialCount"           : 1,
+					"hasVolumeGroup"           : true
+				}
+			]
+		}
+		],
+	"serviceNetworks": [
+			{
+			"modelInfo"                : {
+				"modelName"              : "CONTRAIL_BASIC",
+				"modelUuid"              : "fe5be3a6-dbe0-46d6-bcac-44dc841a7edc",
+				"modelInvariantUuid"     : "ab07fbd8-185a-45ac-be45-db3eb02e98d5",
+				"modelVersion"           : null,
+				"modelCustomizationUuid" : "0cb9b26a-9820-48a7-86e5-16c510e993d9",
+				"modelInstanceName"      : "CONTRAIL_BASIC 5"
+		},
+			"toscaNodeType"            : null,
+			"networkType"              : null,
+			"networkTechnology"        : null,
+			"networkRole"              : null,
+			"networkScope"             : null
+		}
+		],
+	"serviceAllottedResources": [
+			{
+			"modelInfo"       : {
+				"modelName"              : "IP_MUX_Demux",
+				"modelUuid"              : "64a1a718-556b-48ce-b3b7-ed3237ccc94f",
+				"modelInvariantUuid"     : "f110ef53-a0a6-4d72-ab91-fd88a835e8c4",
+				"modelVersion"           : "2.0",
+				"modelCustomizationUuid" : "4bab0880-2f06-4aeb-87cb-3734c8e8bf93",
+				"modelInstanceName"      : "Pri_IP_MUX_Demux 1"
+			},
+			"toscaNodeType"              : null,
+			"allottedResourceType"              : "ContrailRoute",
+			"allottedResourceRole"              : null,
+			"providingServiceModelInvariantUuid"              : null,
+			"nfFunction"              : null,
+			"nfType"              : null,
+			"nfRole"              : null,
+			"nfNamingCode"              : null
+		},
+				{
+			"modelInfo"       : {
+				"modelName"              : "Service_Admin",
+				"modelUuid"              : "73501e03-ee76-4509-a8ce-96d2a9f33ee9",
+				"modelInvariantUuid"     : "462edf71-1a3c-487b-bf55-497460ab7de3",
+				"modelVersion"           : "2.0",
+				"modelCustomizationUuid" : "a896ffad-c8f9-404e-a527-7a8d0cc99ce6",
+				"modelInstanceName"      : "Pri_Service_Admin 5"
+			},
+			"toscaNodeType"              : null,
+			"allottedResourceType"              : "SecurityZone",
+			"allottedResourceRole"              : null,
+			"providingServiceModelInvariantUuid"              : null,
+			"nfFunction"              : null,
+			"nfType"              : null,
+			"nfRole"              : null,
+			"nfNamingCode"              : null
+		}
+		]
+	}}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json
new file mode 100644
index 0000000..eac0957
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json
@@ -0,0 +1,105 @@
+{ "serviceResources"    : {

+	"modelInfo"       : {

+		"modelName"          : "MSO Test Network",

+		"modelUuid"          : "aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e",

+		"modelInvariantUuid" : "52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f",

+		"modelVersion"       : null

+	},

+	"serviceVnfs": [

+		{ "modelInfo"                    : {

+			"modelName"              : "vHNF for DHV Test",

+			"modelUuid"              : "7097d8bb-f6ad-4cf7-866e-6a04c8f1b332",

+			"modelInvariantUuid"     : "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+			"modelVersion"           : "2.0",

+			"modelCustomizationUuid" : "da86dd87-43c5-458c-b226-5315b7be9ad5",

+			"modelInstanceName"      : "vHNF for DHV Test 17"

+			},

+		"toscaNodeType"            : null,

+		"nfFunction"           	: null,

+		"nfType"              		: null,

+		"nfRole"              		: "vSCP",

+		"nfNamingCode"         	: null,

+			"vfModules": [

+				{

+					"modelInfo"               : { 

+						"modelName"              : "VhnfForDhvTest..base_TEST..module-0",

+						"modelUuid"              : "ebc3d18c-3e62-4c24-bcd6-961e98701a0a",

+						"modelInvariantUuid"     : "introvert",

+						"modelVersion"           : "1",

+						"modelCustomizationUuid" : "1740536a-742e-40f5-b9c8-83918849a787"

+					},		"isBase"                 : true,

+					"vfModuleLabel"          : "base_TEST",

+					"initialCount"           : 1,

+					"hasVolumeGroup"           : true

+				},

+				{

+					"modelInfo"               : { 

+						"modelName"              : "VhnfForDhvTest..base_TEST..module-1",

+						"modelUuid"              : "ebc3d18c-3e62-4c24-bcd6-961e98701a0b",

+						"modelInvariantUuid"     : "extrovert",

+						"modelVersion"           : "1",

+						"modelCustomizationUuid" : "1740536a-742e-40f5-b9c8-83918849a788"

+					},		"isBase"                 : false,

+					"vfModuleLabel"          : "addon_TEST",

+					"initialCount"           : 1,

+					"hasVolumeGroup"           : true

+				}

+			]

+		}

+		],

+	"serviceNetworks": [

+			{

+			"modelInfo"                : {

+				"modelName"              : "CONTRAIL_BASIC",

+				"modelUuid"              : "fe5be3a6-dbe0-46d6-bcac-44dc841a7edc",

+				"modelInvariantUuid"     : "ab07fbd8-185a-45ac-be45-db3eb02e98d5",

+				"modelVersion"           : null,

+				"modelCustomizationUuid" : "0cb9b26a-9820-48a7-86e5-16c510e993d9",

+				"modelInstanceName"      : "CONTRAIL_BASIC 5"

+		},

+			"toscaNodeType"            : null,

+			"networkType"              : null,

+			"networkTechnology"        : null,

+			"networkRole"              : null,

+			"networkScope"             : null

+		}

+		],

+	"serviceAllottedResources": [

+			{

+			"modelInfo"       : {

+				"modelName"              : "IP_MUX_Demux",

+				"modelUuid"              : "64a1a718-556b-48ce-b3b7-ed3237ccc94f",

+				"modelInvariantUuid"     : "f110ef53-a0a6-4d72-ab91-fd88a835e8c4",

+				"modelVersion"           : "2.0",

+				"modelCustomizationUuid" : "4bab0880-2f06-4aeb-87cb-3734c8e8bf93",

+				"modelInstanceName"      : "Pri_IP_MUX_Demux 1"

+			},

+			"toscaNodeType"              : null,

+			"allottedResourceType"              : "ContrailRoute",

+			"allottedResourceRole"              : null,

+			"providingServiceModelInvariantUuid"              : null,

+			"nfFunction"              : null,

+			"nfType"              : null,

+			"nfRole"              : null,

+			"nfNamingCode"              : null

+		},

+				{

+			"modelInfo"       : {

+				"modelName"              : "Service_Admin",

+				"modelUuid"              : "73501e03-ee76-4509-a8ce-96d2a9f33ee9",

+				"modelInvariantUuid"     : "462edf71-1a3c-487b-bf55-497460ab7de3",

+				"modelVersion"           : "2.0",

+				"modelCustomizationUuid" : "a896ffad-c8f9-404e-a527-7a8d0cc99ce6",

+				"modelInstanceName"      : "Pri_Service_Admin 5"

+			},

+			"toscaNodeType"              : null,

+			"allottedResourceType"              : "SecurityZone",

+			"allottedResourceRole"              : null,

+			"providingServiceModelInvariantUuid"              : null,

+			"nfFunction"              : null,

+			"nfType"              : null,

+			"nfRole"              : null,

+			"nfNamingCode"              : null

+		}

+		]

+	}}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/serviceDecompositionATMFW.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/serviceDecompositionATMFW.json
new file mode 100644
index 0000000..94c1152
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VIPR/serviceDecompositionATMFW.json
@@ -0,0 +1,110 @@
+{

+"serviceResources" : {

+    "modelInfo" : {

+      "modelName" : "CMW_Service",

+      "modelUuid" : "",

+      "modelInvariantId" : "cmw-123-456-789",

+      "modelVersion" : "",

+      "modelCustomizationUuid" : "",

+      "modelInstanceName" : "",

+      "modelCustomizationName" : "",

+      "modelVersionId" : "Cmw_123",

+      "modelType" : ""

+    },

+    "serviceInstanceData" : {

+      "instanceId" : "ff5256d2-5a33-55df-13ab-12abad84e7ff"

+    },

+    "serviceNetworks" : [ {

+      "modelInfo" : {

+        "modelName" : "CONTRAIL30_BASIC",

+        "modelUuid" : "",

+        "modelInvariantId" : "not yet implemented",

+        "modelVersion" : "1.0",

+        "modelCustomizationUuid" : "z_network_123",

+        "modelInstanceName" : "",

+        "modelCustomizationName" : "",

+        "modelVersionId" : "mod-inst-uuid-123",

+        "modelType" : "network"

+      },

+      "instanceData" : { },

+      "networkType" : "CONTRAIL30_BASIC"

+    } ],

+    "serviceVnfs" : [ {

+      "modelInfo" : {

+        "modelName" : "vSAMP12",

+        "modelUuid" : "",

+        "modelInvariantId" : "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+        "modelVersion" : "1.0",

+        "modelCustomizationUuid" : "ff5256d2-5a33-55df-13ab-12abad84e7ff",

+        "modelInstanceName" : "",

+        "modelCustomizationName" : "",

+        "modelVersionId" : "fe6478e5-ea33-3346-ac12-ab121484a3fe",

+        "modelType" : "vnf"

+      },

+      "instanceData" : { },

+      "vfModules" : [ {

+        "modelInfo" : {

+          "modelName" : "vSAMP12::base::module-0",

+          "modelUuid" : "",

+          "modelInvariantId" : "miu-1001",

+          "modelVersion" : "1",

+          "modelCustomizationUuid" : "1001",

+          "modelInstanceName" : "",

+          "modelCustomizationName" : "",

+          "modelVersionId" : "",

+          "modelType" : "vfModule"

+        },

+        "instanceData" : { },

+        "hasVolumeGroup" : false,

+        "isBase" : true,

+        "initialCount" : 1

+      }, {

+        "modelInfo" : {

+          "modelName" : "base::module-0",

+          "modelUuid" : "",

+          "modelInvariantId" : "miu-1002",

+          "modelVersion" : "1",

+          "modelCustomizationUuid" : "1002",

+          "modelInstanceName" : "",

+          "modelCustomizationName" : "",

+          "modelVersionId" : "",

+          "modelType" : "vfModule"

+        },

+        "instanceData" : { },

+        "hasVolumeGroup" : false,

+        "isBase" : true,

+        "initialCount" : 1

+      }, {

+        "modelInfo" : {

+          "modelName" : "vSAMP12DEV::base::module-0",

+          "modelUuid" : "",

+          "modelInvariantId" : "miu-1003",

+          "modelVersion" : "1",

+          "modelCustomizationUuid" : "f86e8800-7629-427f-b284-3dbfd04db01f",

+          "modelInstanceName" : "",

+          "modelCustomizationName" : "",

+          "modelVersionId" : "",

+          "modelType" : "vfModule"

+        },

+        "instanceData" : { },

+        "hasVolumeGroup" : false,

+        "isBase" : true,

+        "initialCount" : 0

+      } ]

+    } ],

+    "serviceAllottedResources" : [ {

+      "modelInfo" : {

+        "modelName" : "Bruce Wayne",

+        "modelUuid" : "",

+        "modelInvariantId" : "not yet implemented",

+        "modelVersion" : "1.0",

+        "modelCustomizationUuid" : "ar-mod-custid-456-456",

+        "modelInstanceName" : "Clark Kent",

+        "modelCustomizationName" : "",

+        "modelVersionId" : "123-123",

+        "modelType" : "allottedResource"

+      },

+      "instanceData" : { }

+    } ]

+  }

+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/DBUpdateResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/DBUpdateResponse.xml
index 110e432..7c30f75 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/DBUpdateResponse.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/DBUpdateResponse.xml
@@ -1,4 +1,4 @@
 
 
-<ns2:updateRequestResponse xmlns:ns2="http://com.att.mso/requestsdb"
+<ns2:updateRequestResponse xmlns:ns2="http://org.openecomp.mso/requestsdb"
                            xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenerateVfModuleName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenerateVfModuleName_AAIResponse_Success.xml
index 1814735..fe87471 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenerateVfModuleName_AAIResponse_Success.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenerateVfModuleName_AAIResponse_Success.xml
@@ -1,4 +1,4 @@
-<generic-vnf xmlns="http://com.att.aai.inventory/v7">

+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">

 	<vnf-id>12345678-f41f-4822-9323-b75962763d74</vnf-id>

 	<vnf-name>STMTN5MMSC20</vnf-name>

 	<vnf-type>pcrf-capacity</vnf-type>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
index 85427e2..4712a5a 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
@@ -1,4 +1,4 @@
-<generic-vnf xmlns="http://com.att.aai.inventory/v7">

+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">

 	<vnf-id>skask</vnf-id>

 	<vnf-name>STMTN5MMSC20</vnf-name>

 	<vnf-type>pcrf-capacity</vnf-type>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
index 27cab6b..10af29a 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
@@ -6,7 +6,7 @@
 		<sdnc-request-header>

 			<svc-request-id>9ddf628a-9eca-430e-8974-22d520a31be1</svc-request-id>

 			<svc-action>assign</svc-action>

-			<svc-notification-url>https://msojra.infra.aic.att.net:8443/adapters/rest/SDNCNotify</svc-notification-url>

+			<svc-notification-url>https://msojra.infra.aic.net:8443/adapters/rest/SDNCNotify</svc-notification-url>

 		</sdnc-request-header>

 		<service-information>

 			<subscriber-name>notsurewecare</subscriber-name>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
index be6f973..f96a073 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
@@ -20,7 +20,7 @@
 		</service-information>

 		<sdnc-request-header>

 			<svc-request-id>5e168556-a5c6-4813-bff3-cc03007afbbc</svc-request-id>

-			<svc-notification-url>http://mtanjv9moja01-eth1-0.aic.cip.att.com:8080/adapters/rest/SDNCNotify</svc-notification-url>

+			<svc-notification-url>http://mtanjv9moja01-eth1-0.aic.cip.com:8080/adapters/rest/SDNCNotify</svc-notification-url>

 			<svc-action>assign</svc-action>

 		</sdnc-request-header>

 		<vnf-request-information>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModuleNoVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModuleNoVnf.xml
new file mode 100644
index 0000000..50a71c1
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModuleNoVnf.xml
@@ -0,0 +1,81 @@
+<output xmlns="com:att:sdnctl:vnf">

+<vf-module-topology xmlns="com:att:sdnctl:generic-resource">

+	<vf-module-topology-identifier>

+		<vf-module-id>0725b072-b854-4705-bf8e-c1a1eb08651e</vf-module-id>

+		<vf-module-type>vSAMP10aDEV::base::module-0</vf-module-type>

+		<vf-module-name>zmtn6nf-code-111_base_0</vf-module-name>

+	</vf-module-topology-identifier>

+	<ecomp-model-information>

+		<model-name>vSAMP10aDEV::base::module-0</model-name>

+		<model-customization-uuid>819ef122-ca19-4141-a61e-62922f8fc279</model-customization-uuid>

+		<model-version>ff2ae348-214a-11e7-93ae-92361f002673</model-version>

+		<model-invariant-uuid>3a97db99-c4bb-498a-a13a-38f65f1ced3d</model-invariant-uuid>

+		<model-uuid>ff2ae348-214a-11e7-93ae-92361f002673</model-uuid>

+	</ecomp-model-information>

+	<tenant>19123c2924c648eb8e42a3c1f14b7682</tenant>

+	<aic-cloud-region>mtn6</aic-cloud-region>

+	<aic-clli>AUSTTXGR</aic-clli>		

+			<vf-module-parameters>

+				<param>

+					<name>image</name>

+					<value>Ubuntu_Perf</value>

+				</param>

+				<param>

+					<name>flavor</name>

+					<value>m1.small</value>

+				</param>

+			</vf-module-parameters>

+			<vf-module-assignments>				

+			<vms>

+				<vm>

+					<vm-type>cm</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MCM001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01OAM002</vm-name>

+					</vm-names>

+					<vm-count>1</vm-count>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.249</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.250</ip-address>

+						</network-ips>

+						<network-ips-v6>

+							<ip-address-ipv6>2606:ae00:2e01:800::67</ip-address-ipv6>

+						</network-ips-v6>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.224.41.252</floating-ip>

+						<floating-ip-v6>2001:1890:1001:2B32::29:C</floating-ip-v6>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_oam</network-role>

+						<network-ips>

+							<ip-address>107.239.167.250</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.239.167.251</ip-address>

+						</network-ips>

+						<network-ips-v6>

+							<ip-address-ipv6>aa::aa::aa::aa::aa::aa</ip-address-ipv6>							

+						</network-ips-v6>

+						<network-ips-v6>

+							<ip-address-ipv6>bb::bb::bb::bb::bb::bb</ip-address-ipv6>

+						</network-ips-v6>

+						<interface-route-prefixes>							

+							<interface-route-prefix-cidr>1.2.3.4/26</interface-route-prefix-cidr>

+						</interface-route-prefixes>

+						<interface-route-prefixes>							

+							<interface-route-prefix-cidr>2002::/64</interface-route-prefix-cidr>

+						</interface-route-prefixes>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip-v6>1111:1890:1001:2B32::29:D</floating-ip-v6>

+					</vm-networks>

+				</vm>

+				</vms>

+			</vf-module-assignments>				

+</vf-module-topology>

+</output>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVnf.xml
new file mode 100644
index 0000000..bc2c7b9
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVnf.xml
@@ -0,0 +1,82 @@
+<output xmlns="com:att:sdnctl:vnf">

+<vnf-topology xmlns="com:att:sdnctl:generic-resource">

+	<vnf-topology-identifier-structure>

+		<nf-type>nf-type-1</nf-type>

+		<vnf-name>zmtn6nf-code-111</vnf-name>

+		<nf-role>nf-role-1</nf-role>

+		<nf-function>nf-function-1</nf-function>

+		<nf-code>nf-code-1</nf-code>

+		<vnf-id>eac30f85-f61f-4c5f-862e-2c62f9e135de</vnf-id>

+		<vnf-type>null</vnf-type>

+	</vnf-topology-identifier-structure>

+	<ecomp-model-information>

+		<model-name>vSAMP10a_macro</model-name>

+		<model-customization-uuid>819ef122-ca19-4141-a61e-62922f8fc279</model-customization-uuid>

+		<model-version>1.0</model-version>

+		<model-invariant-uuid>ef176121-f02c-4dd3-927c-22131d48446b</model-invariant-uuid>

+		<model-uuid>ff2ae348-214a-11e7-93ae-92361f002672</model-uuid>

+	</ecomp-model-information>

+	<vnf-resource-assignments>			

+			<vnf-networks>

+					<network-role>mog_exn</network-role>

+					<network-id>03dbd833-785c-40c0-bf32-37594b5334bc</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_exn_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>6f82d234-41a4-48e9-a9e8-415667a72929</neutron-id>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter1</sriov-vlan-filter>

+					</sriov-vlan-filter-list>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter2</sriov-vlan-filter>                         

+                     </sriov-vlan-filter-list>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_oam</network-role>

+					<network-id>3f181cde-9380-4c20-9d3a-e1a4ee74f994</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_oam_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>713b6770-13fa-4949-8dbb-a1288c5e5932</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_cor_B</network-role>

+					<network-id>821a550a-3f50-4725-995b-f212d5caec7c</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>18926e56-12b6-4a4d-98b6-37e0c05626ee</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_cor_A</network-role>

+					<network-id>3dabf5c0-cffb-420c-8960-8499c74eb25f</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_2</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>35530b29-a4de-48ff-a014-111110ccc652</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_gn</network-role>

+					<network-id>3ce97321-6e7f-49af-bd12-f833e377c310</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_gn_direct_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>32bfdd2c-28e1-4895-87a6-373bf12c3129</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_dmz</network-role>

+					<network-id>d43ca910-02a5-47dc-8510-100a68a3c9e0</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_dmz_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>cb9500fb-943f-412e-aea6-458711564a75</neutron-id>

+				</vnf-networks>

+				<availability-zones>

+					<availability-zone>nova</availability-zone>

+				</availability-zones>				

+			</vnf-resource-assignments>

+			<tenant>19123c2924c648eb8e42a3c1f14b7682</tenant>

+	<aic-cloud-region>mtn6</aic-cloud-region>

+	<aic-clli>AUSTTXGR</aic-clli>

+</vnf-topology>

+</output>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
index 8de2f95..8db8610 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
@@ -1,4 +1,4 @@
-<vf-module xmlns="http://com.att.aai.inventory/v7">

+<vf-module xmlns="http://org.openecomp.aai.inventory/v7">

 	<vf-module-id>lukewarm</vf-module-id>

 	<vf-module-name>PCRF::module-1</vf-module-name>

 	<heat-stack-id>slowburn</heat-stack-id>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
index e72d23d..10e85c0 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
@@ -1,4 +1,4 @@
-<vf-module xmlns="http://com.att.aai.inventory/v7">

+<vf-module xmlns="http://org.openecomp.aai.inventory/v7">

 	<vf-module-id>b37d96db-7d2c-47ce-bf61-a6c7b82fe161</vf-module-id>

 	<vf-module-name>PCRF::module-0-2</vf-module-name>

 	<model-invariant-id>00000000-0000-0000-0000-000000000000</model-invariant-id>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
index 15a84aa..4e7d567 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
@@ -1,4 +1,4 @@
-<vf-module xmlns="http://com.att.aai.inventory/v7">

+<vf-module xmlns="http://org.openecomp.aai.inventory/v7">

 	<vf-module-id>supercool</vf-module-id>

 	<vf-module-name>PCRF::module-2</vf-module-name>

 	<heat-stack-id>fastburn</heat-stack-id>

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties
index b14d495..8a557c4 100644
--- a/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties
@@ -9,10 +9,12 @@
 mso.csi.usrname=mso

 mso.msoKey=07a7159d3bf51a0e53be7a8f89699be7

 

+mso.healthcheck.log.debug=false

+

 mso.adapters.completemsoprocess.endpoint=http://localhost:28090/CompleteMsoProcess

 mso.workflow.message.endpoint=http://localhost:8080/mso/WorkflowMessage

-mso.catalog.db.endpoint=http://localhost:8090

-mso.adapters.db.endpoint=http://localhost:28090/dbadapters/RequestsDbAdapter

+mso.adapters.db.endpoint=http://localhost:28090/dbadapters/MsoRequestsDbAdapter

+mso.openecomp.adapters.db.endpoint=http://localhost:28090/dbadapters/RequestsDbAdapter

 mso.adapters.db.auth=757A94191D685FD2092AC1490730A4FC

 

 mso.adapters.network.endpoint=http://localhost:28090/networks/NetworkAdapter

@@ -24,6 +26,7 @@
 

 aai.auth=757A94191D685FD2092AC1490730A4FC

 

+mso.default.adapter.namespace=http://org.openecomp.mso

 mso.adapters.sdnc.endpoint=http://localhost:28090/SDNCAdapter

 mso.adapters.sdnc.rest.endpoint=http://localhost:28090/SDNCAdapter/v1/sdnc

 mso.adapters.sdnc.timeout=PT60S

@@ -38,7 +41,7 @@
 mso.workflow.message.endpoint=http://localhost:28080/mso/WorkflowMesssage

 mso.workflow.sdncadapter.callback=http://localhost:28080/mso/SDNCAdapterCallbackService

 

-mso.catalog.db.endpoint=http://localhost:28090/

+mso.catalog.db.endpoint=http://localhost:28090

 

 mso.adapters.tenant.endpoint=http://localhost:28090/tenantAdapterMock

 mso.adapters.vnf-async.endpoint=http://localhost:28090/vnfs/VnfAdapterAsync

@@ -84,4 +87,31 @@
 log.debug.GenericGetService=true

 log.debug.sdncAdapter=true

 log.debug.UpdateNetworkInstanceInfra=true

-log.debug.VnfAdapterRestV1=true
\ No newline at end of file
+log.debug.VnfAdapterRestV1=true

+log.debug.CreateNetworkInstance=true

+log.debug.DoCreateNetworkInstance=true

+log.debug.DoCreateNetworkInstanceRollback=true

+log.debug.DeleteNetworkInstance=true

+log.debug.DoDeleteNetworkInstance=true

+log.debug.DoDeleteNetworkInstanceRollback=true

+log.debug.UpdateNetworkInstance=true

+log.debug.DoUpdateNetworkInstance=true

+log.debug.DoUpdateNetworkInstanceRollback=true

+log.debug.CreateVnfInfra=true

+log.debug.DoCreateVnf=true

+

+policy.client.auth=Basic bTAzNzQzOnBvbGljeVIwY2sk

+policy.auth=Basic dGVzdHBkcDphbHBoYTEyMw==

+policy.environment=TEST

+policy.endpoint=http://localhost:28090/pdp/api/getDecision

+

+appc.topic.read=APPC-CL-FUSION-LCM-RESPONSE

+appc.topic.read.timeout=60000

+appc.client.response.timeout=3600000

+appc.topic.write=APPC-CL-FUSION-LCM

+appc.pool.members=uebsb91bodc.it.openecomp.org:3904,uebsb92bodc.it.openecomp.org:3904,uebsb93bodc.it.openecomp.org:3904

+appc.client.key=iaEMAfjsVsZnraBP

+appc.client.secret=wcivUjsjXzmGFBfxMmyJu9dz

+

+

+