Merge "add instance group support to SO"
[so.git] / bpmn / so-bpmn-infrastructure-common / src / main / groovy / org / onap / so / bpmn / infrastructure / scripts / DoCreateNetworkInstance.groovy
index 51574f6..41bae32 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * 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
@@ -21,7 +23,8 @@
 package org.onap.so.bpmn.infrastructure.scripts;
 
 import javax.ws.rs.core.UriBuilder
-
+import javax.xml.parsers.DocumentBuilder
+import javax.xml.parsers.DocumentBuilderFactory
 import org.apache.commons.lang3.*
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.delegate.DelegateExecution
@@ -41,14 +44,25 @@ import org.onap.so.client.aai.AAIResourcesClient
 import org.onap.so.client.aai.entities.uri.AAIResourceUri
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.onap.so.client.aai.entities.AAIResultWrapper
+import org.onap.so.client.aai.entities.Relationships
 import org.onap.so.client.graphinventory.entities.uri.Depth
 import org.onap.so.constants.Defaults
-import org.onap.so.logger.MsoLogger
-import org.onap.so.rest.APIResponse;
+import org.slf4j.Logger
+import org.slf4j.LoggerFactory
 import org.springframework.web.util.UriUtils
+import org.w3c.dom.Document
+import org.w3c.dom.Element
+import org.w3c.dom.NamedNodeMap
+import org.w3c.dom.Node
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource
 import org.onap.aai.domain.yang.VpnBinding
+import org.onap.aai.domain.yang.L3Network
+import org.onap.aai.domain.yang.L3Networks
+import org.onap.aai.domain.yang.NetworkPolicy
+import org.onap.aai.domain.yang.RouteTableReference
 import org.onap.aai.domain.yang.RouteTarget
-
+import org.onap.aai.domain.yang.Subnet
 import com.fasterxml.jackson.jaxrs.util.EndpointAsBeanProperty
 
 import javax.ws.rs.NotFoundException
@@ -61,7 +75,7 @@ import groovy.xml.XmlUtil
  *
  */
 public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
-       private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, DoCreateNetworkInstance.class);
+    private static final Logger logger = LoggerFactory.getLogger( DoCreateNetworkInstance.class);
 
        String Prefix="CRENWKI_"
        ExceptionUtil exceptionUtil = new ExceptionUtil()
