Merge "ETSI Package Management - Subscribe"
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Constants.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Constants.java
index 91c7c7c..294dccd 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Constants.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Constants.java
@@ -40,4 +40,9 @@
     public static final String ENCRYPTION_KEY_PROP = "org.onap.so.adapters.network.encryptionKey";
 
     public static final String REQUEST_TUNABLES = "org.onap.so.adapters.sdnc";
+
+    public static final String MSO_ACTION_LCM = "lcm";
+    public static final String LCM_API_VER = "2.00";
+    public static final int LCM_FLAGS_TTL = 65000;
+    public static final String LCM_ORIGINATOR_ID = "MSO";
 }
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/MapRequestTunables.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/MapRequestTunables.java
index 880ef0a..b15831f 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/MapRequestTunables.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/MapRequestTunables.java
@@ -45,27 +45,35 @@
         RequestTunables reqTunable = new RequestTunables(reqTunableOriginal);
         String error = null;
         String key;
-        if ("query".equals(reqTunable.getAction())) { // due to variable format for reqTunable.getOperation() eg
-                                                      // services/layer3-service-list/8fe4ba4f-35cf-4d9b-a04a-fd3f5d4c5cc9
-            key = Constants.REQUEST_TUNABLES + "." + reqTunable.getMsoAction() + ".." + reqTunable.getAction();
-            logger.debug(GENERATED_KEY + key);
-        } else if ("put".equals(reqTunable.getAction()) || "restdelete".equals(reqTunable.getAction())) { // due to
-                                                                                                          // variable
-                                                                                                          // format for
-                                                                                                          // reqTunable.getOperation()
-                                                                                                          // eg
-                                                                                                          // services/layer3-service-list/8fe4ba4f-35cf-4d9b-a04a-fd3f5d4c5cc9
-            key = Constants.REQUEST_TUNABLES + "..." + reqTunable.getAction();
-            logger.debug(GENERATED_KEY + key);
+        String msoAction = reqTunable.getMsoAction();
+
+        if (Constants.MSO_ACTION_LCM.equals(msoAction)) {
+            key = Constants.REQUEST_TUNABLES + "." + msoAction + "." + reqTunable.getOperation();
         } else {
-            key = Constants.REQUEST_TUNABLES + "." + reqTunable.getMsoAction() + "." + reqTunable.getOperation() + "."
-                    + reqTunable.getAction();
-            logger.debug(GENERATED_KEY + key);
+            if ("query".equals(reqTunable.getAction())) {
+                // due to variable format for reqTunable.getOperation(), eg
+                // services/layer3-service-list/8fe4ba4f-35cf-4d9b-a04a-fd3f5d4c5cc9
+                key = Constants.REQUEST_TUNABLES + "." + msoAction + ".." + reqTunable.getAction();
+            } else if ("put".equals(reqTunable.getAction()) || "restdelete".equals(reqTunable.getAction())) {
+                // due to variable format for reqTunable.getOperation(), eg
+                // services/layer3-service-list/8fe4ba4f-35cf-4d9b-a04a-fd3f5d4c5cc9
+                key = Constants.REQUEST_TUNABLES + "..." + reqTunable.getAction();
+            } else {
+                key = Constants.REQUEST_TUNABLES + "." + msoAction + "." + reqTunable.getOperation() + "."
+                        + reqTunable.getAction();
+            }
         }
+        logger.debug(GENERATED_KEY + key);
 
         String value;
         value = env.getProperty(key, "");
 
+        if (Constants.MSO_ACTION_LCM.equals(msoAction) && (value == null || value.length() == 0)) {
+            key = Constants.REQUEST_TUNABLES + "." + msoAction + ".default";
+            logger.debug("Can not find key of " + reqTunable.getOperation() + ", use default: " + key);
+            value = env.getProperty(key, "");
+        }
+
         if (value != null && value.length() > 0) {
 
             String[] parts = value.split("\\|"); // escape pipe
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/SDNCRestClient.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/SDNCRestClient.java
index a8418ea..bcd1db7 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/SDNCRestClient.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/SDNCRestClient.java
@@ -98,19 +98,23 @@
 
         String bpelReqId = bpelRequest.getRequestHeader().getRequestId();
         String callbackUrl = bpelRequest.getRequestHeader().getCallbackUrl();
+        String msoAction = bpelRequest.getRequestHeader().getMsoAction();
 
         String sdncReqBody = null;
 
-        RequestTunables rt = new RequestTunables(bpelReqId, bpelRequest.getRequestHeader().getMsoAction(),
-                bpelRequest.getRequestHeader().getSvcOperation(), bpelRequest.getRequestHeader().getSvcAction());
+        RequestTunables rt = new RequestTunables(bpelReqId, msoAction, bpelRequest.getRequestHeader().getSvcOperation(),
+                bpelRequest.getRequestHeader().getSvcAction());
         rt = tunablesMapper.setTunables(rt);
         rt.setSdncaNotificationUrl(env.getProperty(Constants.MY_URL_PROP));
 
-
         if ("POST".equals(rt.getReqMethod())) {
             Node node = (Node) bpelRequest.getRequestData();
             Document reqDoc = node.getOwnerDocument();
-            sdncReqBody = Utils.genSdncReq(reqDoc, rt);
+            if (Constants.MSO_ACTION_LCM.equals(msoAction)) {
+                sdncReqBody = Utils.genSdncLcmReq(reqDoc, rt);
+            } else {
+                sdncReqBody = Utils.genSdncReq(reqDoc, rt);
+            }
         } else if ("PUT".equals(rt.getReqMethod())) {
             Node node = (Node) bpelRequest.getRequestData();
             Document reqDoc = node.getOwnerDocument();
@@ -317,7 +321,7 @@
 
             }
 
-            logger.debug("Invoking Bpel Callback. BpelCallbackUrl:{}", bpelUrl);
+            logger.debug("Invoking Bpel Callback. BpelCallbackUrl: {}", bpelUrl);
             cbPort.sdncAdapterCallback(cbReq);
 
         } catch (Exception e) {
@@ -325,6 +329,6 @@
             logger.error("Error {} - {} - {}", ErrorCode.BusinessProcessError.getValue(),
                     MessageEnum.RA_CALLBACK_BPEL_EXC.toString(), error, e);
         }
-        logger.info(MessageEnum.RA_CALLBACK_BPEL_COMPLETE.name(), CAMUNDA);
+        logger.info("{} : {}", MessageEnum.RA_CALLBACK_BPEL_COMPLETE.name(), CAMUNDA);
     }
 }
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Utils.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Utils.java
index f710988..56c38f8 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Utils.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/Utils.java
@@ -24,6 +24,8 @@
 
 
 import java.io.StringWriter;
+import java.time.Instant;
+import java.util.UUID;
 import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -94,7 +96,7 @@
             }
 
             String s = domToStr(newdoc);
-            logger.debug("Formatted SdncReq:\n", s);
+            logger.debug("Formatted SdncReq:\n{}", s);
             return s;
 
         } catch (Exception e) {
@@ -128,7 +130,7 @@
             }
 
             String s = domToStr(newdoc);
-            logger.debug("Formatted SdncPutReq:\n {}", s);
+            logger.debug("Formatted SdncPutReq:\n{}", s);
             return s;
 
         } catch (Exception e) {
@@ -138,6 +140,96 @@
         return null;
     }
 