@@ -192,7 +206,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
        public void preProcessRequest (DelegateExecution execution) {
 
                execution.setVariable("prefix",Prefix)
-               msoLogger.trace("Inside preProcessRequest() of " + className + ".groovy")
+               logger.trace("Inside preProcessRequest() of " + className + ".groovy")
 
                try {
                        // initialize flow variables
@@ -206,12 +220,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                        // JSON format request is sent, create xml
                                        try {
                                                def prettyJson = JsonOutput.prettyPrint(networkRequest.toString())
-                                               msoLogger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
+                                               logger.debug(" Incoming message formatted . . . : " + '\n' + prettyJson)
                                                networkRequest =  vidUtils.createXmlNetworkRequestInfra(execution, networkRequest)
 
                                        } catch (Exception ex) {
                                                String dataErrorMessage = " Invalid json format Request - " + ex.getMessage()
-                                               msoLogger.debug(dataErrorMessage)
+                                               logger.debug(dataErrorMessage)
                                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                                        }
                                } else {
@@ -225,36 +239,36 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                        networkRequest = utils.formatXml(networkRequest)
                        execution.setVariable(Prefix + "networkRequest", networkRequest)
-                       msoLogger.debug(Prefix + "networkRequest - " + '\n' + networkRequest)
+                       logger.debug(Prefix + "networkRequest - " + '\n' + networkRequest)
 
                        // validate 'backout-on-failure' to override 'mso.rollback'
                        boolean rollbackEnabled = networkUtils.isRollbackEnabled(execution, networkRequest)
                        execution.setVariable(Prefix + "rollbackEnabled", rollbackEnabled)
-                       msoLogger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
+                       logger.debug(Prefix + "rollbackEnabled - " + rollbackEnabled)
 
                        String networkInputs = utils.getNodeXml(networkRequest, "network-inputs", false).replace("tag0:","").replace(":tag0","")
                        execution.setVariable(Prefix + "networkInputs", networkInputs)
-                       msoLogger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
+                       logger.debug(Prefix + "networkInputs - " + '\n' + networkInputs)
 
                        // prepare messageId
                        String messageId = execution.getVariable("testMessageId")  // for testing
                        if (messageId == null || messageId == "") {
                                messageId = UUID.randomUUID()
-                               msoLogger.debug(Prefix + "messageId, random generated: " + messageId)
+                               logger.debug(Prefix + "messageId, random generated: " + messageId)
                        } else {
-                               msoLogger.debug(Prefix + "messageId, pre-assigned: " + messageId)
+                               logger.debug(Prefix + "messageId, pre-assigned: " + messageId)
                        }
                        execution.setVariable(Prefix + "messageId", messageId)
 
                        String source = utils.getNodeText(networkRequest, "source")
                        execution.setVariable(Prefix + "source", source)
-                       msoLogger.debug(Prefix + "source - " + source)
+                       logger.debug(Prefix + "source - " + source)
 
                        // validate cloud region
                        String lcpCloudRegionId = utils.getNodeText(networkRequest, "aic-cloud-region")
                        if ((lcpCloudRegionId == null) || (lcpCloudRegionId == "") || (lcpCloudRegionId == "null")) {
                                String dataErrorMessage = "Missing value/element: 'lcpCloudRegionId' or 'cloudConfiguration' or 'aic-cloud-region'."
-                               msoLogger.debug(" Invalid Request - " + dataErrorMessage)
+                               logger.debug(" Invalid Request - " + dataErrorMessage)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                        }
 
@@ -262,7 +276,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String serviceInstanceId = utils.getNodeText(networkRequest, "service-instance-id")
                        if ((serviceInstanceId == null) || (serviceInstanceId == "") || (serviceInstanceId == "null")) {
                                String dataErrorMessage = "Missing value/element: 'serviceInstanceId'."
-                               msoLogger.debug(" Invalid Request - " + dataErrorMessage)
+                               logger.debug(" Invalid Request - " + dataErrorMessage)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                        }
 
@@ -277,20 +291,20 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        } catch (IOException ex) {
                                String exceptionMessage = "Exception Encountered in DoCreateNetworkInstance, PreProcessRequest() - "
                                String dataErrorMessage = exceptionMessage + " Unable to encode PO/SDNC user/password string - " + ex.getMessage()
-                               msoLogger.debug(dataErrorMessage)
+                               logger.debug(dataErrorMessage)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                        }
 
                        // Set variables for Generic Get Sub Flow use
                        execution.setVariable(Prefix + "serviceInstanceId", serviceInstanceId)
-                       msoLogger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
+                       logger.debug(Prefix + "serviceInstanceId - " + serviceInstanceId)
 
                        execution.setVariable("GENGS_type", "service-instance")
-                       msoLogger.debug("GENGS_type - " + "service-instance")
-                       msoLogger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
+                       logger.debug("GENGS_type - " + "service-instance")
+                       logger.debug(" Url for SDNC adapter: " + UrnPropertiesReader.getVariable("mso.adapters.sdnc.endpoint",execution))
 
                        String sdncVersion = execution.getVariable("sdncVersion")
-                       msoLogger.debug("sdncVersion? : " + sdncVersion)
+                       logger.debug("sdncVersion? : " + sdncVersion)
 
                        // build 'networkOutputs'
                        String networkId = utils.getNodeText(networkRequest, "network-id")
@@ -307,7 +321,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                           <network-name>${MsoUtils.xmlEscape(networkName)}</network-name>
                         </network-outputs>"""
                        execution.setVariable(Prefix + "networkOutputs", networkOutputs)
-                       msoLogger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
+                       logger.debug(Prefix + "networkOutputs - " + '\n' + networkOutputs)
                        execution.setVariable(Prefix + "networkId", networkId)
                        execution.setVariable(Prefix + "networkName", networkName)
 
@@ -318,7 +332,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        sendSyncError(execution)
                        // caught exception
                        String exceptionMessage = "Exception Encountered in PreProcessRequest() of " + className + ".groovy ***** : " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -347,7 +361,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        throw e;
                }catch (Exception ex){
                        String msg = "Exception in getServiceInstance. " + ex.getMessage()
-                       msoLogger.debug(msg)
+                       logger.debug(msg)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg)
                }
        }
@@ -357,73 +371,33 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAINetworkName() of DoCreateNetworkInstance ***** " )
-
-               // get variables
-               String networkInputs  = execution.getVariable(Prefix + "networkInputs")
-               String networkName   = utils.getNodeText(networkInputs, "network-name")
-               networkName = UriUtils.encode(networkName,"UTF-8")
+               logger.debug(" ***** Inside callRESTQueryAAINetworkName() of DoCreateNetworkInstance ***** " )
 
-               // Prepare AA&I url with network-name
-               String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
-               AaiUtil aaiUriUtil = new AaiUtil(this)
-
-               AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK)
-               uri.queryParam("network-name", networkName)
-               String queryAAINameRequest = aaiUriUtil.createAaiUri(uri)
-
-               execution.setVariable(Prefix + "queryNameAAIRequest", queryAAINameRequest)
-               msoLogger.debug(Prefix + "queryNameAAIRequest - " + "\n" + queryAAINameRequest)
-
-               try {
-                       APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryAAINameRequest)
-                       String returnCode = response.getStatusCode()
-                       execution.setVariable(Prefix + "aaiNameReturnCode", returnCode)
-                       msoLogger.debug(" ***** AAI Query Name Response Code  : " + returnCode)
-
-                       String aaiResponseAsString = response.getResponseBodyAsString()
-                       msoLogger.debug(" ***** AAI Query Name Response : " +'\n'+ aaiResponseAsString)
-
-                       if (returnCode=='200') {
-                               execution.setVariable(Prefix + "queryNameAAIResponse", aaiResponseAsString)
-                               execution.setVariable(Prefix + "isAAIqueryNameGood", true)
-                               String orchestrationStatus = ""
-                               try {
-                                       // response is NOT empty
-                                       orchestrationStatus = utils.getNodeText(aaiResponseAsString, "orchestration-status")
-                                       execution.setVariable(Prefix + "orchestrationStatus", orchestrationStatus.toUpperCase())
-                                       msoLogger.debug(Prefix + "orchestrationStatus - " + orchestrationStatus.toUpperCase())
-                                       execution.setVariable("orchestrationStatus", orchestrationStatus)
-
-                               } catch (Exception ex) {
-                                   // response is empty
-                                       execution.setVariable(Prefix + "orchestrationStatus", orchestrationStatus)
-                                       msoLogger.debug(Prefix + "orchestrationStatus - " + orchestrationStatus)
-                               }
-
-                       } else {
-                           if (returnCode=='404') {
-                                       msoLogger.debug(" QueryAAINetworkName return code = '404' (Not Found).  Proceed with the Create !!! ")
-
-                           } else {
-                               // aai all errors
-                                       String dataErrorMessage = "Unexpected Error Response from QueryAAINetworkName - " + returnCode
-                                       msoLogger.debug(dataErrorMessage)
-                                       exceptionUtil.buildWorkflowException(execution, 2500, dataErrorMessage)
+               try{
+                       // get variables
+                       String networkInputs  = execution.getVariable(Prefix + "networkInputs")
+                       String networkName   = utils.getNodeText(networkInputs, "network-name")
 
-                     }
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", networkName)
+                       L3Networks networks = client.get(uri, NotFoundException.class).asBean(L3Networks.class).get()
+                       L3Network network = networks.getL3Network().get(0)
 
-                       }
+                       execution.setVariable(Prefix + "isAAIqueryNameGood", true)
+                       String orchestrationStatus = network.getOrchestrationStatus()
+                       execution.setVariable(Prefix + "orchestrationStatus", orchestrationStatus.toUpperCase())
+                       logger.debug(Prefix + "orchestrationStatus - " + orchestrationStatus.toUpperCase())
+                       execution.setVariable("orchestrationStatus", orchestrationStatus)
 
-                       msoLogger.debug(Prefix + "isAAIqueryNameGood? : " + execution.getVariable(Prefix + "isAAIqueryNameGood"))
+                       logger.debug(Prefix + "isAAIqueryNameGood? : " + execution.getVariable(Prefix + "isAAIqueryNameGood"))
 
-               } catch (BpmnError e) {
-               throw e;
+               } catch (NotFoundException e) {
+                       logger.debug(" QueryAAINetworkName return code = '404' (Not Found).  Proceed with the Create !!! ")
 
                } catch (Exception ex) {
                        // try error
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAINetworkName() -  " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -434,7 +408,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAICloudRegion() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTQueryAAICloudRegion() of DoCreateNetworkInstance ***** " )
 
                try {
                        String networkInputs  = execution.getVariable(Prefix + "networkInputs")
@@ -458,12 +432,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                        } else {
                            String dataErrorMessage = "QueryAAICloudRegion Unsuccessful. Return Code: " + execution.getVariable(Prefix + "queryCloudRegionReturnCode")
-                           msoLogger.debug(dataErrorMessage)
+                           logger.debug(dataErrorMessage)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
 
                        }
 
-                       msoLogger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
+                       logger.debug(" is Cloud Region Good: " + execution.getVariable(Prefix + "isCloudRegionGood"))
 
                } catch (BpmnError e) {
                        throw e;
@@ -471,7 +445,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                } catch (Exception ex) {
                        // try error
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow - callRESTQueryAAICloudRegion() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -482,7 +456,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
 
                try {
                        // get variables
@@ -495,7 +469,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                  networkId = utils.getNodeText(networkResponseInformation, "instance-id")
                           } catch (Exception ex) {
                              String dataErrorMessage = " SNDC Response network validation for 'instance-id' (network-id) failed: Empty <network-response-information>"
-                             msoLogger.debug(dataErrorMessage)
+                             logger.debug(dataErrorMessage)
                                  exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                           }
 
@@ -504,10 +478,10 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        }
                        if (networkId == null || networkId == "null") {
                                String dataErrorMessage = "SNDC Response did not contains 'instance-id' or 'network-id' element, or the value is null."
-                               msoLogger.debug(dataErrorMessage)
+                               logger.debug(dataErrorMessage)
                                exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                        } else {
-                          msoLogger.debug(" SNDC Response network validation for 'instance-id' (network-id)' is good: " + networkId)
+                          logger.debug(" SNDC Response network validation for 'instance-id' (network-id)' is good: " + networkId)
                        }
 
 
@@ -515,61 +489,25 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String networkName   = utils.getNodeText(assignSDNCResponse, "network-name")
                        execution.setVariable(Prefix + "networkName", networkName)
 
-                       networkId = UriUtils.encode(networkId,"UTF-8")
-
-                       AaiUtil aaiUriUtil = new AaiUtil(this)
-                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
-                       uri.depth(Depth.ALL)
-                       String queryIdAAIRequest = aaiUriUtil.createAaiUri(uri)
-
-                       execution.setVariable(Prefix + "queryIdAAIRequest", queryIdAAIRequest)
-                       msoLogger.debug(Prefix + "queryIdAAIRequest - " + "\n" + queryIdAAIRequest)
-
-                       APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryIdAAIRequest)
-                       String returnCode = response.getStatusCode()
-                       execution.setVariable(Prefix + "aaiIdReturnCode", returnCode)
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+                       L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
 
-                       msoLogger.debug(" ***** AAI Response Code  : " + returnCode)
+                       execution.setVariable(Prefix + "queryIdAAIResponse", network)
 
-                       String aaiResponseAsString = response.getResponseBodyAsString()
-
-                       if (returnCode=='200') {
-                               execution.setVariable(Prefix + "queryIdAAIResponse", aaiResponseAsString)
-                               msoLogger.debug(" QueryAAINetworkId Success REST Response - " + "\n" + aaiResponseAsString)
-
-                               String netId   = utils.getNodeText(aaiResponseAsString, "network-id")
-                               execution.setVariable(Prefix + "networkId", netId)
-                               String netName   = utils.getNodeText(aaiResponseAsString, "network-name")
-                               execution.setVariable(Prefix + "networkName", netName)
-
-                       } else {
-                               if (returnCode=='404') {
-                                       String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
-                                       msoLogger.debug(" AAI Query Failed. " + dataErrorMessage)
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                               } 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 QueryAAINetworkId - " + returnCode
-                                                       msoLogger.debug("Unexpected Response from QueryAAINetworkId - " + dataErrorMessage)
-                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                                 }
-                               }
-                       }
+                       String netId   = network.getNetworkId()
+                       execution.setVariable(Prefix + "networkId", netId)
+                       String netName   = network.getNetworkName()
+                       execution.setVariable(Prefix + "networkName", netName)
 
-               } catch (BpmnError e) {
-                       throw e;
+               } catch (NotFoundException e) {
+                       String dataErrorMessage = "Response Error from QueryAAINetworkId is 404 (Not Found)."
+                       logger.debug(" AAI Query Failed. " + dataErrorMessage)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
 
                } catch (Exception ex) {
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkId() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -580,71 +518,38 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTReQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTReQueryAAINetworkId() of DoCreateNetworkInstance ***** " )
 
                try {
                        // get variables
                        String networkId   = execution.getVariable(Prefix + "networkId")
                        String netId = networkId
-                       networkId = UriUtils.encode(networkId,"UTF-8")
-
-                       // Prepare AA&I url
-                       AaiUtil aaiUriUtil = new AaiUtil(this)
-                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
-                       uri.depth(Depth.ALL)
-                       String requeryIdAAIRequest = aaiUriUtil.createAaiUri(uri)
-
-                       execution.setVariable(Prefix + "requeryIdAAIRequest", requeryIdAAIRequest)
-                       msoLogger.debug(Prefix + "requeryIdAAIRequest - " + "\n" + requeryIdAAIRequest)
 
-                       APIResponse response = aaiUriUtil.executeAAIGetCall(execution, requeryIdAAIRequest)
-                       String returnCode = response.getStatusCode()
-                       execution.setVariable(Prefix + "aaiRequeryIdReturnCode", returnCode)
-                       msoLogger.debug(" ***** AAI ReQuery Response Code  : " + returnCode)
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId).depth(Depth.ONE)
+                       L3Network network = client.get(uri, NotFoundException.class).asBean(L3Network.class).get()
 
-                       String aaiResponseAsString = response.getResponseBodyAsString()
+                       execution.setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
+                       execution.setVariable(Prefix + "requeryIdAAIResponse", network)
 
-                       if (returnCode=='200') {
-                               execution.setVariable(Prefix + "requeryIdAAIResponse", aaiResponseAsString)
-                               msoLogger.debug(" ReQueryAAINetworkId Success REST Response - " + "\n" + aaiResponseAsString)
-
-                               String netName = utils.getNodeText(aaiResponseAsString, "network-name")
-                               String networkOutputs =
-                                  """<network-outputs>
+                       String netName = network.getNetworkName()
+                       String networkOutputs =
+                                       """<network-outputs>
                    <network-id>${MsoUtils.xmlEscape(netId)}</network-id>
                    <network-name>${MsoUtils.xmlEscape(netName)}</network-name>
                  </network-outputs>"""
-                               execution.setVariable(Prefix + "networkOutputs", networkOutputs)
-                               msoLogger.debug(" networkOutputs - " + '\n' + networkOutputs)
-
-                       } else {
-                               if (returnCode=='404') {
-                                       String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
-                                       msoLogger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                               } 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 ReQueryAAINetworkId - " + returnCode
-                                                       msoLogger.debug(dataErrorMessage)
-                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+                       execution.setVariable(Prefix + "networkOutputs", networkOutputs)
+                       logger.debug(" networkOutputs - " + '\n' + networkOutputs)
 
-                                       }
-                               }
-                       }
 
-               } catch (BpmnError e) {
-                       throw e;
+               } catch (NotFoundException e) {
+                       String dataErrorMessage = "Response Error from ReQueryAAINetworkId is 404 (Not Found)."
+                       logger.debug(" AAI ReQuery Failed. - " + dataErrorMessage)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
 
                } catch (Exception ex) {
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTReQueryAAINetworkId() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -655,84 +560,69 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTQueryAAINetworkVpnBinding() of DoCreateNetworkInstance ***** " )
 
                try {
 
-                       // get variables
-                       String queryIdAAIResponse   = execution.getVariable(Prefix + "queryIdAAIResponse").replace('<?xml version="1.0" encoding="UTF-8"?>', "")
-                       String relationship = networkUtils.getFirstNodeXml(queryIdAAIResponse, "relationship-list").trim().replace("tag0:","").replace(":tag0","")
-                       msoLogger.debug(" relationship - " + relationship)
-
-                       // Check if Vnf Binding is present, then build a List of vnfBinding
-                       List vpnBindingUri = networkUtils.getVnfBindingObject(relationship)
-                       int vpnCount = vpnBindingUri.size()
-                       execution.setVariable(Prefix + "vpnCount", vpnCount)
-                       msoLogger.debug(Prefix + "vpnCount - " + vpnCount)
-
-                       if (vpnCount > 0) {
-                               execution.setVariable(Prefix + "vpnBindings", vpnBindingUri)
-                               msoLogger.debug(" vpnBindingUri List - " + vpnBindingUri)
-
-                               String routeTargets = ""
-                               // AII loop call using list vpnBindings
-                               for(i in 0..vpnBindingUri.size()-1) {
-                                       int counting = i+1
-
-                                       String vpnBindingId = vpnBindingUri[i].substring(vpnBindingUri[i].indexOf("/vpn-binding/")+13, vpnBindingUri[i].length())
-                                       if (vpnBindingId.charAt(vpnBindingId.length()-1) == '/') {
-                                               vpnBindingId = vpnBindingId.substring(0, vpnBindingId.length()-1)
-                                       }
-
-                                       AAIResourcesClient resourceClient = new AAIResourcesClient()
-                                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnBindingId)
-                                       AAIResultWrapper wrapper = resourceClient.get(uri.depth(Depth.TWO), NotFoundException.class)
-
-                                       Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
-
-                                       String routeTarget = ""
-                                       String routeRole = ""
-                                       if(binding.get().getRouteTargets() != null) {
-                                               List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
-                                               for(RouteTarget target : targets) {
-                                                       routeTarget  = target.getGlobalRouteTarget()
-                                                       routeRole  = target.getRouteTargetRole()
-                                                       routeTargets += "<routeTargets>" + '\n' +
-                                                                       " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
-                                                                       " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
-                                                                       "</routeTargets>" + '\n'
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+                       Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+                       if(relationships.isPresent()){
+                               List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.VPN_BINDING)
+
+                               logger.debug(Prefix + "vpnCount - " + uris.size())
+
+                               if (uris.size() > 0) {
+                                       String routeTargets = ""
+                                       for(AAIResourceUri u : uris) {
+
+                                               AAIResultWrapper wrapper = client.get(u.depth(Depth.TWO), NotFoundException.class)
+                                               Optional<VpnBinding> binding = wrapper.asBean(VpnBinding.class)
+
+                                               String routeTarget = ""
+                                               String routeRole = ""
+                                               if(binding.get().getRouteTargets() != null) {
+                                                       List<RouteTarget> targets = binding.get().getRouteTargets().getRouteTarget()
+                                                       for(RouteTarget target : targets) {
+                                                               routeTarget  = target.getGlobalRouteTarget()
+                                                               routeRole  = target.getRouteTargetRole()
+                                                               routeTargets += "<routeTargets>" + '\n' +
+                                                                               " <routeTarget>" + routeTarget + "</routeTarget>" + '\n' +
+                                                                               " <routeTargetRole>" + routeRole + "</routeTargetRole>" + '\n' +
+                                                                               "</routeTargets>" + '\n'
+                                                       }
                                                }
-                                       }
 
-                               } // end loop
+                                       } // end loop
 
-                               execution.setVariable(Prefix + "routeCollection", routeTargets)
-                               msoLogger.debug(Prefix + "routeCollection - " + '\n' + routeTargets)
+                                       execution.setVariable(Prefix + "routeCollection", routeTargets)
+                                       logger.debug(Prefix + "routeCollection - " + '\n' + routeTargets)
 
-                       } else {
-                               // reset return code to success
-                               execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
-                               AaiUtil aaiUriUtil = new AaiUtil(this)
-                               String schemaVersion = aaiUriUtil.getNamespace()
-                           String aaiStubResponse =
-                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+                               } else {
+                                       // reset return code to success
+                                       execution.setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
+                                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                                       String schemaVersion = aaiUriUtil.getNamespace()
+                                       String aaiStubResponse =
+                                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
                                                        <vpn-binding xmlns="${schemaVersion}">
                                                      <global-route-target/>
                                                        </vpn-binding>
                                                </rest:payload>"""
-                               String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
-                               execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
-                               execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
-                               msoLogger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+                                       String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+                                       execution.setVariable(Prefix + "queryVpnBindingAAIResponse", aaiStubResponseAsXml)
+                                       execution.setVariable(Prefix + "routeCollection", "<routeTargets/>")
+                                       logger.debug(" No vpnBinding, using this stub as response - " + '\n' + aaiStubResponseAsXml)
 
+                               }
                        }
 
                } catch (NotFoundException e) {
-                       msoLogger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
+                       logger.debug("Response Error from AAINetworkVpnBinding is 404 (Not Found).")
                        exceptionUtil.buildAndThrowWorkflowException(execution, 2500, "Response Error from AAINetworkVpnBinding is 404 (Not Found).")
                } catch (Exception ex) {
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkVpnBinding() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -743,114 +633,65 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAINetworkPolicy() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTQueryAAINetworkPolicy() of DoCreateNetworkInstance ***** " )
 
                try {
-                       // get variables
-                       String queryIdAAIResponse   = execution.getVariable(Prefix + "queryIdAAIResponse").replace('<?xml version="1.0" encoding="UTF-8"?>', "")
-                       String relationship = networkUtils.getFirstNodeXml(queryIdAAIResponse, "relationship-list").trim().replace("tag0:","").replace(":tag0","")
-                       msoLogger.debug(" relationship - " + relationship)
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+                       Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+                       if(relationships.isPresent()){
+                               List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.NETWORK_POLICY)
 
-                       // Check if Network Policy is present, then build a List of network policy
-                       List networkPolicyUriList = networkUtils.getNetworkPolicyObject(relationship)
-                       int networkPolicyCount = networkPolicyUriList.size()
-                       execution.setVariable(Prefix + "networkPolicyCount", networkPolicyCount)
-                       msoLogger.debug(Prefix + "networkPolicyCount - " + networkPolicyCount)
+                               execution.setVariable(Prefix + "networkPolicyCount", uris.size())
+                               logger.debug(Prefix + "networkPolicyCount - " + uris.size())
 
-                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                               if (uris.size() > 0) {
 
-                       if (networkPolicyCount > 0) {
-                               execution.setVariable(Prefix + "networkPolicyUriList", networkPolicyUriList)
-                               msoLogger.debug(" networkPolicyUri List - " + networkPolicyUriList)
+                                       String networkPolicies = ""
+                                       // AII loop call using list vpnBindings
+                                       for(AAIResourceUri u : uris) {
 
-                               String networkPolicies = ""
-                               // AII loop call using list vpnBindings
-                               for (i in 0..networkPolicyUriList.size()-1) {
+                                               NetworkPolicy p = client.get(u, NotFoundException.class).asBean(NetworkPolicy.class).get()
 
-                                       int counting = i+1
+                                               execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
 
-                                       // Note: By default, the network policy url is found in 'related-link' of the response,
-                                       //       so, the default in URN mappings for this is set to "" (ie, space), unless forced to use the URN mapping.
+                                               String networkPolicy  = p.getNetworkPolicyFqdn()
+                                               networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
 
-                                       URI uri = UriBuilder.fromUri(networkPolicyUriList[i]).build()
+                                       } // end loop
 
-                                       AAIResourceUri aaiUri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.NETWORK_POLICY, uri)
-                                       aaiUri.depth(Depth.ALL)
-                                       String queryNetworkPolicyAAIRequest = aaiUriUtil.createAaiUri(aaiUri)
+                                       execution.setVariable(Prefix + "networkCollection", networkPolicies)
+                                       logger.debug(Prefix + "networkCollection - " + '\n' + networkPolicies)
 
-                                       execution.setVariable(Prefix + "queryNetworkPolicyAAIRequest", queryNetworkPolicyAAIRequest)
-                                       msoLogger.debug(Prefix + "queryNetworkPolicyAAIRequest, , NetworkPolicy #" + counting + " : " + "\n" + queryNetworkPolicyAAIRequest)
-
-                                       APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryNetworkPolicyAAIRequest)
-                                       String returnCode = response.getStatusCode()
-                                       execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", returnCode)
-                                       msoLogger.debug(" ***** AAI query network policy Response Code, NetworkPolicy #" + counting + " : " + returnCode)
-
-                                       String aaiResponseAsString = response.getResponseBodyAsString()
-
-                                       if (returnCode=='200') {
-                                               execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiResponseAsString)
-                                               msoLogger.debug(" QueryAAINetworkPolicy Success REST Response, , NetworkPolicy #" + counting + " : " + "\n" + aaiResponseAsString)
-
-                                               String networkPolicy = ""
-                                               if (utils.nodeExists(aaiResponseAsString, "network-policy-fqdn")) {
-                                                       networkPolicy  = utils.getNodeText(aaiResponseAsString, "network-policy-fqdn")
-                                                       networkPolicies += "<policyFqdns>" + networkPolicy + "</policyFqdns>" + '\n'
-                                               }
-
-                                       } else {
-                                               if (returnCode=='404') {
-                                                       String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
-                                                       msoLogger.debug(dataErrorMessage)
-                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                                               } 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 QueryAAINetworkPolicy - " + returnCode
-                                                                       msoLogger.debug(dataErrorMessage)
-                                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                                                         }
-                                               }
-                                       }
-
-                               } // end loop
-
-                               execution.setVariable(Prefix + "networkCollection", networkPolicies)
-                               msoLogger.debug(Prefix + "networkCollection - " + '\n' + networkPolicies)
-
-                       } else {
-                               // reset return code to success
-                               execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
-                               String schemaVersion = aaiUriUtil.getNamespace()
-                               String aaiStubResponse =
-                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+                               } else {
+                                       // reset return code to success
+                                       execution.setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
+                                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                                       String schemaVersion = aaiUriUtil.getNamespace()
+                                       String aaiStubResponse =
+                                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
                                                        <network-policy xmlns="${schemaVersion}">
                                                          <network-policy-fqdn/>
                             </network-policy>
                                                </rest:payload>"""
-                               String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
-                               execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
-                               execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
-                               msoLogger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+                                       String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+                                       execution.setVariable(Prefix + "queryNetworkPolicyAAIResponse", aaiStubResponseAsXml)
+                                       execution.setVariable(Prefix + "networkCollection", "<policyFqdns/>")
+                                       logger.debug(" No net policies, using this stub as response - " + '\n' + aaiStubResponseAsXml)
 
+                               }
                        }
+       } catch (NotFoundException e) {
+               String dataErrorMessage = "Response Error from QueryAAINetworkPolicy is 404 (Not Found)."
+               logger.debug(dataErrorMessage)
+               exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
 
-               } catch (BpmnError e) {
-                       throw e;
-
-               } catch (Exception ex) {
-                       String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
-                       exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
+       } catch (Exception ex) {
+               String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkPolicy() - " + ex.getMessage()
+               logger.debug(exceptionMessage)
+               exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
-               }
+       }
 
        }
 