+    public static Element genLcmCommonHeader(Document doc, String requestId) {
+        Element commonHeader = doc.createElement("common-header");
+
+        Element hdrChild;
+
+        hdrChild = doc.createElement("api-ver");
+        hdrChild.appendChild(doc.createTextNode(Constants.LCM_API_VER));
+        commonHeader.appendChild(hdrChild);
+
+        hdrChild = doc.createElement("flags");
+
+        Element flagChild;
+
+        flagChild = doc.createElement("force");
+        flagChild.appendChild(doc.createTextNode("FALSE"));
+        hdrChild.appendChild(flagChild);
+
+        flagChild = doc.createElement("mode");
+        flagChild.appendChild(doc.createTextNode("NORMAL"));
+        hdrChild.appendChild(flagChild);
+
+        flagChild = doc.createElement("ttl");
+        flagChild.appendChild(doc.createTextNode(String.valueOf(Constants.LCM_FLAGS_TTL)));
+        hdrChild.appendChild(flagChild);
+
+        commonHeader.appendChild(hdrChild);
+
+        hdrChild = doc.createElement("originator-id");
+        hdrChild.appendChild(doc.createTextNode(Constants.LCM_ORIGINATOR_ID));
+        commonHeader.appendChild(hdrChild);
+
+        hdrChild = doc.createElement("request-id");
+        hdrChild.appendChild(doc.createTextNode(requestId));
+        commonHeader.appendChild(hdrChild);
+
+        hdrChild = doc.createElement("sub-request-id");
+        hdrChild.appendChild(doc.createTextNode(UUID.randomUUID().toString()));
+        commonHeader.appendChild(hdrChild);
+
+        hdrChild = doc.createElement("timestamp");
+        hdrChild.appendChild(doc.createTextNode(Instant.now().toString()));
+        commonHeader.appendChild(hdrChild);
+
+        return commonHeader;
+    }
+
+    public static String genSdncLcmReq(Document reqDoc, RequestTunables rt) {
+        try {
+            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+            DocumentBuilder db = dbf.newDocumentBuilder();
+
+            Document newdoc = db.newDocument();
+            Element root = newdoc.createElementNS(rt.getNamespace(), "input");
+            newdoc.appendChild(root);
+
+            String elemData = rt.getReqId();
+            if (elemData == null || elemData.length() == 0) {
+                elemData = UUID.randomUUID().toString();
+            }
+
+            Element hdrChild;
+            hdrChild = genLcmCommonHeader(newdoc, elemData);
+            root.appendChild(hdrChild);
+
+            elemData = rt.getAction();
+            if (elemData != null && elemData.length() > 0) {
+                hdrChild = newdoc.createElement("action");
+                hdrChild.appendChild(newdoc.createTextNode(elemData));
+                root.appendChild(hdrChild);
+            }
+
+            // RequestData
+            NodeList nodes = reqDoc.getDocumentElement().getChildNodes();
+            for (int i = 0; i < nodes.getLength(); i++) {
+                Node n = nodes.item(i);
+                Node newNode = newdoc.importNode(n, true);
+                root.appendChild(newNode);
+            }
+
+            String s = domToStr(newdoc);
+            logger.debug("Formatted SdncLcmReq:\n{}", s);
+            return s;
+
+        } catch (Exception e) {
+            logger.error(LoggingAnchor.FOUR, MessageEnum.RA_ERROR_CREATE_SDNC_REQUEST.toString(), "SDNC",
+                    ErrorCode.BusinessProcessError.getValue(), "Exception in genSdncLcmReq", e);
+        }
+        return null;
+    }
+
     public static String genMsoFailResp(SDNCResponse resp) {
         try {
 
@@ -163,7 +255,7 @@
             root.appendChild(elem3);
 
             String s = domToStr(newdoc);
-            logger.debug("Formatted SdncReq: {}", s);
+            logger.debug("Formatted MsoFailResp:\n{}", s);
             return s;
 
         } catch (Exception e) {
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
index 0bb92e3..fcc59c3 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtilsTest.java
@@ -9,9 +9,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -27,6 +27,7 @@
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
@@ -36,6 +37,9 @@
 import static org.mockito.Mockito.verify;
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
@@ -53,6 +57,7 @@
 import org.onap.aai.domain.yang.Configurations;
 import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.aai.domain.yang.GenericVnfs;
+import org.onap.aai.domain.yang.InstanceGroup;
 import org.onap.aai.domain.yang.L3Network;
 import org.onap.aai.domain.yang.L3Networks;
 import org.onap.aai.domain.yang.ServiceInstance;
@@ -74,20 +79,13 @@
 import org.onap.so.client.graphinventory.entities.uri.Depth;
 import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization;
 import org.onap.so.db.catalog.beans.CollectionResourceInstanceGroupCustomization;
-import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization;
-import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
-import org.onap.so.db.catalog.beans.VfModuleCustomization;
-import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization;
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.beans.RequestProcessingData;
 import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
-import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.RequestDetails;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 @RunWith(MockitoJUnitRunner.class)
@@ -119,296 +117,192 @@
     }
 
     @Test
-    public void testGetCatalogServiceByModelUUID() throws JsonParseException, JsonMappingException, IOException {
+    public void getCatalogServiceByModelUUIDTest() throws IOException {
         Service expected = mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
+        final String modelUUID = "modelUUIDTest";
 
-        RequestDetails requestDetails = new RequestDetails();
-        ModelInfo modelInfo = new ModelInfo();
-        modelInfo.setModelVersionId("modelUUID");
-        requestDetails.setModelInfo(modelInfo);
-        doReturn(expected).when(MOCK_catalogDbClient).getServiceByID("modelUUID");
-        Service actual = bbInputSetupUtils.getCatalogServiceByModelUUID(modelInfo.getModelVersionId());
+        doReturn(expected).when(MOCK_catalogDbClient).getServiceByID(modelUUID);
 
-        assertThat(actual, sameBeanAs(expected));
+        assertThat(bbInputSetupUtils.getCatalogServiceByModelUUID(modelUUID), sameBeanAs(expected));
     }
 
     @Test
-    public void testGetCatalogServiceByModelVersionAndModelInvariantUUID()
-            throws JsonParseException, JsonMappingException, IOException {
-        String modelVersion = "modelVersion";
-        String modelInvariantUUID = "modelInvariantUUID";
+    public void getCatalogServiceByModelVersionAndModelInvariantUUIDTest() throws IOException {
+        final String modelVersion = "modelVersionTest";
+        final String modelInvariantUUID = "modelInvariantUUIDTest";
         Service expectedService =
                 mapper.readValue(new File(RESOURCE_PATH + "CatalogServiceExpected.json"), Service.class);
 
-        doReturn(expectedService).when(MOCK_catalogDbClient)
-                .getServiceByModelVersionAndModelInvariantUUID(isA(String.class), isA(String.class));
-
-        Service actualService = bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
+        doReturn(expectedService).when(MOCK_catalogDbClient).getServiceByModelVersionAndModelInvariantUUID(modelVersion,
                 modelInvariantUUID);
 
-        assertThat(actualService, sameBeanAs(expectedService));
+        assertThat(bbInputSetupUtils.getCatalogServiceByModelVersionAndModelInvariantUUID(modelVersion,
+                modelInvariantUUID), sameBeanAs(expectedService));
     }
 
     @Test
-    public void testGetVnfcInstanceGroups() throws JsonParseException, JsonMappingException, IOException {
+    public void getVnfcInstanceGroupsTest() throws IOException {
+        final String modelCustomizationUUID = "modelCustomizationUUIDTest";
         VnfcInstanceGroupCustomization vnfc = mapper.readValue(
                 new File(RESOURCE_PATH + "VnfcInstanceGroupCustomization.json"), VnfcInstanceGroupCustomization.class);
-        String modelCustomizationUUID = "modelCustomizationUUID";
 
         doReturn(Arrays.asList(vnfc)).when(MOCK_catalogDbClient)
-                .getVnfcInstanceGroupsByVnfResourceCust(isA(String.class));
+                .getVnfcInstanceGroupsByVnfResourceCust(modelCustomizationUUID);
 
-        List<VnfcInstanceGroupCustomization> actualVnfcList =
-                bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID);
-
-        assertThat(actualVnfcList, sameBeanAs(Arrays.asList(vnfc)));
+        assertThat(bbInputSetupUtils.getVnfcInstanceGroups(modelCustomizationUUID), sameBeanAs(Arrays.asList(vnfc)));
     }
 
     @Test
-    public void testGetRequestDetails() throws JsonParseException, JsonMappingException, IOException {
+    public void getRequestDetailsTest() throws IOException {
+        final String requestId = "requestId";
         InfraActiveRequests infraActiveRequest = mapper
                 .readValue(new File(RESOURCE_PATH + "InfraActiveRequestExpected.json"), InfraActiveRequests.class);
-
         RequestDetails expected =
                 mapper.readValue(new File(RESOURCE_PATH + "RequestDetailsExpected.json"), RequestDetails.class);
-        String requestId = "requestId";
-        doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
-        RequestDetails actual = bbInputSetupUtils.getRequestDetails(requestId);
 
-        assertThat(actual, sameBeanAs(expected));
+        doReturn(infraActiveRequest).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
+
+        assertThat(bbInputSetupUtils.getRequestDetails(requestId), sameBeanAs(expected));
     }
 
     @Test
     public void getRequestDetailsNullTest() throws IOException {
-        RequestDetails requestDetails = bbInputSetupUtils.getRequestDetails("");
-
-        assertNull(requestDetails);
+        assertNull(bbInputSetupUtils.getRequestDetails(""));
     }
 
     @Test
-    public void testGetCloudRegion() {
+    public void getCloudRegionTest() {
         CloudConfiguration cloudConfig = new CloudConfiguration();
         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
-        Optional<org.onap.aai.domain.yang.CloudRegion> expected =
-                Optional.of(new org.onap.aai.domain.yang.CloudRegion());
-        expected.get().setCloudOwner("cloudOwner");
-        expected.get().setCloudRegionId("lcpCloudRegionId");
-        doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.CloudRegion.class,
+        Optional<CloudRegion> expected = Optional.of(new CloudRegion());
+
+        doReturn(expected).when(MOCK_aaiResourcesClient).get(CloudRegion.class,
                 AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION, cloudConfig.getCloudOwner(),
                         cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO));
 
-        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CLOUD_REGION,
-                cloudConfig.getCloudOwner(), cloudConfig.getLcpCloudRegionId()).depth(Depth.TWO);
-        bbInputSetupUtils.getCloudRegion(cloudConfig);
-
-        verify(MOCK_aaiResourcesClient, times(1)).get(CloudRegion.class, expectedUri);
+        assertThat(bbInputSetupUtils.getCloudRegion(cloudConfig), sameBeanAs(expected.get()));
     }
 
     @Test
-    public void testGetCloudRegionExceptionTest() {
-
+    public void getCloudRegionNullTest() {
         CloudConfiguration cloudConfig = new CloudConfiguration();
         cloudConfig.setLcpCloudRegionId("lcpCloudRegionId");
 
-        RequestDetails requestDetails = new RequestDetails();
-        requestDetails.setCloudConfiguration(cloudConfig);
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-
-        CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
-
-        assertNull(cloudRegion);
+        assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
     }
 
     @Test
-    public void testGetCloudRegionEmptyId() {
+    public void getCloudRegionEmptyIdTest() {
         CloudConfiguration cloudConfig = new CloudConfiguration();
         cloudConfig.setLcpCloudRegionId("");
 
-        RequestDetails requestDetails = new RequestDetails();
-        requestDetails.setCloudConfiguration(cloudConfig);
-
-        CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfig);
-
-        assertNull(cloudRegion);
+        assertNull(bbInputSetupUtils.getCloudRegion(cloudConfig));
     }
 
     @Test
-    public void testGetCloudRegionEmptyConfiguration() {
-        RequestDetails requestDetails = new RequestDetails();
-
-        CloudRegion cloudRegion = bbInputSetupUtils.getCloudRegion(requestDetails.getCloudConfiguration());
-
-        assertNull(cloudRegion);
-    }
-
-    @Test
-    public void testGetAAIInstanceGroup() {
-        Optional<org.onap.aai.domain.yang.InstanceGroup> expected =
-                Optional.of(new org.onap.aai.domain.yang.InstanceGroup());
-        String instanceGroupId = "instanceGroupId";
+    public void getAAIInstanceGroupTest() {
+        final String instanceGroupId = "instanceGroupId";
+        Optional<InstanceGroup> expected = Optional.of(new InstanceGroup());
         expected.get().setId(instanceGroupId);
-        doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
-                AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
-        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId);
 
-        bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.InstanceGroup.class, expectedUri);
+        doReturn(expected).when(MOCK_aaiResourcesClient).get(InstanceGroup.class,
+                AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
+
+        assertThat(bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId), sameBeanAs(expected.get()));
     }
 
     @Test
-    public void testGetAAIInstanceGroupThrowNotFound() {
-        String instanceGroupId = "instanceGroupId";
-        doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.InstanceGroup.class,
-                AAIUriFactory.createResourceUri(AAIObjectType.INSTANCE_GROUP, instanceGroupId));
-
-        org.onap.aai.domain.yang.InstanceGroup actual = bbInputSetupUtils.getAAIInstanceGroup(instanceGroupId);
-
-        assertNull(actual);
+    public void getAAIInstanceGroupNullTest() {
+        assertNull(bbInputSetupUtils.getAAIInstanceGroup(""));
     }
 
     @Test
-    public void testGetAAICustomer() {
+    public void getAAICustomerTest() {
+        final String globalSubscriberId = "globalSubscriberId";
         Optional<org.onap.aai.domain.yang.Customer> expected = Optional.of(new org.onap.aai.domain.yang.Customer());
-        String globalSubscriberId = "globalSubscriberId";
         expected.get().setGlobalCustomerId(globalSubscriberId);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
                 AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
-        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId);
 
-        bbInputSetupUtils.getAAICustomer(globalSubscriberId);
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Customer.class, expectedUri);
+        assertThat(bbInputSetupUtils.getAAICustomer(globalSubscriberId), sameBeanAs(expected.get()));
     }
 
     @Test
-    public void testGetAAICustomerThrowNotFound() {
-        String globalSubscriberId = "globalSubscriberId";
-        doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.Customer.class,
-                AAIUriFactory.createResourceUri(AAIObjectType.CUSTOMER, globalSubscriberId));
-
-        org.onap.aai.domain.yang.Customer actual = bbInputSetupUtils.getAAICustomer(globalSubscriberId);
-
-        assertNull(actual);
+    public void getAAICustomerNullTest() {
+        assertNull(bbInputSetupUtils.getAAICustomer(""));
     }
 
     @Test
-    public void testGetAAIServiceSubscription() {
+    public void getAAIServiceSubscriptionTest() {
+        final String globalSubscriberId = "globalSubscriberId";
+        final String subscriptionServiceType = "subscriptionServiceType";
         Optional<org.onap.aai.domain.yang.ServiceSubscription> expected =
                 Optional.of(new org.onap.aai.domain.yang.ServiceSubscription());
-        String globalSubscriberId = "globalSubscriberId";
-        String subscriptionServiceType = "subscriptionServiceType";
+
         expected.get().setServiceType(subscriptionServiceType);
         doReturn(expected).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
                 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
                         subscriptionServiceType));
-        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION,
-                globalSubscriberId, subscriptionServiceType);
 
-        bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceSubscription.class, expectedUri);
+        assertThat(bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType),
+                sameBeanAs(expected.get()));
     }
 
     @Test