@@ -858,110 +699,64 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTQueryAAINetworkTableRef() of DoCreateNetworkInstance ***** " )
+               logger.debug(" ***** Inside callRESTQueryAAINetworkTableRef() of DoCreateNetworkInstance ***** " )
 
                try {
-                       // get variables
-                       String queryIdAAIResponse   = execution.getVariable(Prefix + "queryIdAAIResponse").replace('<?xml version="1.0" encoding="UTF-8"?>', "")
-                       String relationship = networkUtils.getFirstNodeXml(queryIdAAIResponse, "relationship-list").trim().replace("tag0:","").replace(":tag0","")
-                       msoLogger.debug(" relationship - " + relationship)
-
-                       // Check if Network TableREf is present, then build a List of network policy
-                       List networkTableRefUriList = networkUtils.getNetworkTableRefObject(relationship)
-                       int networkTableRefCount = networkTableRefUriList.size()
-                       execution.setVariable(Prefix + "networkTableRefCount", networkTableRefCount)
-                       msoLogger.debug(Prefix + "networkTableRefCount - " + networkTableRefCount)
 
-                       String aai_endpoint = UrnPropertiesReader.getVariable("aai.endpoint", execution)
-                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                       AAIResourcesClient client = new AAIResourcesClient()
+                       AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, execution.getVariable(Prefix + "networkId"))
+                       Optional<Relationships> relationships = client.get(uri, NotFoundException.class).getRelationships()
+                       if(relationships.isPresent()){
+                               List<AAIResourceUri> uris = relationships.get().getRelatedAAIUris(AAIObjectType.ROUTE_TABLE_REFERENCE)
 
-                       if (networkTableRefCount > 0) {
-                               execution.setVariable(Prefix + "networkTableRefUriList", networkTableRefUriList)
-                               msoLogger.debug(" networkTableRefUri List - " + networkTableRefUriList)
+                               execution.setVariable(Prefix + "networkTableRefCount", uris.size())
+                               logger.debug(Prefix + "networkTableRefCount - " + uris.size())
 
-                               // AII loop call using list vpnBindings
-                               String networkTableRefs = ""
-                               for (i in 0..networkTableRefUriList.size()-1) {
 
-                                       int counting = i+1
+                               if (uris.size() > 0) {
 
-                                       // prepare url using tableRef
-                                       URI uri = UriBuilder.fromUri(networkTableRefUriList[i]).build()
+                                       // AII loop call using list vpnBindings
+                                       String networkTableRefs = ""
+                                       for(AAIResourceUri u : uris) {
 
-                                       AAIResourceUri aaiUri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.ROUTE_TABLE_REFERENCE, uri)
-                                       aaiUri.depth(Depth.ALL)
-                                       String queryNetworkTableRefAAIRequest = aaiUriUtil.createAaiUri(aaiUri)
+                                               RouteTableReference rt = client.get(u, NotFoundException.class).asBean(RouteTableReference.class).get()
 
-                                       execution.setVariable(Prefix + "queryNetworkTableRefAAIRequest", queryNetworkTableRefAAIRequest)
-                                       msoLogger.debug(Prefix + "queryNetworkTableRefAAIRequest, , NetworkTableRef #" + counting + " : " + "\n" + queryNetworkTableRefAAIRequest)
+                                               String networkTableRef  = rt.getRouteTableReferenceFqdn()
+                                               networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
 
-                                       APIResponse response = aaiUriUtil.executeAAIGetCall(execution, queryNetworkTableRefAAIRequest)
-                                       String returnCode = response.getStatusCode()
-                                       execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", returnCode)
-                                       msoLogger.debug(" ***** AAI query network Table Reference Response Code, NetworkTableRef #" + counting + " : " + returnCode)
-
-                                       String aaiResponseAsString = response.getResponseBodyAsString()
-
-                                       if (returnCode=='200') {
-                                               execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiResponseAsString)
-                                               msoLogger.debug(" QueryAAINetworkTableRef Success REST Response, , NetworkTableRef #" + counting + " : " + "\n" + aaiResponseAsString)
-
-                                               String networkTableRef = ""
-                                               if (utils.nodeExists(aaiResponseAsString, "route-table-reference-fqdn")) {
-                                                       networkTableRef  = utils.getNodeText(aaiResponseAsString, "route-table-reference-fqdn")
-                                                       networkTableRefs += "<routeTableFqdns>" + networkTableRef + "</routeTableFqdns>" + '\n'
-                                               }
-
-                                       } else {
-                                               if (returnCode=='404') {
-                                                       String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
-                                                       msoLogger.debug(dataErrorMessage)
-                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                                               } 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 QueryAAINetworkTableRef - " + returnCode
-                                                                       msoLogger.debug(dataErrorMessage)
-                                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
-
-                                                         }
-                                               }
-                                       }
 
-                               } // end loop
+                                       } // end loop
 