-    public void testGetAAIServiceSubscriptionErrors() {
-        String globalSubId = null;
-        String subServiceType = null;
-        org.onap.aai.domain.yang.ServiceSubscription actual =
-                bbInputSetupUtils.getAAIServiceSubscription(globalSubId, subServiceType);
-        assertNull(actual);
-
-        String globalSubId2 = "";
-        String subServiceType2 = "";
-        org.onap.aai.domain.yang.ServiceSubscription actual2 =
-                bbInputSetupUtils.getAAIServiceSubscription(globalSubId2, subServiceType2);
-        assertNull(actual2);
-
-        String globalSubId3 = "";
-        String subServiceType3 = null;
-        org.onap.aai.domain.yang.ServiceSubscription actual3 =
-                bbInputSetupUtils.getAAIServiceSubscription(globalSubId3, subServiceType3);
-        assertNull(actual3);
-
-        String globalSubId4 = null;
-        String subServiceType4 = "";
-        org.onap.aai.domain.yang.ServiceSubscription actual4 =
-                bbInputSetupUtils.getAAIServiceSubscription(globalSubId4, subServiceType4);
-        assertNull(actual4);
+    public void getAAIServiceSubscriptionErrorsTest() {
+        assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, null));
+        assertNull(bbInputSetupUtils.getAAIServiceSubscription("", ""));
+        assertNull(bbInputSetupUtils.getAAIServiceSubscription("", null));
+        assertNull(bbInputSetupUtils.getAAIServiceSubscription(null, ""));
     }
 
     @Test
-    public void testGetAAIServiceSubscriptionThrowNotFound() {
-        String globalSubscriberId = "globalSubscriberId";
-        String subscriptionServiceType = "subscriptionServiceType";
-        doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(org.onap.aai.domain.yang.ServiceSubscription.class,
-                AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_SUBSCRIPTION, globalSubscriberId,
-                        subscriptionServiceType));
-        org.onap.aai.domain.yang.ServiceSubscription actual =
-                bbInputSetupUtils.getAAIServiceSubscription(globalSubscriberId, subscriptionServiceType);
-        assertNull(actual);
-    }
-
-    @Test
-    public void testGetAAIServiceInstanceById() {
-        String serviceInstanceId = "serviceInstanceId";
-
+    public void getAAIServiceInstanceByIdTest() {
+        final String serviceInstanceId = "serviceInstanceId";
         ServiceInstance expectedServiceInstance = new ServiceInstance();
 
         doReturn(Optional.of(expectedServiceInstance)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
                 isA(AAIResourceUri.class));
 
-        ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
-
-        assertThat(actualServiceInstance, sameBeanAs(expectedServiceInstance));
+        assertThat(bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId), sameBeanAs(expectedServiceInstance));
     }
 
     @Test
-    public void testGetAAIServiceInstanceByIdThrowNotFound() {
-        String serviceInstanceId = "serviceInstanceId";
+    public void getAAIServiceInstanceById_ifEmptyReturnNull() {
+        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
+                any(AAIResourceUri.class));
 
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-
-        ServiceInstance actualServiceInstance = bbInputSetupUtils.getAAIServiceInstanceById(serviceInstanceId);
-
-        assertNull(actualServiceInstance);
+        assertNull(bbInputSetupUtils.getAAIServiceInstanceById("any"));
     }
 
     @Test
-    public void testGetAAIServiceInstanceByIdAndCustomer() {
-        String globalCustomerId = "globalCustomerId";
-        String serviceType = "serviceType";
-        String serviceInstanceId = "serviceInstanceId";
+    public void getAAIServiceInstanceByIdAndCustomerTest() {
+        final String globalCustomerId = "globalCustomerId";
+        final String serviceType = "serviceType";
+        final String serviceInstanceId = "serviceInstanceId";
         ServiceInstance expected = new ServiceInstance();
         expected.setServiceInstanceId(serviceInstanceId);
-        doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-        AAIResourceUri expectedUri = AAIUriFactory
+
+        doReturn(Optional.of(expected)).when(MOCK_aaiResourcesClient).get(ServiceInstance.class, AAIUriFactory
                 .createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId, serviceType, serviceInstanceId)
-                .depth(Depth.TWO);
-        this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType, serviceInstanceId);
+                .depth(Depth.TWO));
 
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstance.class, expectedUri);
-
+        assertThat(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId, serviceType,
+                serviceInstanceId), sameBeanAs(expected));
     }
 
     @Test
-    public void testGetAAIServiceInstanceByIdAndCustomerThrowNotFound() {
-        String globalCustomerId = "globalCustomerId";
-        String serviceType = "serviceType";
-        String serviceInstanceId = "serviceInstanceId";
+    public void getAAIServiceInstanceByIdAndCustomerNullTest() {
+        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(ServiceInstance.class),
+                any(AAIResourceUri.class));
 
-        doReturn(MOCK_aaiResourcesClient).when(MOCK_injectionHelper).getAaiClient();
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-        ServiceInstance actual = this.bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer(globalCustomerId,
-                serviceType, serviceInstanceId);
-
-        assertNull(actual);
+        assertNull(bbInputSetupUtils.getAAIServiceInstanceByIdAndCustomer("", "", ""));
     }
 
     @Test
-    public void testGetAAIServiceInstanceByName() throws Exception {
-        String serviceInstanceName = "serviceInstanceName";
+    public void getAAIServiceInstanceByNameTest() throws Exception {
+        final String serviceInstanceName = "serviceInstanceName";
 
         ServiceInstance expectedServiceInstance = new ServiceInstance();
         expectedServiceInstance.setServiceInstanceId("serviceInstanceId");
@@ -425,20 +319,17 @@
 
         doReturn(Optional.of(serviceInstances)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
                 isA(AAIResourceUri.class));
-        AAIResourceUri expectedUri = AAIUriFactory
-                .createResourceUri(AAIObjectPlurals.SERVICE_INSTANCE, customer.getGlobalCustomerId(),
-                        customer.getServiceSubscription().getServiceType())
-                .queryParam("service-instance-name", serviceInstanceName).depth(Depth.TWO);
-        bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
 
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.ServiceInstances.class, expectedUri);
+        assertThat(bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer),
+                sameBeanAs(serviceInstances.getServiceInstance().get(0)));
     }
 
     @Test