-                               execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
-                               msoLogger.debug(Prefix + "tableRefCollection - " + '\n' + networkTableRefs)
+                                       execution.setVariable(Prefix + "tableRefCollection", networkTableRefs)
+                                       logger.debug(Prefix + "tableRefCollection - " + '\n' + networkTableRefs)
 
-                       } else {
-                               // reset return code to success
-                               execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
-                               String schemaVersion = aaiUriUtil.getNamespace()
-                               String aaiStubResponse =
-                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
+                               } else {
+                                       // reset return code to success
+                                       execution.setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
+                                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                                       String schemaVersion = aaiUriUtil.getNamespace()
+                                       String aaiStubResponse =
+                                                       """     <rest:payload contentType="text/xml" xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd">
                                                        <route-table-references xmlns="${schemaVersion}">
                                                          <route-table-reference-fqdn/>
                             </route-table-references>
                                                </rest:payload>"""
-                               String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
-                               execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
-                               execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
-                               msoLogger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
+                                       String aaiStubResponseAsXml = utils.formatXml(aaiStubResponse)
+                                       execution.setVariable(Prefix + "queryNetworkTableRefAAIResponse", aaiStubResponseAsXml)
+                                       execution.setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
+                                       logger.debug(" No net table references, using this stub as response - " + '\n' + aaiStubResponseAsXml)
 
+                               }
                        }
 