-    public void testGetAAIServiceInstanceByNameException() throws Exception {
-        expectedException.expect(Exception.class);
+    public void getAAIServiceInstanceByNameExceptionTest() throws Exception {
+        final String serviceInstanceName = "serviceInstanceName";
 
-        String serviceInstanceName = "serviceInstanceName";
+        expectedException.expect(Exception.class);
+        expectedException.expectMessage("Multiple Service Instances Returned");
 
         ServiceInstance serviceInstance = new ServiceInstance();
         serviceInstance.setServiceInstanceId("serviceInstanceId");
@@ -461,45 +352,26 @@
     }
 
     @Test
-    public void testGetAAIServiceInstanceByNameNull() throws Exception {
-        String serviceInstanceName = "serviceInstanceName";
-
-        ServiceInstance serviceInstance = new ServiceInstance();
-        serviceInstance.setServiceInstanceId("serviceInstanceId");
-
-        ServiceSubscription serviceSubscription = new ServiceSubscription();
-        serviceSubscription.setServiceType("serviceType");
-
+    public void getAAIServiceInstanceByNameNullTest() throws Exception {
         Customer customer = new Customer();
-        customer.setGlobalCustomerId("globalCustomerId");
-        customer.setServiceSubscription(serviceSubscription);
+        customer.setServiceSubscription(new ServiceSubscription());
 
-        ServiceInstances serviceInstances = new ServiceInstances();
-        serviceInstances.getServiceInstance().add(serviceInstance);
-        serviceInstances.getServiceInstance().add(serviceInstance);
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-
-        ServiceInstance actualServiceInstance =
-                bbInputSetupUtils.getAAIServiceInstanceByName(serviceInstanceName, customer);
-
-        assertNull(actualServiceInstance);
+        assertNull(bbInputSetupUtils.getAAIServiceInstanceByName("", customer));
     }
 
     @Test
-    public void testGetOptionalAAIServiceInstanceByNameException() throws Exception {
+    public void getOptionalAAIServiceInstanceByNameExceptionTest() throws Exception {
         expectedException.expect(MultipleObjectsFoundException.class);
         expectedException.expectMessage(containsString(
                 "Multiple service instances found for customer-id: globalCustomerId, service-type: serviceType and service-instance-name: serviceInstanceId."));
 
-        String globalCustomerId = "globalCustomerId";
-        String serviceType = "serviceType";
-        String serviceInstanceId = "serviceInstanceId";
+        final String globalCustomerId = "globalCustomerId";
+        final String serviceType = "serviceType";
+        final String serviceInstanceId = "serviceInstanceId";
 
         ServiceInstance serviceInstance = new ServiceInstance();
-        serviceInstance.setServiceInstanceId("serviceInstanceId");
+        serviceInstance.setServiceInstanceId(serviceInstanceId);
         serviceInstance.setServiceType(serviceType);
-        serviceInstance.setServiceInstanceName("serviceInstanceName");
 
         ServiceInstances serviceInstances = new ServiceInstances();
         serviceInstances.getServiceInstance().add(serviceInstance);
@@ -512,99 +384,81 @@
     }
 
     @Test
-    public void testGetOptionalAAIServiceInstanceByNameNull() throws Exception {
-        String globalCustomerId = "globalCustomerId";
-        String serviceType = "serviceType";
-        String serviceInstanceId = "serviceInstanceId";
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-        Optional<ServiceInstance> actual =
-                this.bbInputSetupUtils.getAAIServiceInstanceByName(globalCustomerId, serviceType, serviceInstanceId);
+    public void getOptionalAAIServiceInstanceByNameNullTest() throws Exception {
+        Optional<ServiceInstance> actual = bbInputSetupUtils.getAAIServiceInstanceByName("", "", "");
 
         assertThat(actual, sameBeanAs(Optional.empty()));
     }
 
     @Test
-    public void testGetCatalogInstanceGroup() throws JsonParseException, JsonMappingException, IOException {
-        String modelUUID = "modelUUID";
-
-        org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
-                new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
-
-        doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(isA(String.class));
-
-        org.onap.so.db.catalog.beans.InstanceGroup actualInstanceGroup =
-                bbInputSetupUtils.getCatalogInstanceGroup(modelUUID);
-
-        assertThat(actualInstanceGroup, sameBeanAs(expectedInstanceGroup));
+    public void getCatalogInstanceGroupNullTest() {
+        assertNull(bbInputSetupUtils.getCatalogInstanceGroup(""));
     }
 
     @Test
-    public void testGetCollectionResourceInstanceGroupCustomization() {
-        String modelCustomizationUUID = "modelCustomizationUUID";
+    public void getCatalogInstanceGroupTest() throws IOException {
+        final String modelUUID = "modelUUIDTest";
+        org.onap.so.db.catalog.beans.InstanceGroup expectedInstanceGroup = mapper.readValue(
+                new File(RESOURCE_PATH + "InstanceGroup.json"), org.onap.so.db.catalog.beans.InstanceGroup.class);
 
+        doReturn(expectedInstanceGroup).when(MOCK_catalogDbClient).getInstanceGroupByModelUUID(modelUUID);
+
+        assertThat(bbInputSetupUtils.getCatalogInstanceGroup(modelUUID), sameBeanAs(expectedInstanceGroup));
+    }
+
+    @Test
+    public void getCollectionResourceInstanceGroupCustomizationTest() {
+        final String modelCustomizationUUID = "modelCustomizationUUID";
         CollectionResourceInstanceGroupCustomization expectedCollection =
                 new CollectionResourceInstanceGroupCustomization();
 
         doReturn(Arrays.asList(expectedCollection)).when(MOCK_catalogDbClient)
                 .getCollectionResourceInstanceGroupCustomizationByModelCustUUID(modelCustomizationUUID);
 
-        List<CollectionResourceInstanceGroupCustomization> actualCollection =
-                bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID);
-
-        assertThat(actualCollection, sameBeanAs(Arrays.asList(expectedCollection)));
+        assertThat(bbInputSetupUtils.getCollectionResourceInstanceGroupCustomization(modelCustomizationUUID),
+                sameBeanAs(Arrays.asList(expectedCollection)));
     }
 
     @Test
-    public void testGetAAIGenericVnf() throws JsonParseException, JsonMappingException, IOException {
-        String vnfId = "vnfId";
-
-        GenericVnf expectedAaiVnf =
-                mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
-
-        doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
-                isA(AAIResourceUri.class));
-        AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE);
-        GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
-
-        assertThat(actualAaiVnf, sameBeanAs(expectedAaiVnf));
-
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.GenericVnf.class, expectedUri);
+    public void getAAIConfigurationNullTest() {
+        assertNull(bbInputSetupUtils.getAAIConfiguration(""));
     }
 
     @Test
-    public void testGetAAIConfiguration() throws JsonParseException, JsonMappingException, IOException {
-        String configurationId = "configurationId";
-
+    public void getAAIConfigurationTest() throws IOException {
+        final String configurationId = "configurationId";
         Configuration expectedAaiConfiguration =
                 mapper.readValue(new File(RESOURCE_PATH + "ConfigurationInput.json"), Configuration.class);
 
         doReturn(Optional.of(expectedAaiConfiguration)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
                 isA(AAIResourceUri.class));
-        AAIResourceUri expectedUri =
-                AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId).depth(Depth.ONE);
-        bbInputSetupUtils.getAAIConfiguration(configurationId);
 
-        verify(MOCK_aaiResourcesClient, times(1)).get(org.onap.aai.domain.yang.Configuration.class, expectedUri);
+        assertThat(bbInputSetupUtils.getAAIConfiguration(configurationId), sameBeanAs(expectedAaiConfiguration));
     }
 
     @Test
-    public void testGetAAIGenericVnfThrowNotFound() throws JsonParseException, JsonMappingException, IOException {
-        String vnfId = "vnfId";
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(isA(Class.class), isA(AAIResourceUri.class));
-
-        GenericVnf actualAaiVnf = bbInputSetupUtils.getAAIGenericVnf(vnfId);
-
-        assertNull(actualAaiVnf);
+    public void getAAIGenericVnfNullTest() {
+        assertNull(bbInputSetupUtils.getAAIGenericVnf(""));
     }
 
     @Test
-    public void testGetAAIResourceDepthOne() {
-        String vnfId = "vnfId";
-        AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
+    public void getAAIGenericVnfTest() throws IOException {
+        final String vnfId = "vnfId";
+        GenericVnf expectedAaiVnf =
+                mapper.readValue(new File(RESOURCE_PATH + "aaiGenericVnfInput.json"), GenericVnf.class);
+
+        doReturn(Optional.of(expectedAaiVnf)).when(MOCK_aaiResourcesClient).get(isA(Class.class),
+                eq(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE)));
+
+        assertThat(bbInputSetupUtils.getAAIGenericVnf(vnfId), sameBeanAs(expectedAaiVnf));
+    }
+
+    @Test
+    public void getAAIResourceDepthOneTest() {
+        AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.ONE);
         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
+
         bbInputSetupUtils.getAAIResourceDepthOne(aaiResourceUri);
 
         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
@@ -612,11 +466,11 @@
     }
 
     @Test
-    public void testGetAAIResourceDepthTwo() {
-        String vnfId = "vnfId";
-        AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
+    public void getAAIResourceDepthTwoTest() {
+        AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "anyVnfId");
         AAIResourceUri expectedUri = aaiResourceUri.clone().depth(Depth.TWO);
         AAIResourceUri aaiResourceUriClone = aaiResourceUri.clone();
+
         bbInputSetupUtils.getAAIResourceDepthTwo(aaiResourceUri);
 
         verify(MOCK_aaiResourcesClient, times(1)).get(expectedUri);
@@ -625,25 +479,33 @@
 
     @Test
     public void getRelatedNetworkByNameFromServiceInstanceTest() throws Exception {
+        final String networkId = "id123";
+        final String networkName = "name123";
+
         Optional<L3Networks> expected = Optional.of(new L3Networks());
         L3Network network = new L3Network();
-        network.setNetworkId("id123");
-        network.setNetworkName("name123");
+        network.setNetworkId(networkId);
+        network.setNetworkName(networkName);
         expected.get().getL3Network().add(network);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
         Optional<L3Network> actual =
-                this.bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("id123", "name123");
-        assertEquals(actual.get().getNetworkId(), expected.get().getL3Network().get(0).getNetworkId());
+                bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(networkId, networkName);
+
+        assertTrue(actual.isPresent());
+        assertEquals(networkId, actual.get().getNetworkId());
+        assertEquals(networkName, actual.get().getNetworkName());
+        assertEquals(expected.get().getL3Network().get(0).getNetworkId(), actual.get().getNetworkId());
     }
 
     @Test
     public void getRelatedNetworkByNameFromServiceInstanceMultipleNetworksExceptionTest() throws Exception {
+        final String serviceInstanceId = "serviceInstanceId";
+        final String networkName = "networkName";
         expectedException.expect(MultipleObjectsFoundException.class);
-        expectedException.expectMessage(containsString(
-                "Multiple networks found for service-instance-id: serviceInstanceId and network-name: networkName."));
-
-        String serviceInstanceId = "serviceInstanceId";
-        String networkName = "networkName";
+        expectedException.expectMessage(
+                String.format("Multiple networks found for service-instance-id: %s and network-name: %s.",
+                        serviceInstanceId, networkName));
 
         L3Network network = new L3Network();
         network.setNetworkId("id123");
@@ -661,15 +523,7 @@
 
     @Test
     public void getRelatedNetworkByNameFromServiceInstanceNotFoundTest() throws Exception {
-        String serviceInstanceId = "serviceInstanceId";
-        String networkName = "networkName";
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(L3Networks.class), any(AAIResourceUri.class));
-
-        Optional<L3Network> actualNetwork =
-                bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance(serviceInstanceId, networkName);
-
-        assertEquals(Optional.empty(), actualNetwork);
+        assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedNetworkByNameFromServiceInstance("", ""));
     }
 
     @Test
@@ -682,13 +536,19 @@
 
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class), any(AAIResourceUri.class));
         Optional<ServiceInstance> actual = this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
-        assertEquals(actual.get().getServiceInstanceId(),
-                expected.get().getServiceInstance().get(0).getServiceInstanceId());
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getServiceInstance().get(0).getServiceInstanceId(),
+                actual.get().getServiceInstanceId());
     }
 
     @Test
-    public void getRelatedServiceInstanceFromInstanceGroupMultipleTest() throws Exception {
+    public void getRelatedServiceInstanceFromInstanceGroupMultipleExceptionTest() throws Exception {
+        final String instanceGroupId = "ig-001";
         expectedException.expect(MultipleObjectsFoundException.class);
+        expectedException.expectMessage(
+                String.format("Mulitple service instances were found for instance-group-id: %s.", instanceGroupId));
+
         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
         ServiceInstance si1 = Mockito.mock(ServiceInstance.class);
         ServiceInstance si2 = Mockito.mock(ServiceInstance.class);
@@ -697,39 +557,46 @@
 
         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
                 any(AAIResourceUri.class));
-        this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
+        bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup(instanceGroupId);
     }
 
     @Test
-    public void getRelatedServiceInstanceFromInstanceGroupNotFoundTest() throws Exception {
+    public void getRelatedServiceInstanceFromInstanceGroupNotFoundExceptionTest() throws Exception {
         expectedException.expect(NoServiceInstanceFoundException.class);
+        expectedException.expectMessage("No ServiceInstances Returned");
+
         Optional<ServiceInstances> serviceInstances = Optional.of(new ServiceInstances());
 
         doReturn(serviceInstances).when(MOCK_aaiResourcesClient).get(eq(ServiceInstances.class),
                 any(AAIResourceUri.class));
-        this.bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
+        bbInputSetupUtils.getRelatedServiceInstanceFromInstanceGroup("ig-001");
     }
 
     @Test
     public void getRelatedVnfByNameFromServiceInstanceTest() throws Exception {
+        final String vnfId = "id123";
+        final String vnfName = "name123";
+
         Optional<GenericVnfs> expected = Optional.of(new GenericVnfs());
         GenericVnf vnf = new GenericVnf();
-        vnf.setVnfId("id123");
-        vnf.setVnfName("name123");
+        vnf.setVnfId(vnfId);
+        vnf.setVnfName(vnfName);
         expected.get().getGenericVnf().add(vnf);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
-        Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance("id123", "name123");
-        assertEquals(actual.get().getVnfId(), expected.get().getGenericVnf().get(0).getVnfId());
+        Optional<GenericVnf> actual = this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(vnfId, vnfName);
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getGenericVnf().get(0).getVnfId(), actual.get().getVnfId());
     }
 
     @Test
     public void getRelatedVnfByNameFromServiceInstanceMultipleVnfsExceptionTest() throws Exception {
+        final String serviceInstanceId = "serviceInstanceId";
+        final String vnfName = "vnfName";
         expectedException.expect(MultipleObjectsFoundException.class);
-        expectedException.expectMessage(containsString(
-                "Multiple vnfs found for service-instance-id: serviceInstanceId and vnf-name: vnfName."));
-
-        String serviceInstanceId = "serviceInstanceId";
-        String vnfName = "vnfName";
+        expectedException.expectMessage(String.format(
+                "Multiple vnfs found for service-instance-id: %s and vnf-name: %s.", serviceInstanceId, vnfName));
 
         GenericVnf vnf = new GenericVnf();
         vnf.setVnfId("id123");
@@ -740,7 +607,6 @@
         vnfs.getGenericVnf().add(vnf);
 
         Optional<GenericVnfs> optVnfs = Optional.of(vnfs);
-
         doReturn(optVnfs).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
 
         bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
@@ -748,38 +614,38 @@
 
     @Test
     public void getRelatedVnfByNameFromServiceInstanceNotFoundTest() throws Exception {
-        String serviceInstanceId = "serviceInstanceId";
-        String vnfName = "vnfName";
+        final String serviceInstanceId = "serviceInstanceId";
+        final String vnfName = "vnfName";
 
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(GenericVnfs.class), any(AAIResourceUri.class));
-
-        Optional<GenericVnf> actualVnf =
-                this.bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName);
-
-        assertEquals(actualVnf, Optional.empty());
+        assertEquals(Optional.empty(),
+                bbInputSetupUtils.getRelatedVnfByNameFromServiceInstance(serviceInstanceId, vnfName));
     }
 
     @Test
     public void getRelatedVolumeGroupByNameFromVnfTest() throws Exception {
+        final String vnfId = "id123";
+        final String vnfName = "name123";
+
         Optional<VolumeGroups> expected = Optional.of(new VolumeGroups());
         VolumeGroup volumeGroup = new VolumeGroup();
-        volumeGroup.setVolumeGroupId("id123");
-        volumeGroup.setVolumeGroupName("name123");
+        volumeGroup.setVolumeGroupId(vnfId);
+        volumeGroup.setVolumeGroupName(vnfName);
         expected.get().getVolumeGroup().add(volumeGroup);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
-        Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("id123", "name123");
-        assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
+        Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, vnfName);
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
     }
 
     @Test
     public void getRelatedVolumeGroupByNameFromVnfMultipleVolumeGroupsExceptionTest() throws Exception {
+        final String vnfId = "vnfId";
+        final String volumeGroupName = "volumeGroupName";
         expectedException.expect(MultipleObjectsFoundException.class);
-        expectedException.expectMessage(containsString(
-                "Multiple volume-groups found for vnf-id: vnfId and volume-group-name: volumeGroupName."));
-
-
-        String vnfId = "vnfId";
-        String volumeGroupName = "volumeGroupName";
+        expectedException.expectMessage(String.format(
+                "Multiple volume-groups found for vnf-id: %s and volume-group-name: %s.", vnfId, volumeGroupName));
 
         VolumeGroup volumeGroup = new VolumeGroup();
         volumeGroup.setVolumeGroupId("id123");
@@ -797,15 +663,7 @@
 
     @Test
     public void getRelatedVolumeGroupByNameFromVnfNotFoundTest() throws Exception {
-        String vnfId = "vnfId";
-        String volumeGroupName = "volumeGroupName";
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
-
-        Optional<VolumeGroup> actualVolumeGroup =
-                bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf(vnfId, volumeGroupName);
-
-        assertEquals(actualVolumeGroup, Optional.empty());
+        assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupByNameFromVnf("", ""));
     }
 
     @Test
@@ -815,18 +673,20 @@
         volumeGroup.setVolumeGroupId("id123");
         volumeGroup.setVolumeGroupName("name123");
         expected.get().getVolumeGroup().add(volumeGroup);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
         Optional<VolumeGroup> actual =
                 this.bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("id123", "id123", "name123");
-        assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
     }
 
     @Test
     public void getRelatedVolumeGroupFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
         expectedException.expect(Exception.class);
-
-        String vnfId = "vnfId";
-        String volumeGroupId = "volumeGroupId";
+        final String vnfId = "vnfId";
+        final String volumeGroupId = "volumeGroupId";
 
         VolumeGroup volumeGroup = new VolumeGroup();
         volumeGroup.setVolumeGroupId("id123");
@@ -844,15 +704,10 @@
 
     @Test
     public void getRelatedVolumeGroupFromVfModuleNotFoundTest() throws Exception {
-        String vnfId = "vnfId";
-        String volumeGroupId = "volumeGroupId";
+        final String vnfId = "vnfId";
+        final String volumeGroupId = "volumeGroupId";
 
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
-
-        Optional<VolumeGroup> actualVolumeGroup =
-                bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId);
-
-        assertEquals(actualVolumeGroup, Optional.empty());
+        assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupFromVfModule(vnfId, volumeGroupId));
     }
 
     @Test
@@ -861,19 +716,24 @@
         VolumeGroup volumeGroup = new VolumeGroup();
         volumeGroup.setVolumeGroupId("id123");
         expected.get().getVolumeGroup().add(volumeGroup);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
-        Optional<VolumeGroup> actual = this.bbInputSetupUtils.getRelatedVolumeGroupFromVfModule("id123", "id123");
-        assertEquals(actual.get().getVolumeGroupId(), expected.get().getVolumeGroup().get(0).getVolumeGroupId());
+        Optional<VolumeGroup> actual = bbInputSetupUtils.getRelatedVolumeGroupFromVfModule("id123", "id123");
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getVolumeGroup().get(0).getVolumeGroupId(), actual.get().getVolumeGroupId());
     }
 
     @Test
     public void getRelatedVolumeGroupByNameFromVfModuleMultipleVolumeGroupsExceptionTest() throws Exception {
+        final String vnfId = "vnfId";
+        final String vfModuleId = "vfModuleId";
+        final String volumeGroupName = "volumeGroupName";
+
         expectedException.expect(MultipleObjectsFoundException.class);
-        expectedException.expectMessage(containsString(
-                "Multiple voulme-groups found for vnf-id: vnfId, vf-module-id: volumeGroupId and volume-group-name: volumeGroupName."));
-        String vnfId = "vnfId";
-        String volumeGroupId = "volumeGroupId";
-        String volumeGroupName = "volumeGroupName";
+        expectedException.expectMessage(String.format(
+                "Multiple voulme-groups found for vnf-id: %s, vf-module-id: %s and volume-group-name: %s.", vnfId,
+                vfModuleId, volumeGroupName));
 
         VolumeGroup volumeGroup = new VolumeGroup();
         volumeGroup.setVolumeGroupId("id123");
@@ -884,54 +744,39 @@
         volumeGroups.getVolumeGroup().add(volumeGroup);
 
         Optional<VolumeGroups> optVolumeGroups = Optional.of(volumeGroups);
-
         doReturn(optVolumeGroups).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
 
-        bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
+        bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, vfModuleId, volumeGroupName);
     }
 
     @Test
     public void getRelatedVolumeGroupByNameFromVfModuleNotFoundTest() throws Exception {
-        String vnfId = "vnfId";
-        String volumeGroupId = "volumeGroupId";
-        String volumeGroupName = "volumeGroupName";
-
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(VolumeGroups.class), any(AAIResourceUri.class));
-
-        Optional<VolumeGroup> actualVolumeGroup =
-                bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule(vnfId, volumeGroupId, volumeGroupName);
-
-        assertEquals(actualVolumeGroup, Optional.empty());
+        assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedVolumeGroupByNameFromVfModule("", "", ""));
     }
 
-
     @Test