-               } catch (BpmnError e) {
-                       throw e;
+               } catch (NotFoundException e) {
+                       String dataErrorMessage = "Response Error from QueryAAINetworkTableRef is 404 (Not Found)."
+                       logger.debug(dataErrorMessage)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
 
                } catch (Exception ex) {
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTQueryAAINetworkTableRef() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -973,87 +768,89 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.debug(" ***** Inside callRESTUpdateContrailAAINetwork() of DoCreateNetworkInstance ***** " )
+               logger.trace(" ***** Inside callRESTUpdateContrailAAINetwork() of DoCreateNetworkInstance ***** " )
 
                try {
                        // get variables
                        String networkId   = execution.getVariable(Prefix + "networkId")
-                       networkId = UriUtils.encode(networkId,"UTF-8")
-                       String requeryIdAAIResponse   = execution.getVariable(Prefix + "requeryIdAAIResponse")
+                       L3Network requeryIdAAIResponse   = execution.getVariable(Prefix + "requeryIdAAIResponse")
                        String createNetworkResponse   = execution.getVariable(Prefix + "createNetworkResponse")
 
-                       // Prepare url
-                       AaiUtil aaiUriUtil = new AaiUtil(this)
+                       L3Network l3Network = new L3Network()
+                       if (StringUtils.isBlank(requeryIdAAIResponse.getHeatStackId())) {
+                               if (utils.nodeExists(createNetworkResponse, 'networkStackId')) {
+                                       l3Network.setHeatStackId(utils.getNodeText(createNetworkResponse, 'networkStackId'))
+                               }
+                       }
+                       if (StringUtils.isBlank(requeryIdAAIResponse.getNeutronNetworkId())) {
+                               if (utils.nodeExists(createNetworkResponse, 'neutronNetworkId')) {
+                                       l3Network.setNeutronNetworkId(utils.getNodeText(createNetworkResponse, 'neutronNetworkId'))
+                               }
+                       }
+                       if (StringUtils.isBlank(requeryIdAAIResponse.getContrailNetworkFqdn())) {
+                               if (utils.nodeExists(createNetworkResponse, 'networkFqdn')) {
+                                       l3Network.setContrailNetworkFqdn(utils.getNodeText(createNetworkResponse, 'networkFqdn'))
+                               }
+                       }
+
+                       String status = utils.getNodeText(createNetworkResponse, 'orchestration-status')
+                       if(status.equals("pending-create") || status.equals("PendingCreate")){
+                               l3Network.setOrchestrationStatus("Created")
+                       }else{
+                               l3Network.setOrchestrationStatus("Active")
+                       }
 
+                       logger.debug("Updating l3-network in AAI" )
+
+                       AAIResourcesClient client = new AAIResourcesClient()
                        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
-                       uri.depth(Depth.ALL)
-                       String updateContrailAAIUrlRequest = aaiUriUtil.createAaiUri(uri)
-
-                       execution.setVariable(Prefix + "updateContrailAAIUrlRequest", updateContrailAAIUrlRequest)
-                       msoLogger.debug(Prefix + "updateContrailAAIUrlRequest - " + "\n" + updateContrailAAIUrlRequest)
-
-                       //Prepare payload (PUT)
-                       String schemaVersion = aaiUriUtil.getNamespaceFromUri(updateContrailAAIUrlRequest)
-                       String payload = networkUtils.ContrailNetworkCreatedUpdate(requeryIdAAIResponse, createNetworkResponse, schemaVersion)
-                       String payloadXml = utils.formatXml(payload)
-                       execution.setVariable(Prefix + "updateContrailAAIPayloadRequest", payloadXml)
-                       msoLogger.debug(" 'payload' to Update Contrail - " + "\n" + payloadXml)
-
-                       APIResponse response = aaiUriUtil.executeAAIPutCall(execution, updateContrailAAIUrlRequest, payloadXml)
-
-                       String returnCode = response.getStatusCode()
-                       execution.setVariable(Prefix + "aaiUpdateContrailReturnCode", returnCode)
-                       msoLogger.debug(" ***** AAI Update Contrail Response Code  : " + returnCode)
-                       String aaiUpdateContrailResponseAsString = response.getResponseBodyAsString()
-                       if (returnCode=='200') {
-                               execution.setVariable(Prefix + "updateContrailAAIResponse", aaiUpdateContrailResponseAsString)
-                               msoLogger.debug(" AAI Update Contrail Success REST Response - " + "\n" + aaiUpdateContrailResponseAsString)
-                               // Point-of-no-return is set to false, rollback not needed.
-                               String rollbackEnabled = execution.getVariable(Prefix + "rollbackEnabled")
-                               if (rollbackEnabled == "true") {
-                                  execution.setVariable(Prefix + "isPONR", false)
-                               } else {
-                                  execution.setVariable(Prefix + "isPONR", true)
-                               }
-                               msoLogger.debug(Prefix + "isPONR" + ": " + execution.getVariable(Prefix + "isPONR"))
-                       } else {
-                               if (returnCode=='404') {
-                                       String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
-                                       msoLogger.debug(dataErrorMessage)
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
+                       client.update(uri, l3Network)
+
+                       if(requeryIdAAIResponse.getSubnets() != null){
+                               for(Subnet s:requeryIdAAIResponse.getSubnets().getSubnet()){
+                                       String subnetOrchStatus = s.getOrchestrationStatus()
+                                       String subnetId = s.getSubnetId()
+                                       Subnet subnet = new Subnet()
+                                       subnet.setNeutronSubnetId(networkUtils.extractNeutSubId(createNetworkResponse, subnetId))
+                                       if(subnetOrchStatus.equals("pending-create") || subnetOrchStatus.equals("PendingCreate") ){
+                                               subnet.setOrchestrationStatus("Created")
+                                       }else{
+                                               subnet.setOrchestrationStatus("Active")
+                                       }
+
+                                       logger.debug("Updating subnet in AAI" )
+                                       AAIResourceUri subUri = AAIUriFactory.createResourceUri(AAIObjectType.SUBNET, networkId, subnetId)
+                                       client.update(subUri, subnet)
 
-                               } else {
-                                  if (aaiUpdateContrailResponseAsString.contains("RESTFault")) {
-                                          WorkflowException exceptionObject = exceptionUtil.MapAAIExceptionToWorkflowException(aaiUpdateContrailResponseAsString, execution)
-                                          execution.setVariable("WorkflowException", exceptionObject)
-                                          throw new BpmnError("MSOWorkflowException")
-
-                                          } else {
-                                                       // aai all errors
-                                                       String errorMessage = "Unexpected Response from UpdateContrailAAINetwork - " + returnCode
-                                                       msoLogger.debug(errorMessage)
-                                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, errorMessage)
-                                         }
                                }
                        }
 
+                       String rollbackEnabled = execution.getVariable(Prefix + "rollbackEnabled")
+                       if (rollbackEnabled == "true") {
+                               execution.setVariable(Prefix + "isPONR", false)
+                       } else {
+                               execution.setVariable(Prefix + "isPONR", true)
+                       }
+                       logger.debug(Prefix + "isPONR" + ": " + execution.getVariable(Prefix + "isPONR"))
+
                } catch (BpmnError e) {
                        throw e;
-
+               } catch (NotFoundException e) {
+                       String dataErrorMessage = " Response Error from UpdateContrailAAINetwork is 404 (Not Found)."
+                       logger.debug(dataErrorMessage)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2500, dataErrorMessage)
                } catch (Exception ex) {
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. callRESTUpdateContrailAAINetwork() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
-
                }
-
        }
 
        public void prepareCreateNetworkRequest (DelegateExecution execution) {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareCreateNetworkRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareCreateNetworkRequest() of DoCreateNetworkInstance")
 
                try {
 
@@ -1066,7 +863,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String source    = execution.getVariable(Prefix + "source")
 
                        String requestInput = execution.getVariable(Prefix + "networkRequest")
-                       String queryIdResponse = execution.getVariable(Prefix + "queryIdAAIResponse")
+                       L3Network queryIdResponse = execution.getVariable(Prefix + "queryIdAAIResponse")
                        String cloudRegionId = execution.getVariable(Prefix + "cloudRegionPo")
                        String backoutOnFailure = execution.getVariable(Prefix + "rollbackEnabled")
 
@@ -1080,11 +877,11 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        buildDeleteNetworkRequestAsString = buildDeleteNetworkRequestAsString.replace(":w1aac13n0", "").replace("w1aac13n0:", "")
 
                        execution.setVariable(Prefix + "createNetworkRequest", buildDeleteNetworkRequestAsString)
-                       msoLogger.debug(Prefix + "createNetworkRequest - " + "\n" +  buildDeleteNetworkRequestAsString)
+                       logger.debug(Prefix + "createNetworkRequest - " + "\n" +  buildDeleteNetworkRequestAsString)
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareCreateNetworkRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1095,7 +892,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareSDNCRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareSDNCRequest() of DoCreateNetworkInstance")
 
                try {
                        // get variables
@@ -1120,12 +917,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                        String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
                        execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
-                       msoLogger.debug(Prefix + "assignSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
+                       logger.debug(Prefix + "assignSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1136,7 +933,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareRpcSDNCRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareRpcSDNCRequest() of DoCreateNetworkInstance")
 
                try {
                        // get variables
@@ -1153,11 +950,11 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                        String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
                        execution.setVariable(Prefix + "assignSDNCRequest", sndcTopologyCreateRequesAsString)
-                       msoLogger.debug(Prefix + "assignSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
+                       logger.debug(Prefix + "assignSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1168,7 +965,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareRpcSDNCActivateRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareRpcSDNCActivateRequest() of DoCreateNetworkInstance")
 
                try {
                        // get variables
@@ -1183,12 +980,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                        String sndcTopologyCreateRequesAsString = utils.formatXml(sndcTopologyCreateRequest)
                        execution.setVariable(Prefix + "activateSDNCRequest", sndcTopologyCreateRequesAsString)
-                       msoLogger.debug(Prefix + "activateSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
+                       logger.debug(Prefix + "activateSDNCRequest - " + "\n" +  sndcTopologyCreateRequesAsString)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1206,7 +1003,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside validateNetworkResponse() of DoCreateNetworkInstance")
+               logger.trace("Inside validateNetworkResponse() of DoCreateNetworkInstance")
 
                try {
                        String returnCode = execution.getVariable(Prefix + "networkReturnCode")
@@ -1215,13 +1012,13 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                networkResponse="" // reset
                        }
 
-                       msoLogger.debug(" Network Adapter create responseCode: " + returnCode)
+                       logger.debug(" Network Adapter create responseCode: " + returnCode)
 
                        String errorMessage = ""
                        if (returnCode == "200") {
                                execution.setVariable(Prefix + "isNetworkRollbackNeeded", true)
                                execution.setVariable(Prefix + "createNetworkResponse", networkResponse)
-                               msoLogger.debug(" Network Adapter create Success Response - " + "\n" + networkResponse)
+                               logger.debug(" Network Adapter create Success Response - " + "\n" + networkResponse)
 
                                // prepare rollback data
                                String rollbackData = utils.getNodeXml(networkResponse, "rollback", false).replace("tag0:","").replace(":tag0","")
@@ -1232,7 +1029,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                                </rollbackNetworkRequest>"""
                                String rollbackNetworkXml = utils.formatXml(rollbackNetwork)
                                execution.setVariable(Prefix + "rollbackNetworkRequest", rollbackNetworkXml)
-                               msoLogger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
+                               logger.debug(" Network Adapter rollback data - " + "\n" + rollbackNetworkXml)
 
                        } else { // network error
                           if (returnCode.toInteger() > 399 && returnCode.toInteger() < 600) {   //4xx, 5xx
@@ -1266,7 +1063,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. validateCreateNetworkResponse() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildAndThrowWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1278,7 +1075,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside validateSDNCResponse() of DoCreateNetworkInstance")
+               logger.trace("Inside validateSDNCResponse() of DoCreateNetworkInstance")
 
                String response = execution.getVariable(Prefix + "assignSDNCResponse")
                boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
@@ -1293,10 +1090,10 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) {  // from sdnc util, Prefix+'sdncResponseSuccess'
                        execution.setVariable(Prefix + "isSdncRollbackNeeded", true)
-                       msoLogger.debug("Successfully Validated SDNC Response")
+                       logger.debug("Successfully Validated SDNC Response")
 
                } else {
-                       msoLogger.debug("Did NOT Successfully Validated SDNC Response")
+                       logger.debug("Did NOT Successfully Validated SDNC Response")
                        throw new BpmnError("MSOWorkflowException")
                }
 
@@ -1306,7 +1103,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside validateRpcSDNCActivateResponse() of DoCreateNetworkInstance")
+               logger.trace("Inside validateRpcSDNCActivateResponse() of DoCreateNetworkInstance")
 
                String response = execution.getVariable(Prefix + "activateSDNCResponse")
                boolean successIndicator = execution.getVariable("SDNCA_SuccessIndicator")
@@ -1321,10 +1118,10 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                if (execution.getVariable(Prefix + "sdncResponseSuccess") == true) {  // from sdnc util, Prefix+'sdncResponseSuccess'
                        execution.setVariable(Prefix + "isSdncActivateRollbackNeeded", true)
-                       msoLogger.debug("Successfully Validated Rpc SDNC Activate Response")
+                       logger.debug("Successfully Validated Rpc SDNC Activate Response")
 
                } else {
-                       msoLogger.debug("Did NOT Successfully Validated Rpc SDNC Activate Response")
+                       logger.debug("Did NOT Successfully Validated Rpc SDNC Activate Response")
                        throw new BpmnError("MSOWorkflowException")
                }
 
@@ -1335,7 +1132,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareSDNCRollbackRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareSDNCRollbackRequest() of DoCreateNetworkInstance")
 
                try {
                        // get variables
@@ -1351,12 +1148,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String sndcTopologyRollbackRequest = sdncAdapterUtils.sdncTopologyRequestV2(execution, createNetworkInput, serviceInstanceId, sdncCallback, "rollback", "NetworkActivateRequest", cloudRegionId, networkId, null, null)
                        String sndcTopologyRollbackRequestAsString = utils.formatXml(sndcTopologyRollbackRequest)
                        execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRequestAsString)
-                       msoLogger.debug(" Preparing request for SDNC Topology 'rollback-NetworkActivateRequest' rollback . . . - " + "\n" +  sndcTopologyRollbackRequestAsString)
+                       logger.debug(" Preparing request for SDNC Topology 'rollback-NetworkActivateRequest' rollback . . . - " + "\n" +  sndcTopologyRollbackRequestAsString)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSDNCRollbackRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1367,7 +1164,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareRpcSDNCRollbackRequest() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareRpcSDNCRollbackRequest() of DoCreateNetworkInstance")
 
                try {
                        // get variables
@@ -1383,12 +1180,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "unassign", "DeleteNetworkInstance", cloudRegionId, networkId, null)
                        String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
                        execution.setVariable(Prefix + "rollbackSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
-                       msoLogger.debug(" Preparing request for SDNC Topology 'unassign-DeleteNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString)
+                       logger.debug(" Preparing request for SDNC Topology 'unassign-DeleteNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCRollbackRequest() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1399,7 +1196,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareRpcSDNCActivateRollback() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareRpcSDNCActivateRollback() of DoCreateNetworkInstance")
 
                try {
 
@@ -1416,12 +1213,12 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        String sndcTopologyRollbackRpcRequest = sdncAdapterUtils.sdncTopologyRequestRsrc(execution, createNetworkInput, serviceInstanceId, sdncCallback, "deactivate", "DeleteNetworkInstance", cloudRegionId, networkId, null)
                        String sndcTopologyRollbackRpcRequestAsString = utils.formatXml(sndcTopologyRollbackRpcRequest)
                        execution.setVariable(Prefix + "rollbackActivateSDNCRequest", sndcTopologyRollbackRpcRequestAsString)
-                       msoLogger.debug(" Preparing request for RPC SDNC Topology 'deactivate-DeleteNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString)
+                       logger.debug(" Preparing request for RPC SDNC Topology 'deactivate-DeleteNetworkInstance' rollback . . . - " + "\n" +  sndcTopologyRollbackRpcRequestAsString)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRpcSDNCActivateRollback() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1432,7 +1229,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareRollbackData() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareRollbackData() of DoCreateNetworkInstance")
 
                try {
 
@@ -1456,14 +1253,14 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                }
                        }
                        execution.setVariable("rollbackData", rollbackData)
-                       msoLogger.debug("** rollbackData : " + rollbackData)
+                       logger.debug("** rollbackData : " + rollbackData)
 
                        execution.setVariable("WorkflowException", execution.getVariable(Prefix + "WorkflowException"))
-                       msoLogger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
+                       logger.debug("** WorkflowException : " + execution.getVariable("WorkflowException"))
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareRollbackData() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1474,7 +1271,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside postProcessResponse() of DoCreateNetworkInstance")
+               logger.trace("Inside postProcessResponse() of DoCreateNetworkInstance")
 
                try {
 
@@ -1483,7 +1280,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        // 2. Success: execution.getVariable("WorkflowException") == null (NULL)
                        // 3. WorkflowException: execution.getVariable("WorkflowException") != null (NOT NULL)
 
-                       msoLogger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
+                       logger.debug(" ***** Is Exception Encountered (isException)? : " + execution.getVariable(Prefix + "isException"))
                        // successful flow
                        if (execution.getVariable(Prefix + "isException") == false) {
                                // set rollback data
@@ -1493,14 +1290,14 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                                prepareSuccessRollbackData(execution) // populate rollbackData
                                execution.setVariable("WorkflowException", null)
                                execution.setVariable(Prefix + "Success", true)
-                               msoLogger.debug(" ***** postProcessResponse(), GOOD !!!")
+                               logger.debug(" ***** postProcessResponse(), GOOD !!!")
                        } else {
                           // inside sub-flow logic
                                execution.setVariable(Prefix + "Success", false)
                                execution.setVariable("rollbackData", null)
                                String exceptionMessage = " Exception encountered in MSO Bpmn. "
                                if (execution.getVariable("workflowException") != null) {  // Output of Rollback flow.
-                                  msoLogger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
+                                  logger.debug(" ***** workflowException: " + execution.getVariable("workflowException"))
                                   WorkflowException wfex = execution.getVariable("workflowException")
                                   exceptionMessage = wfex.getErrorMessage()
                                } else {
@@ -1510,18 +1307,18 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                               }
                                }
                            // going to the Main flow: a-la-carte or macro
-                           msoLogger.debug(" ***** postProcessResponse(), BAD !!!")
+                           logger.debug(" ***** postProcessResponse(), BAD !!!")
                            exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
                                throw new BpmnError("MSOWorkflowException")
                        }
 
                } catch(BpmnError b){
-                    msoLogger.debug("Rethrowing MSOWorkflowException")
+                    logger.debug("Rethrowing MSOWorkflowException")
                     throw b
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. postProcessResponse() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
                        throw new BpmnError("MSOWorkflowException")
 
@@ -1535,7 +1332,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside prepareSuccessRollbackData() of DoCreateNetworkInstance")
+               logger.trace("Inside prepareSuccessRollbackData() of DoCreateNetworkInstance")
 
                try {
 
@@ -1567,13 +1364,13 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        }
                        execution.setVariable("rollbackData", rollbackData)
 
-                       msoLogger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
+                       logger.debug("** 'rollbackData' for Full Rollback : " + rollbackData)
                        execution.setVariable("WorkflowException", null)
 
 
                } catch (Exception ex) {
                        String exceptionMessage = " Bpmn error encountered in DoCreateNetworkInstance flow. prepareSuccessRollbackData() - " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
 
                }
@@ -1584,7 +1381,7 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
 
                execution.setVariable("prefix",Prefix)
 
-               msoLogger.trace("Inside setExceptionFlag() of DoCreateNetworkInstance")
+               logger.trace("Inside setExceptionFlag() of DoCreateNetworkInstance")
 
                try {
 
@@ -1595,11 +1392,11 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                        } else {
                                execution.setVariable(Prefix + "WorkflowException", execution.getVariable("WorkflowException"))
                        }
-                       msoLogger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
+                       logger.debug(Prefix + "WorkflowException - " +execution.getVariable(Prefix + "WorkflowException"))
 
                } catch(Exception ex){
                        String exceptionMessage = "Bpmn error encountered in DoCreateNetworkInstance flow. setExceptionFlag(): " + ex.getMessage()
-                       msoLogger.debug(exceptionMessage)
+                       logger.debug(exceptionMessage)
                        exceptionUtil.buildWorkflowException(execution, 7000, exceptionMessage)
                }
 
@@ -1617,18 +1414,18 @@ public class DoCreateNetworkInstance extends AbstractServiceTaskProcessor {
                execution.setVariable("prefix",Prefix)
 
                try{
-                       msoLogger.debug( "Caught a Java Exception in " + Prefix)
-                       msoLogger.debug("Started processJavaException Method")
-                       msoLogger.debug("Variables List: " + execution.getVariables())
+                       logger.debug( "Caught a Java Exception in " + Prefix)
+                       logger.debug("Started processJavaException Method")
+                       logger.debug("Variables List: " + execution.getVariables())
                        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){
-                       msoLogger.debug("Caught Exception during processJavaException Method: " + e)
+                       logger.debug("Caught Exception during processJavaException Method: " + e)
                        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)
                }
-               msoLogger.debug( "Completed processJavaException Method in " + Prefix)
+               logger.debug( "Completed processJavaException Method in " + Prefix)
        }
 
 }