-    public void loadOriginalFlowExecutionPathTest() throws Exception {
-
-        String requestId = "123";
-        String flowsToExecuteString =
-                "[{\"buildingBlock\":{\"mso-id\":\"2f9ddc4b-4dcf-4129-a35f-be1625ae0176\",\"bpmn-flow-name\":\"DeactivateFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"1ca5584e-38a9-4c3f-a4b4-99b0d42089ba\",\"bpmn-flow-name\":\"UnassignFabricConfigurationBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":{\"vfModuleCustomizationUUID\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"vnfResourceCustomizationUUID\":\"a80f05b8-d651-44af-b999-8ed78fb4582f\",\"cvnfcCustomizationUUID\":\"69cce457-9ffd-4359-962b-0596a1e83ad1\",\"vnfcName\":\"zauk51bmcmr01mcm001\"}},{\"buildingBlock\":{\"mso-id\":\"68d16097-4810-477d-803b-8322106106ef\",\"bpmn-flow-name\":\"DeactivateVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"0b02eb09-bc23-4329-b19e-716dcca4e4a6\",\"bpmn-flow-name\":\"DeleteVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null},{\"buildingBlock\":{\"mso-id\":\"bcf95d05-0782-44ff-920d-d5100525c275\",\"bpmn-flow-name\":\"UnassignVfModuleBB\",\"key\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"is-virtual-link\":false,\"virtual-link-key\":null},\"requestId\":\"9c944122-d161-4280-8594-48c06a9d96d5\",\"apiVersion\":\"7\",\"resourceId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"requestAction\":\"deleteInstance\",\"vnfType\":\"\",\"aLaCarte\":true,\"homing\":false,\"workflowResourceIds\":{\"serviceInstanceId\":\"ff9dae72-05bb-4277-ad2b-1b082467c138\",\"vnfId\":\"84a29830-e533-4f20-a838-910c740bf24c\",\"networkId\":\"\",\"volumeGroupId\":\"\",\"vfModuleId\":\"d1d35800-783d-42d3-82f6-d654c5054a6e\",\"networkCollectionId\":null,\"configurationId\":\"10f8a3a3-91bf-4821-9515-c01b2864dff0\",\"instanceGroupId\":\"\"},\"requestDetails\":{\"modelInfo\":{\"modelCustomizationName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelInvariantId\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelType\":\"vfModule\",\"modelId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\",\"modelVersion\":\"1\",\"modelCustomizationUuid\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelVersionId\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelCustomizationId\":\"7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9\",\"modelUuid\":\"00d15ebb-c80e-43c1-80f0-90c40dde70b0\",\"modelInvariantUuid\":\"8028fcc0-96dc-427d-a4de-4536245943da\",\"modelInstanceName\":\"McmrNcUpVnf20191..cr_mccm_fc_base..module-0\"},\"requestInfo\":{\"source\":\"VID\",\"suppressRollback\":false,\"requestorId\":\"pj8646\"},\"cloudConfiguration\":{\"tenantId\":\"e2a6af59d1cb43b2874e943bbbf8470a\",\"cloudOwner\":\"att-nc\",\"lcpCloudRegionId\":\"auk51b\"},\"requestParameters\":{\"testApi\":\"GR_API\"}},\"configurationResourceKeys\":null}]";
-        ObjectMapper om = new ObjectMapper();
-        List<ExecuteBuildingBlock> expectedFlowsToExecute = null;
-        try {
-            ExecuteBuildingBlock[] asArray = om.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
-            expectedFlowsToExecute = Arrays.asList(asArray);
-        } catch (Exception e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
+    public void loadOriginalFlowExecutionPathTest() throws IOException {
+        final String requestId = "123";
+        final String originalRequestId = "originalRequestId";
+        final String flowsToExecuteString = new String(
+                Files.readAllBytes(Paths.get(RESOURCE_PATH + "FlowsToExecute.json")), StandardCharsets.UTF_8);
 
         InfraActiveRequests request = new InfraActiveRequests();
-        request.setRequestId("requestId");
-        request.setOriginalRequestId("originalRequestId");
-        doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(anyString());
-        RequestProcessingData rpd = new RequestProcessingData();
-        rpd.setValue(flowsToExecuteString);
-        doReturn(rpd).when(MOCK_requestsDbClient).getRequestProcessingDataBySoRequestIdAndName(anyString(),
-                anyString());
+        ExecuteBuildingBlock[] expectedFlowsToExecute =
+                mapper.readValue(flowsToExecuteString, ExecuteBuildingBlock[].class);
+
+        request.setRequestId(requestId);
+        request.setOriginalRequestId(originalRequestId);
+        doReturn(request).when(MOCK_requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
+
+        RequestProcessingData requestProcessingData = new RequestProcessingData();
+        requestProcessingData.setValue(flowsToExecuteString);
+        doReturn(requestProcessingData).when(MOCK_requestsDbClient)
+                .getRequestProcessingDataBySoRequestIdAndName(anyString(), anyString());
 
         List<ExecuteBuildingBlock> flowsToExecute = bbInputSetupUtils.loadOriginalFlowExecutionPath(requestId);
-        assertEquals(expectedFlowsToExecute.size(), flowsToExecute.size());
+
+        assertEquals(mapper.writeValueAsString(expectedFlowsToExecute), mapper.writeValueAsString(flowsToExecute));
     }
 
     @Test
@@ -954,11 +799,7 @@
 
     @Test
     public void getRelatedConfigurationByNameFromServiceInstanceNotFoundTest() throws Exception {
-        doReturn(Optional.empty()).when(MOCK_aaiResourcesClient).get(eq(Configurations.class),
-                any(AAIResourceUri.class));
-        Optional<Configuration> actualConfiguration =
-                bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
-        assertEquals(actualConfiguration, Optional.empty());
+        assertEquals(Optional.empty(), bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("", ""));
     }
 
     @Test
@@ -967,40 +808,47 @@
         Configuration configuration = new Configuration();
         configuration.setConfigurationId("id123");
         expected.get().getConfiguration().add(configuration);
+
         doReturn(expected).when(MOCK_aaiResourcesClient).get(eq(Configurations.class), any(AAIResourceUri.class));
         Optional<Configuration> actual =
                 this.bbInputSetupUtils.getRelatedConfigurationByNameFromServiceInstance("id123", "name123");
-        assertEquals(actual.get().getConfigurationId(), expected.get().getConfiguration().get(0).getConfigurationId());
+
+        assertTrue(actual.isPresent());
+        assertEquals(expected.get().getConfiguration().get(0).getConfigurationId(), actual.get().getConfigurationId());
     }
 
     @Test
-    public void existsAAIVfModuleGloballyByNameTest() throws Exception {
+    public void existsAAIVfModuleGloballyByNameTest() {
         AAIResourceUri expectedUri =
                 AAIUriFactory.createNodesUri(AAIObjectPlurals.VF_MODULE).queryParam("vf-module-name", "testVfModule");
         bbInputSetupUtils.existsAAIVfModuleGloballyByName("testVfModule");
+
         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
     }
 
     @Test
-    public void existsAAIConfigurationGloballyByNameTest() throws Exception {
+    public void existsAAIConfigurationGloballyByNameTest() {
         AAIResourceUri expectedUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.CONFIGURATION)
                 .queryParam("configuration-name", "testConfig");
         bbInputSetupUtils.existsAAIConfigurationGloballyByName("testConfig");
+
         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
     }
 
     @Test
-    public void existsAAINetworksGloballyByNameTest() throws Exception {
+    public void existsAAINetworksGloballyByNameTest() {
         AAIResourceUri expectedUri =
                 AAIUriFactory.createResourceUri(AAIObjectPlurals.L3_NETWORK).queryParam("network-name", "testNetwork");
         bbInputSetupUtils.existsAAINetworksGloballyByName("testNetwork");
+
         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
     }
 
     @Test
-    public void existsAAIVolumeGroupGloballyByNameTest() throws Exception {
+    public void existsAAIVolumeGroupGloballyByNameTest() {
         AAIResourceUri expectedUri = AAIUriFactory.createNodesUri(AAIObjectPlurals.VOLUME_GROUP)
                 .queryParam("volume-group-name", "testVoumeGroup");
+
         bbInputSetupUtils.existsAAIVolumeGroupGloballyByName("testVoumeGroup");
         verify(MOCK_aaiResourcesClient, times(1)).exists(expectedUri);
     }
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/FlowsToExecute.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/FlowsToExecute.json
new file mode 100644
index 0000000..fa271b9
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/FlowsToExecute.json
@@ -0,0 +1,292 @@
+[
+  {
+    "buildingBlock": {
+      "mso-id": "2f9ddc4b-4dcf-4129-a35f-be1625ae0176",
+      "bpmn-flow-name": "DeactivateFabricConfigurationBB",
+      "key": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "is-virtual-link": false,
+      "virtual-link-key": null
+    },
+    "requestId": "9c944122-d161-4280-8594-48c06a9d96d5",
+    "apiVersion": "7",
+    "resourceId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+    "requestAction": "deleteInstance",
+    "vnfType": "",
+    "aLaCarte": true,
+    "homing": false,
+    "workflowResourceIds": {
+      "serviceInstanceId": "ff9dae72-05bb-4277-ad2b-1b082467c138",
+      "vnfId": "84a29830-e533-4f20-a838-910c740bf24c",
+      "networkId": "",
+      "volumeGroupId": "",
+      "vfModuleId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+      "networkCollectionId": null,
+      "configurationId": "10f8a3a3-91bf-4821-9515-c01b2864dff0",
+      "instanceGroupId": ""
+    },
+    "requestDetails": {
+      "modelInfo": {
+        "modelCustomizationName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelInvariantId": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelType": "vfModule",
+        "modelId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelVersion": "1",
+        "modelCustomizationUuid": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelVersionId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelCustomizationId": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelUuid": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelInvariantUuid": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelInstanceName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0"
+      },
+      "requestInfo": {
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "pj8646"
+      },
+      "cloudConfiguration": {
+        "tenantId": "e2a6af59d1cb43b2874e943bbbf8470a",
+        "cloudOwner": "att-nc",
+        "lcpCloudRegionId": "auk51b"
+      },
+      "requestParameters": {
+        "testApi": "GR_API"
+      }
+    },
+    "configurationResourceKeys": {
+      "vfModuleCustomizationUUID": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "vnfResourceCustomizationUUID": "a80f05b8-d651-44af-b999-8ed78fb4582f",
+      "cvnfcCustomizationUUID": "69cce457-9ffd-4359-962b-0596a1e83ad1",
+      "vnfcName": "zauk51bmcmr01mcm001"
+    }
+  },
+  {
+    "buildingBlock": {
+      "mso-id": "1ca5584e-38a9-4c3f-a4b4-99b0d42089ba",
+      "bpmn-flow-name": "UnassignFabricConfigurationBB",
+      "key": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "is-virtual-link": false,
+      "virtual-link-key": null
+    },
+    "requestId": "9c944122-d161-4280-8594-48c06a9d96d5",
+    "apiVersion": "7",
+    "resourceId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+    "requestAction": "deleteInstance",
+    "vnfType": "",
+    "aLaCarte": true,
+    "homing": false,
+    "workflowResourceIds": {
+      "serviceInstanceId": "ff9dae72-05bb-4277-ad2b-1b082467c138",
+      "vnfId": "84a29830-e533-4f20-a838-910c740bf24c",
+      "networkId": "",
+      "volumeGroupId": "",
+      "vfModuleId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+      "networkCollectionId": null,
+      "configurationId": "10f8a3a3-91bf-4821-9515-c01b2864dff0",
+      "instanceGroupId": ""
+    },
+    "requestDetails": {
+      "modelInfo": {
+        "modelCustomizationName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelInvariantId": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelType": "vfModule",
+        "modelId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelVersion": "1",
+        "modelCustomizationUuid": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelVersionId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelCustomizationId": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelUuid": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelInvariantUuid": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelInstanceName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0"
+      },
+      "requestInfo": {
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "pj8646"
+      },
+      "cloudConfiguration": {
+        "tenantId": "e2a6af59d1cb43b2874e943bbbf8470a",
+        "cloudOwner": "att-nc",
+        "lcpCloudRegionId": "auk51b"
+      },
+      "requestParameters": {
+        "testApi": "GR_API"
+      }
+    },
+    "configurationResourceKeys": {
+      "vfModuleCustomizationUUID": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "vnfResourceCustomizationUUID": "a80f05b8-d651-44af-b999-8ed78fb4582f",
+      "cvnfcCustomizationUUID": "69cce457-9ffd-4359-962b-0596a1e83ad1",
+      "vnfcName": "zauk51bmcmr01mcm001"
+    }
+  },
+  {
+    "buildingBlock": {
+      "mso-id": "68d16097-4810-477d-803b-8322106106ef",
+      "bpmn-flow-name": "DeactivateVfModuleBB",
+      "key": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "is-virtual-link": false,
+      "virtual-link-key": null
+    },
+    "requestId": "9c944122-d161-4280-8594-48c06a9d96d5",
+    "apiVersion": "7",
+    "resourceId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+    "requestAction": "deleteInstance",
+    "vnfType": "",
+    "aLaCarte": true,
+    "homing": false,
+    "workflowResourceIds": {
+      "serviceInstanceId": "ff9dae72-05bb-4277-ad2b-1b082467c138",
+      "vnfId": "84a29830-e533-4f20-a838-910c740bf24c",
+      "networkId": "",
+      "volumeGroupId": "",
+      "vfModuleId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+      "networkCollectionId": null,
+      "configurationId": "10f8a3a3-91bf-4821-9515-c01b2864dff0",
+      "instanceGroupId": ""
+    },
+    "requestDetails": {
+      "modelInfo": {
+        "modelCustomizationName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelInvariantId": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelType": "vfModule",
+        "modelId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelVersion": "1",
+        "modelCustomizationUuid": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelVersionId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelCustomizationId": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelUuid": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelInvariantUuid": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelInstanceName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0"
+      },
+      "requestInfo": {
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "pj8646"
+      },
+      "cloudConfiguration": {
+        "tenantId": "e2a6af59d1cb43b2874e943bbbf8470a",
+        "cloudOwner": "att-nc",
+        "lcpCloudRegionId": "auk51b"
+      },
+      "requestParameters": {
+        "testApi": "GR_API"
+      }
+    },
+    "configurationResourceKeys": null
+  },
+  {
+    "buildingBlock": {
+      "mso-id": "0b02eb09-bc23-4329-b19e-716dcca4e4a6",
+      "bpmn-flow-name": "DeleteVfModuleBB",
+      "key": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "is-virtual-link": false,
+      "virtual-link-key": null
+    },
+    "requestId": "9c944122-d161-4280-8594-48c06a9d96d5",
+    "apiVersion": "7",
+    "resourceId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+    "requestAction": "deleteInstance",
+    "vnfType": "",
+    "aLaCarte": true,
+    "homing": false,
+    "workflowResourceIds": {
+      "serviceInstanceId": "ff9dae72-05bb-4277-ad2b-1b082467c138",
+      "vnfId": "84a29830-e533-4f20-a838-910c740bf24c",
+      "networkId": "",
+      "volumeGroupId": "",
+      "vfModuleId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+      "networkCollectionId": null,
+      "configurationId": "10f8a3a3-91bf-4821-9515-c01b2864dff0",
+      "instanceGroupId": ""
+    },
+    "requestDetails": {
+      "modelInfo": {
+        "modelCustomizationName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelInvariantId": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelType": "vfModule",
+        "modelId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelVersion": "1",
+        "modelCustomizationUuid": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelVersionId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelCustomizationId": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelUuid": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelInvariantUuid": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelInstanceName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0"
+      },
+      "requestInfo": {
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "pj8646"
+      },
+      "cloudConfiguration": {
+        "tenantId": "e2a6af59d1cb43b2874e943bbbf8470a",
+        "cloudOwner": "att-nc",
+        "lcpCloudRegionId": "auk51b"
+      },
+      "requestParameters": {
+        "testApi": "GR_API"
+      }
+    },
+    "configurationResourceKeys": null
+  },
+  {
+    "buildingBlock": {
+      "mso-id": "bcf95d05-0782-44ff-920d-d5100525c275",
+      "bpmn-flow-name": "UnassignVfModuleBB",
+      "key": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+      "is-virtual-link": false,
+      "virtual-link-key": null
+    },
+    "requestId": "9c944122-d161-4280-8594-48c06a9d96d5",
+    "apiVersion": "7",
+    "resourceId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+    "requestAction": "deleteInstance",
+    "vnfType": "",
+    "aLaCarte": true,
+    "homing": false,
+    "workflowResourceIds": {
+      "serviceInstanceId": "ff9dae72-05bb-4277-ad2b-1b082467c138",
+      "vnfId": "84a29830-e533-4f20-a838-910c740bf24c",
+      "networkId": "",
+      "volumeGroupId": "",
+      "vfModuleId": "d1d35800-783d-42d3-82f6-d654c5054a6e",
+      "networkCollectionId": null,
+      "configurationId": "10f8a3a3-91bf-4821-9515-c01b2864dff0",
+      "instanceGroupId": ""
+    },
+    "requestDetails": {
+      "modelInfo": {
+        "modelCustomizationName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelInvariantId": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelType": "vfModule",
+        "modelId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0",
+        "modelVersion": "1",
+        "modelCustomizationUuid": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelVersionId": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelCustomizationId": "7adc7c29-21a3-40a2-b8b6-5d4ad08b68e9",
+        "modelUuid": "00d15ebb-c80e-43c1-80f0-90c40dde70b0",
+        "modelInvariantUuid": "8028fcc0-96dc-427d-a4de-4536245943da",
+        "modelInstanceName": "McmrNcUpVnf20191..cr_mccm_fc_base..module-0"
+      },
+      "requestInfo": {
+        "source": "VID",
+        "suppressRollback": false,
+        "requestorId": "pj8646"
+      },
+      "cloudConfiguration": {
+        "tenantId": "e2a6af59d1cb43b2874e943bbbf8470a",
+        "cloudOwner": "att-nc",
+        "lcpCloudRegionId": "auk51b"
+      },
+      "requestParameters": {
+        "testApi": "GR_API"
+      }
+    },
+    "configurationResourceKeys": null
+  }
+]
\ No newline at end of file
diff --git a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WaitForPnfReadyBB.bpmn b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WaitForPnfReadyBB.bpmn
index b38ec69..29e2f2b 100644
--- a/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WaitForPnfReadyBB.bpmn
+++ b/bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WaitForPnfReadyBB.bpmn
@@ -8,20 +8,26 @@
     <bpmn:messageFlow id="MessageFlow_1py54jr" sourceRef="UnregisterfromPnfReadyEvent" targetRef="WorkflowMessageServiceForDmaap" />
   </bpmn:collaboration>
   <bpmn:process id="WaitForPnfReadyBB" name="WaitForPnfReadyBB" isExecutable="true">
-    <bpmn:startEvent id="WaitForPnfReady_StartEvent">
-      <bpmn:outgoing>SequenceFlow_1jzs6dp</bpmn:outgoing>
-    </bpmn:startEvent>
+    <bpmn:sequenceFlow id="SequenceFlow_17q5zqe" sourceRef="UpdatePnfOrchestrationStatusToRegistered" targetRef="AaiEntryUpdated" />
+    <bpmn:sequenceFlow id="SequenceFlow_0m2r6ye" sourceRef="UpdatePnfOrchestrationStatusToRegister" targetRef="WaitForDmaapPnfReadyNotification" />
+    <bpmn:sequenceFlow id="SequenceFlow_1miyzfe" sourceRef="UnregisterfromPnfReadyEvent" targetRef="ThrowTimeoutException" />
+    <bpmn:sequenceFlow id="SequenceFlow_0p09qgm" sourceRef="WaitForDmaapPnfReadyNotification" targetRef="UpdatePnfOrchestrationStatusToRegistered" />
+    <bpmn:sequenceFlow id="SequenceFlow_1o8od8e" sourceRef="RegisterForPnfReadyEvent" targetRef="UpdatePnfOrchestrationStatusToRegister" />
+    <bpmn:sequenceFlow id="SequenceFlow_1kc34bc" sourceRef="WaitForDmaapTimeout" targetRef="UnregisterfromPnfReadyEvent" />
+    <bpmn:sequenceFlow id="SequenceFlow_1jzs6dp" sourceRef="WaitForPnfReady_StartEvent" targetRef="RegisterForPnfReadyEvent" />
     <bpmn:serviceTask id="RegisterForPnfReadyEvent" name="Register for Pnf Ready Event" camunda:delegateExpression="${RegisterForPnfReadyEvent}">
       <bpmn:incoming>SequenceFlow_1jzs6dp</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1o8od8e</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:sequenceFlow id="SequenceFlow_1miyzfe" sourceRef="UnregisterfromPnfReadyEvent" targetRef="ThrowTimeoutException" />
-    <bpmn:sequenceFlow id="SequenceFlow_0p09qgm" sourceRef="WaitForDmaapPnfReadyNotification" targetRef="AaiEntryUpdated" />
-    <bpmn:sequenceFlow id="SequenceFlow_1o8od8e" sourceRef="RegisterForPnfReadyEvent" targetRef="WaitForDmaapPnfReadyNotification" />
-    <bpmn:sequenceFlow id="SequenceFlow_1kc34bc" sourceRef="WaitForDmaapTimeout" targetRef="UnregisterfromPnfReadyEvent" />
-    <bpmn:sequenceFlow id="SequenceFlow_1jzs6dp" sourceRef="WaitForPnfReady_StartEvent" targetRef="RegisterForPnfReadyEvent" />
-    <bpmn:receiveTask id="WaitForDmaapPnfReadyNotification" name="Wait for DMAAP pnf-ready notification" messageRef="Message_13h1tlo">
+    <bpmn:startEvent id="WaitForPnfReady_StartEvent">
+      <bpmn:outgoing>SequenceFlow_1jzs6dp</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:serviceTask id="UpdatePnfOrchestrationStatusToRegister" name="Update Pnf Orchestration Status to Register" camunda:expression="${AAIUpdateTasks.updateOrchestrationStatusRegisterPnf(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
       <bpmn:incoming>SequenceFlow_1o8od8e</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0m2r6ye</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:receiveTask id="WaitForDmaapPnfReadyNotification" name="Wait for DMAAP pnf-ready notification" messageRef="Message_13h1tlo">
+      <bpmn:incoming>SequenceFlow_0m2r6ye</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0p09qgm</bpmn:outgoing>
     </bpmn:receiveTask>
     <bpmn:boundaryEvent id="WaitForDmaapTimeout" name="Timeout" attachedToRef="WaitForDmaapPnfReadyNotification">
@@ -30,17 +36,21 @@
         <bpmn:timeDuration xsi:type="bpmn:tFormalExpression">#{timeoutForPnfEntryNotification}</bpmn:timeDuration>
       </bpmn:timerEventDefinition>
     </bpmn:boundaryEvent>
+    <bpmn:serviceTask id="UpdatePnfOrchestrationStatusToRegistered" name="Update Pnf Orchestration Status to Registered" camunda:expression="${AAIUpdateTasks.updateOrchestrationStatusRegisteredPnf(InjectExecution.execute(execution, execution.getVariable(&#34;gBuildingBlockExecution&#34;)))}">
+      <bpmn:incoming>SequenceFlow_0p09qgm</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_17q5zqe</bpmn:outgoing>
+    </bpmn:serviceTask>
     <bpmn:serviceTask id="UnregisterfromPnfReadyEvent" name="Unregister from Pnf Ready Event" camunda:delegateExpression="${CancelDmaapSubscription}">
       <bpmn:incoming>SequenceFlow_1kc34bc</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1miyzfe</bpmn:outgoing>
     </bpmn:serviceTask>
+    <bpmn:endEvent id="AaiEntryUpdated" name="AAI entry updated">
+      <bpmn:incoming>SequenceFlow_17q5zqe</bpmn:incoming>
+    </bpmn:endEvent>
     <bpmn:endEvent id="ThrowTimeoutException" name="Throw timeout exception">
       <bpmn:incoming>SequenceFlow_1miyzfe</bpmn:incoming>
       <bpmn:errorEventDefinition errorRef="Error_1" />
     </bpmn:endEvent>
-    <bpmn:endEvent id="AaiEntryUpdated" name="AAI entry updated">
-      <bpmn:incoming>SequenceFlow_0p09qgm</bpmn:incoming>
-    </bpmn:endEvent>
     <bpmn:textAnnotation id="TextAnnotation_1eyzes8">
       <bpmn:text>Inputs:
  - pnf name - String</bpmn:text>
@@ -52,12 +62,12 @@
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
     <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1d0w8lf">
       <bpmndi:BPMNShape id="Participant_1egg397_di" bpmnElement="WaitForPnfReadyBB_ID" isHorizontal="true">
-        <dc:Bounds x="160" y="50" width="810" height="400" />
+        <dc:Bounds x="160" y="50" width="1040" height="400" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_0k52gr7_di" bpmnElement="AaiEntryUpdated">
-        <dc:Bounds x="882" y="189" width="36" height="36" />
+        <dc:Bounds x="1112" y="189" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="858" y="230" width="88" height="14" />
+          <dc:Bounds x="1088" y="230" width="88" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="StartEvent_0j5ok9h_di" bpmnElement="WaitForPnfReady_StartEvent">
@@ -67,12 +77,12 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="Participant_0vmrrhf_di" bpmnElement="WorkflowMessageServiceForDmaap" isHorizontal="true">
-        <dc:Bounds x="340" y="490" width="463" height="60" />
+        <dc:Bounds x="340" y="490" width="690" height="60" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="EndEvent_0wbx6tt_di" bpmnElement="ThrowTimeoutException">
-        <dc:Bounds x="882" y="322" width="36" height="36" />
+        <dc:Bounds x="1112" y="322" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="875" y="359" width="70" height="27" />
+          <dc:Bounds x="1105" y="359" width="70" height="27" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="TextAnnotation_1eyzes8_di" bpmnElement="TextAnnotation_1eyzes8">
@@ -83,32 +93,32 @@
         <di:waypoint x="237" y="109" />
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_1vrcp2d_di" bpmnElement="MessageFlow_1vrcp2d">
-        <di:waypoint x="582" y="490" />
-        <di:waypoint x="582" y="247" />
+        <di:waypoint x="772" y="490" />
+        <di:waypoint x="772" y="247" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="996" y="380" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="BoundaryEvent_15eo1k9_di" bpmnElement="WaitForDmaapTimeout">
-        <dc:Bounds x="596" y="229" width="36" height="36" />
+        <dc:Bounds x="786" y="229" width="36" height="36" />
         <bpmndi:BPMNLabel>
-          <dc:Bounds x="639" y="240" width="40" height="14" />
+          <dc:Bounds x="829" y="240" width="40" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1kc34bc_di" bpmnElement="SequenceFlow_1kc34bc">
-        <di:waypoint x="614" y="265" />
-        <di:waypoint x="614" y="340" />
-        <di:waypoint x="710" y="340" />
+        <di:waypoint x="804" y="265" />
+        <di:waypoint x="804" y="340" />
+        <di:waypoint x="910" y="340" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1028" y="309" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ReceiveTask_1sfysua_di" bpmnElement="WaitForDmaapPnfReadyNotification">
-        <dc:Bounds x="530" y="167" width="100" height="80" />
+        <dc:Bounds x="720" y="167" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0p09qgm_di" bpmnElement="SequenceFlow_0p09qgm">
-        <di:waypoint x="630" y="207" />
-        <di:waypoint x="882" y="207" />
+        <di:waypoint x="820" y="207" />
+        <di:waypoint x="910" y="207" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1106.5" y="187" width="90" height="10" />
         </bpmndi:BPMNLabel>
@@ -131,26 +141,40 @@
         <dc:Bounds x="340" y="167" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1miyzfe_di" bpmnElement="SequenceFlow_1miyzfe">
-        <di:waypoint x="810" y="340" />
-        <di:waypoint x="882" y="340" />
+        <di:waypoint x="1010" y="340" />
+        <di:waypoint x="1112" y="340" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1233.5" y="343" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_1py54jr_di" bpmnElement="MessageFlow_1py54jr">
-        <di:waypoint x="760" y="380" />
-        <di:waypoint x="760" y="490" />
+        <di:waypoint x="960" y="380" />
+        <di:waypoint x="960" y="490" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1165" y="458" width="90" height="10" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ServiceTask_12j7hox_di" bpmnElement="UnregisterfromPnfReadyEvent">
-        <dc:Bounds x="710" y="300" width="100" height="80" />
+        <dc:Bounds x="910" y="300" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1jzs6dp_di" bpmnElement="SequenceFlow_1jzs6dp">
         <di:waypoint x="255" y="207" />
         <di:waypoint x="340" y="207" />
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_1kiymc9_di" bpmnElement="UpdatePnfOrchestrationStatusToRegister">
+        <dc:Bounds x="530" y="167" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0m2r6ye_di" bpmnElement="SequenceFlow_0m2r6ye">
+        <di:waypoint x="630" y="207" />
+        <di:waypoint x="720" y="207" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_17q5zqe_di" bpmnElement="SequenceFlow_17q5zqe">
+        <di:waypoint x="1010" y="207" />
+        <di:waypoint x="1112" y="207" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ServiceTask_1e3i8pf_di" bpmnElement="UpdatePnfOrchestrationStatusToRegistered">
+        <dc:Bounds x="910" y="167" width="100" height="80" />
+      </bpmndi:BPMNShape>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn:definitions>
diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
index f1fbe54..dab3593 100644
--- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
+++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasks.java
@@ -118,18 +118,35 @@
         }
     }
 
-
     /**
      * BPMN access method to update status of Pnf to Active in AAI
      *
      * @param execution
      */
     public void updateOrchestrationStatusActivePnf(BuildingBlockExecution execution) {
+        updateOrchestrationStatusForPnf(execution, OrchestrationStatus.ACTIVE);
+    }
+
+    /**
+     * BPMN access method to update status of Pnf to Register in AAI
+     */
+    public void updateOrchestrationStatusRegisterPnf(BuildingBlockExecution execution) {
+        updateOrchestrationStatusForPnf(execution, OrchestrationStatus.REGISTER);
+    }
+
+    /**
+     * BPMN access method to update status of Pnf to Registered in AAI
+     */
+    public void updateOrchestrationStatusRegisteredPnf(BuildingBlockExecution execution) {
+        updateOrchestrationStatusForPnf(execution, OrchestrationStatus.REGISTERED);
+    }
+
+    private void updateOrchestrationStatusForPnf(BuildingBlockExecution execution, OrchestrationStatus status) {
         try {
             Pnf pnf = extractPojosForBB.extractByKey(execution, ResourceKey.PNF);
-            aaiPnfResources.updateOrchestrationStatusPnf(pnf, OrchestrationStatus.ACTIVE);
+            aaiPnfResources.updateOrchestrationStatusPnf(pnf, status);
         } catch (Exception ex) {
-            logger.error("Exception occurred in AAIUpdateTasks updateOrchestrationStatusActivePnf", ex);
+            logger.error("Exception occurred in AAIUpdateTasks during update Orchestration Status to {}", status, ex);
             exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
         }
     }
diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
index ae6dde6..19877aa 100644
--- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
+++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/aai/tasks/AAIUpdateTasksTest.java
@@ -161,6 +161,26 @@
     }
 
     @Test
+    public void updateOrchestrationStatusRegisterPnfTest() throws Exception {
+        Pnf pnf = preparePnfAndExtractForPnf();
+        doNothing().when(aaiPnfResources).updateOrchestrationStatusPnf(pnf, OrchestrationStatus.REGISTER);
+
+        aaiUpdateTasks.updateOrchestrationStatusRegisterPnf(execution);
+
+        verify(aaiPnfResources, times(1)).updateOrchestrationStatusPnf(pnf, OrchestrationStatus.REGISTER);
+    }
+
+    @Test
+    public void updateOrchestrationStatusRegisteredPnfTest() throws Exception {
+        Pnf pnf = preparePnfAndExtractForPnf();
+        doNothing().when(aaiPnfResources).updateOrchestrationStatusPnf(pnf, OrchestrationStatus.REGISTERED);
+
+        aaiUpdateTasks.updateOrchestrationStatusRegisteredPnf(execution);
+
+        verify(aaiPnfResources, times(1)).updateOrchestrationStatusPnf(pnf, OrchestrationStatus.REGISTERED);
+    }
+
+    @Test
     public void updateOrchestrationStatusAssignedVnfTest() throws Exception {
         doNothing().when(aaiVnfResources).updateOrchestrationStatusVnf(genericVnf, OrchestrationStatus.ASSIGNED);
 
diff --git a/common/pom.xml b/common/pom.xml
index 3f029bc..51415af 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -59,7 +59,7 @@
     <dependency>
       <groupId>org.onap.aai.schema-service</groupId>
       <artifactId>aai-schema</artifactId>
-      <version>1.6.2-SNAPSHOT</version>
+      <version>1.6.3-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.modelmapper</groupId>
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
index 483ac47..3104c84 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Network.java
@@ -32,9 +32,14 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.filters.ResponseUpdater;
 import org.onap.so.apihandlerinfra.Action;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
+import org.onap.so.apihandlerinfra.infra.rest.exception.NoRecipeException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnectionException;
 import org.onap.so.apihandlerinfra.infra.rest.handler.NetworkRestHandler;
 import org.onap.so.db.catalog.beans.Recipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
@@ -71,14 +76,15 @@
     public Response deleteNetworkInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId,
             @PathParam("networkInstanceId") String networkInstanceId, @Context ContainerRequestContext requestContext)
-            throws Exception {
-        InfraActiveRequests currentRequest = null;
+            throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException,
+            ValidateException {
+
         String requestId = networkRestHandler.getRequestId(requestContext);
         String requestorId = "Unknown";
         String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
         String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
-        currentRequest = networkRestHandler.createInfraActiveRequestForDelete(requestId, serviceInstanceId,
-                networkInstanceId, requestorId, source, requestURI);
+        InfraActiveRequests currentRequest = networkRestHandler.createInfraActiveRequestForDelete(requestId,
+                serviceInstanceId, networkInstanceId, requestorId, source, requestURI);
         ServiceInstancesRequest request = requestBuilder.buildNetworkDeleteRequest(networkInstanceId);
         networkRestHandler.saveInstanceName(request, currentRequest);
         networkRestHandler.checkDuplicateRequest(serviceInstanceId, networkInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
index 135667d..7aaf470 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/ServiceInstance.java
@@ -32,9 +32,14 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.filters.ResponseUpdater;
 import org.onap.so.apihandlerinfra.Action;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
+import org.onap.so.apihandlerinfra.infra.rest.exception.NoRecipeException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnectionException;
 import org.onap.so.apihandlerinfra.infra.rest.handler.ServiceInstanceRestHandler;
 import org.onap.so.db.catalog.beans.Recipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
@@ -70,14 +75,15 @@
     @Transactional
     public Response deleteServiceInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @Context ContainerRequestContext requestContext)
-            throws Exception {
-        InfraActiveRequests currentRequest = null;
+            throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException,
+            ValidateException {
+
         String requestId = requestHandler.getRequestId(requestContext);
         String requestorId = "Unknown";
         String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
         String requestURI = requestContext.getUriInfo().getAbsolutePath().toString();
-        currentRequest = requestHandler.createInfraActiveRequestForDelete(requestId, serviceInstanceId, requestorId,
-                source, requestURI);
+        InfraActiveRequests currentRequest = requestHandler.createInfraActiveRequestForDelete(requestId,
+                serviceInstanceId, requestorId, source, requestURI);
         ServiceInstancesRequest request = requestBuilder.buildServiceDeleteRequest(serviceInstanceId);
         requestHandler.saveInstanceName(request, currentRequest);
         requestHandler.checkDuplicateRequest(serviceInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
index 4a86d94..ddbced9 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/VfModules.java
@@ -9,9 +9,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -32,9 +32,14 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.filters.ResponseUpdater;
 import org.onap.so.apihandlerinfra.Action;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
+import org.onap.so.apihandlerinfra.infra.rest.exception.NoRecipeException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnectionException;
 import org.onap.so.apihandlerinfra.infra.rest.handler.VFModuleRestHandler;
 import org.onap.so.db.catalog.beans.Recipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
@@ -72,15 +77,15 @@
     public Response deleteVfModuleInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
             @PathParam("vfmoduleInstanceId") String vfmoduleInstanceId, @Context ContainerRequestContext requestContext)
-            throws Exception {
-        InfraActiveRequests currentRequest = null;
+            throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException,
+            ValidateException {
 
         String requestId = restHandler.getRequestId(requestContext);
         String requestorId = "Unknown";
         String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
         String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
-        currentRequest = restHandler.createInfraActiveRequestForDelete(requestId, vfmoduleInstanceId, serviceInstanceId,
-                vnfInstanceId, requestorId, source, requestURL);
+        InfraActiveRequests currentRequest = restHandler.createInfraActiveRequestForDelete(requestId,
+                vfmoduleInstanceId, serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
         ServiceInstancesRequest request =
                 requestBuilder.buildVFModuleDeleteRequest(vnfInstanceId, vfmoduleInstanceId, ModelType.vfModule);
         restHandler.saveInstanceName(request, currentRequest);
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
index edb0908..68e6eb5 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Vnf.java
@@ -32,8 +32,12 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.filters.ResponseUpdater;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
+import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnectionException;
 import org.onap.so.apihandlerinfra.infra.rest.handler.VnfRestHandler;
 import org.onap.so.db.catalog.beans.Recipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
@@ -69,14 +73,15 @@
     @Transactional
     public Response deleteVnfInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
-            @Context ContainerRequestContext requestContext) throws Exception {
-        InfraActiveRequests currentRequest = null;
+            @Context ContainerRequestContext requestContext)
+            throws AAIEntityNotFound, JsonProcessingException, WorkflowEngineConnectionException, ValidateException {
+
         String requestId = vnfRestHandler.getRequestId(requestContext);
         String requestorId = "Unknown";
         String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
         String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
-        currentRequest = vnfRestHandler.createInfraActiveRequestForDelete(requestId, serviceInstanceId, vnfInstanceId,
-                requestorId, source, requestURL);
+        InfraActiveRequests currentRequest = vnfRestHandler.createInfraActiveRequestForDelete(requestId,
+                serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
         ServiceInstancesRequest request = requestBuilder.buildVnfDeleteRequest(vnfInstanceId);
         vnfRestHandler.saveInstanceName(request, currentRequest);
         vnfRestHandler.checkDuplicateRequest(serviceInstanceId, vnfInstanceId,
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
index 3154c86..b842580 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/Volumes.java
@@ -32,9 +32,14 @@
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.filters.ResponseUpdater;
 import org.onap.so.apihandlerinfra.Action;
+import org.onap.so.apihandlerinfra.exceptions.ValidateException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
+import org.onap.so.apihandlerinfra.infra.rest.exception.NoRecipeException;
+import org.onap.so.apihandlerinfra.infra.rest.exception.WorkflowEngineConnectionException;
 import org.onap.so.apihandlerinfra.infra.rest.handler.VFModuleRestHandler;
 import org.onap.so.apihandlerinfra.infra.rest.handler.VolumeRestHandler;
 import org.onap.so.db.catalog.beans.Recipe;
@@ -76,14 +81,15 @@
     public Response deleteVfModuleInstance(@PathParam("version") String version,
             @PathParam("serviceInstanceId") String serviceInstanceId, @PathParam("vnfInstanceId") String vnfInstanceId,
             @PathParam("volumeGroupInstanceId") String volumeGroupId, @Context ContainerRequestContext requestContext)
-            throws Exception {
-        InfraActiveRequests currentRequest = null;
+            throws AAIEntityNotFound, NoRecipeException, JsonProcessingException, WorkflowEngineConnectionException,
+            ValidateException {
+
         String requestId = volumeRestHandler.getRequestId(requestContext);
         String requestorId = "Unknown";
         String source = MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME);
         String requestURL = requestContext.getUriInfo().getAbsolutePath().toString();
-        currentRequest = volumeRestHandler.createInfraActiveRequestForDelete(requestId, volumeGroupId,
-                serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
+        InfraActiveRequests currentRequest = volumeRestHandler.createInfraActiveRequestForDelete(requestId,
+                volumeGroupId, serviceInstanceId, vnfInstanceId, requestorId, source, requestURL);
         ServiceInstancesRequest request = requestBuilder.buildVolumeGroupDeleteRequest(vnfInstanceId, volumeGroupId);
         volumeRestHandler.saveInstanceName(request, currentRequest);
         volumeRestHandler.checkDuplicateRequest(serviceInstanceId, vnfInstanceId, volumeGroupId,
diff --git a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
index 9691eff..435c3a7 100644
--- a/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
+++ b/mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/OrchestrationStatus.java
@@ -33,7 +33,9 @@
     PRECREATED("PreCreated", "pre.?created"),
     CONFIGASSIGNED("ConfigAssigned", "config.?assigned"),
     CONFIGURE("Configure", "configure"),
-    CONFIGURED("Configured", "configured");
+    CONFIGURED("Configured", "configured"),
+    REGISTER("Register", "register"),
+    REGISTERED("Registered", "registered");
 
     private final String name;
     private final String fuzzyMatcher;