diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
index 8f8cf08..1a95aa0 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/E2EServiceInstances.java
@@ -58,10 +58,10 @@
 import org.onap.so.db.catalog.beans.ServiceRecipe;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.OperationStatus;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoAlarmLogger;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
 import org.onap.so.serviceinstancebeans.RequestDetails;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java
index 1a1b45a..753e712 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/MsoRequest.java
@@ -62,10 +62,11 @@
 import org.onap.so.apihandlerinfra.vnfbeans.VnfInputs;
 import org.onap.so.apihandlerinfra.vnfbeans.VnfRequest;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
+import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.InstanceDirection;
 import org.onap.so.serviceinstancebeans.ModelInfo;
@@ -741,4 +742,4 @@
 		return vnfType;
 
 	}
-}
\ No newline at end of file
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
index 753b4c4..50d2639 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
@@ -23,6 +23,7 @@
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -48,11 +49,12 @@
 import org.onap.so.apihandlerinfra.logging.AlarmLoggerInfo;
 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
 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.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoAlarmLogger;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.GetOrchestrationListResponse;
 import org.onap.so.serviceinstancebeans.GetOrchestrationResponse;
 import org.onap.so.serviceinstancebeans.InstanceReferences;
@@ -97,10 +99,11 @@
 		GetOrchestrationResponse orchestrationResponse = new GetOrchestrationResponse();
 
 
-		InfraActiveRequests requestDB = null;
-
+		InfraActiveRequests infraActiveRequest = null;
+		List<org.onap.so.db.request.beans.RequestProcessingData> requestProcessingData = null;
 		try {
-			requestDB = requestsDbClient.getInfraActiveRequestbyRequestId(requestId);
+			infraActiveRequest = requestsDbClient.getInfraActiveRequestbyRequestId(requestId);
+	        requestProcessingData = requestsDbClient.getRequestProcessingDataBySoRequestId(requestId);
 
 		} catch (Exception e) {
 		    msoLogger.error(e);
@@ -115,8 +118,8 @@
 			throw validateException;
 
 		}
-
-        if(requestDB == null) {
+		
+        if(infraActiveRequest == null) {
 
             ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, MsoLogger.ErrorCode.BusinessProcesssError).build();
 
@@ -126,8 +129,11 @@
 
             throw validateException;
         }
-
-        Request request = mapInfraActiveRequestToRequest(requestDB);
+        
+        Request request = mapInfraActiveRequestToRequest(infraActiveRequest);
+        if(!requestProcessingData.isEmpty()){
+            request.setRequestProcessingData(mapRequestProcessingData(requestProcessingData));
+        }
 		request.setRequestId(requestId);
         orchestrationResponse.setRequest(request);
         
@@ -171,8 +177,12 @@
 		List<RequestList> requestLists = new ArrayList<>();
 		
 		for(InfraActiveRequests infraActive : activeRequests){
+			List<RequestProcessingData> requestProcessingData = requestsDbClient.getRequestProcessingDataBySoRequestId(infraActive.getRequestId());
 			RequestList requestList = new RequestList();
 			Request request = mapInfraActiveRequestToRequest(infraActive);
+			if(!requestProcessingData.isEmpty()){
+				request.setRequestProcessingData(mapRequestProcessingData(requestProcessingData));
+	        }
 			requestList.setRequest(request);
 			requestLists.add(requestList);
 		}
@@ -337,4 +347,46 @@
 
        return request;
    }
+   
+   public List<org.onap.so.serviceinstancebeans.RequestProcessingData> mapRequestProcessingData(List<org.onap.so.db.request.beans.RequestProcessingData> processingData){
+	   List<org.onap.so.serviceinstancebeans.RequestProcessingData> addedRequestProcessingData = new ArrayList<>();
+	   org.onap.so.serviceinstancebeans.RequestProcessingData finalProcessingData = new org.onap.so.serviceinstancebeans.RequestProcessingData();
+	   String currentGroupingId = null;
+	   HashMap<String, String> tempMap = new HashMap<>();
+	   List<HashMap<String, String>> tempList = new ArrayList<>();
+	   for(RequestProcessingData data : processingData){
+		   String groupingId = data.getGroupingId();
+		   String tag = data.getTag();
+		   if(currentGroupingId == null || !currentGroupingId.equals(groupingId)){
+			   if(!tempMap.isEmpty()){
+				   tempList.add(tempMap);
+				   finalProcessingData.setDataPairs(tempList);
+				   addedRequestProcessingData.add(finalProcessingData);
+			   }
+			   finalProcessingData = new org.onap.so.serviceinstancebeans.RequestProcessingData();
+			   if(groupingId != null){
+				   finalProcessingData.setGroupingId(groupingId);
+			   }
+			   if(tag != null){
+				   finalProcessingData.setTag(tag);
+			   }
+			   currentGroupingId = groupingId;
+			   tempMap = new HashMap<>();
+			   tempList = new ArrayList<>();
+			   if(data.getName() != null && data.getValue() != null){
+				   tempMap.put(data.getName(), data.getValue());
+			   }
+		   }else{
+			   if(data.getName() != null && data.getValue() != null){
+				   tempMap.put(data.getName(), data.getValue());
+			   }
+		   }
+	   }
+	   if(tempMap.size() > 0){
+		   tempList.add(tempMap);
+		   finalProcessingData.setDataPairs(tempList);
+	   }
+	   addedRequestProcessingData.add(finalProcessingData);
+	   return addedRequestProcessingData;
+   }
  }
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
index a7dac34..672ab13 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/ServiceInstances.java
@@ -58,10 +58,10 @@
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
@@ -1656,4 +1656,4 @@
 			infraActiveRequestsClient.save(aq);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
index cfe32a3..d743c44 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudOrchestration.java
@@ -40,7 +40,6 @@
 import org.apache.http.HttpStatus;
 import org.onap.so.apihandler.common.ErrorNumbers;
 import org.onap.so.apihandlerinfra.Constants;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.apihandlerinfra.Status;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.DuplicateRequestException;
@@ -51,6 +50,7 @@
 import org.onap.so.apihandlerinfra.tenantisolationbeans.RequestReferences;
 import org.onap.so.apihandlerinfra.tenantisolationbeans.TenantSyncResponse;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
@@ -237,4 +237,4 @@
 	private String getRequestId(ContainerRequestContext requestContext) {
 		return requestContext.getProperty("requestId").toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
index 3b7a326..a35f40b 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestration.java
@@ -44,7 +44,6 @@
 import org.onap.so.apihandler.common.ResponseBuilder;
 import org.onap.so.apihandlerinfra.Constants;
 import org.onap.so.apihandlerinfra.Messages;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
 import org.onap.so.apihandlerinfra.logging.AlarmLoggerInfo;
@@ -56,6 +55,7 @@
 import org.onap.so.apihandlerinfra.tenantisolationbeans.RequestDetails;
 import org.onap.so.apihandlerinfra.tenantisolationbeans.RequestStatus;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoAlarmLogger;
@@ -294,4 +294,4 @@
 		return request;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/TenantIsolationRequest.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/TenantIsolationRequest.java
index b13008b..855a543 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/TenantIsolationRequest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/TenantIsolationRequest.java
@@ -30,7 +30,6 @@
 
 import org.apache.commons.lang3.StringUtils;
 import org.onap.so.apihandlerinfra.Constants;
-import org.onap.so.requestsdb.client.RequestsDbClient;
 import org.onap.so.apihandlerinfra.Status;
 import org.onap.so.apihandlerinfra.tenantisolationbeans.Action;
 import org.onap.so.apihandlerinfra.tenantisolationbeans.Manifest;
@@ -44,6 +43,7 @@
 import org.onap.so.apihandlerinfra.tenantisolationbeans.ServiceModelList;
 import org.onap.so.apihandlerinfra.vnfbeans.RequestStatusType;
 import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.exceptions.ValidationException;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.logger.MsoLogger;
@@ -384,4 +384,4 @@
 	public void setOperationalEnvironmentId(String operationalEnvironmentId) {
 		this.operationalEnvironmentId = operationalEnvironmentId;
 	}
-}
\ No newline at end of file
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfOperationalEnvironment.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfOperationalEnvironment.java
index e89b5c8..ac9a000 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfOperationalEnvironment.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfOperationalEnvironment.java
@@ -27,7 +27,7 @@
 import org.apache.http.HttpStatus;
 import org.json.JSONObject;
 import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.requestsdb.client.RequestsDbClient;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfStatusOperationalEnvironment.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfStatusOperationalEnvironment.java
index 6eb5157..66cfd34 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfStatusOperationalEnvironment.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/tenantisolation/process/ActivateVnfStatusOperationalEnvironment.java
@@ -28,7 +28,7 @@
 import org.apache.http.HttpStatus;
 import org.json.JSONObject;
 import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.requestsdb.client.RequestsDbClient;
+import org.onap.so.db.request.client.RequestsDbClient;
 import org.onap.so.apihandlerinfra.exceptions.ApiException;
 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
 import org.onap.so.apihandlerinfra.logging.ErrorLoggerInfo;
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
index 5d6aa43..76d4b48 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ManualTasksTest.java
@@ -39,6 +39,7 @@
 import org.apache.http.HttpStatus;
 import org.apache.log4j.MDC;
 import org.junit.Test;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandlerinfra.tasksbeans.RequestDetails;
 import org.onap.so.apihandlerinfra.tasksbeans.RequestInfo;
 import org.onap.so.apihandlerinfra.tasksbeans.TaskRequestReference;
@@ -110,8 +111,8 @@
                     logEvent.getMarker().getName().equals("ENTRY")
                     ){
                 Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                assertNotNull(mdc.get(MsoLogger.BEGINTIME));
-                assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));               
                 assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
                 assertEquals("tasks/v1/55/complete",mdc.get(MsoLogger.SERVICE_NAME));
@@ -119,9 +120,9 @@
             }else if(logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging") &&
                     logEvent.getMarker().getName().equals("EXIT")){
                 Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                assertNotNull(mdc.get(MsoLogger.BEGINTIME));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(MsoLogger.ENDTIME));
-                assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));
                 assertEquals("202",mdc.get(MsoLogger.RESPONSECODE));
                 assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
index 582bc12..9df66ed 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsTest.java
@@ -20,28 +20,18 @@
 
 package org.onap.so.apihandlerinfra;
 
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.http.HttpStatus;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.onap.so.apihandler.common.ErrorNumbers;
-import org.onap.so.db.request.beans.InfraActiveRequests;
-import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository;
-import org.onap.so.exceptions.ValidationException;
-import org.onap.so.requestsdb.client.RequestsDbClient;
-import org.onap.so.serviceinstancebeans.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.util.UriComponentsBuilder;
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.any;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalToJson;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
+import static com.shazam.shazamcrest.MatcherAssert.assertThat;
+import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
+import static org.junit.Assert.assertEquals;
 
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -51,10 +41,35 @@
 import java.util.List;
 import java.util.Map;
 
-import static com.github.tomakehurst.wiremock.client.WireMock.*;
-import static com.shazam.shazamcrest.MatcherAssert.assertThat;
-import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
-import static org.junit.Assert.assertEquals;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.http.HttpStatus;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.onap.so.apihandler.common.ErrorNumbers;
+import org.onap.so.db.request.beans.InfraActiveRequests;
+import org.onap.so.db.request.client.RequestsDbClient;
+import org.onap.so.db.request.data.repository.InfraActiveRequestsRepository;
+import org.onap.so.exceptions.ValidationException;
+import org.onap.so.serviceinstancebeans.GetOrchestrationListResponse;
+import org.onap.so.serviceinstancebeans.GetOrchestrationResponse;
+import org.onap.so.serviceinstancebeans.Request;
+import org.onap.so.serviceinstancebeans.RequestError;
+import org.onap.so.serviceinstancebeans.RequestProcessingData;
+import org.onap.so.serviceinstancebeans.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 public class OrchestrationRequestsTest extends BaseTest {
     @Autowired
@@ -62,6 +77,9 @@
 
     @Autowired
     private RequestsDbClient requestsDbClient;
+    
+    @Autowired 
+    private OrchestrationRequests orchReq;
 
     private static final String CHECK_HTML = "<!DOCTYPE html><html><head><meta charset=\"ISO-8859-1\"><title></title></head><body></body></html>";
     private static final GetOrchestrationListResponse ORCHESTRATION_LIST = generateOrchestrationList();
@@ -162,9 +180,14 @@
         List<String> values = new ArrayList<>();
         values.add("EQUALS");
         values.add("vfModule");
+        
+        ObjectMapper mapper = new ObjectMapper();
+        GetOrchestrationListResponse testResponse = mapper.readValue(new File("src/test/resources/OrchestrationRequest/OrchestrationFilterResponse.json"),
+                GetOrchestrationListResponse.class);
 
         Map<String, List<String>> orchestrationMap = new HashMap<>();
         orchestrationMap.put("modelType", values);
+        List<GetOrchestrationResponse> testResponses = new ArrayList<>();
 
         List<InfraActiveRequests> requests = requestsDbClient.getOrchestrationFiltersFromInfraActive(orchestrationMap);
         HttpEntity<Request> entity = new HttpEntity<Request>(null, headers);
@@ -175,8 +198,11 @@
 
         ResponseEntity<GetOrchestrationListResponse> response = restTemplate.exchange(builder.toUriString(),
                 HttpMethod.GET, entity, GetOrchestrationListResponse.class);
+        assertThat(response.getBody(),
+                sameBeanAs(testResponse).ignoring("requestList.request.startTime").ignoring("requestList.request.requestStatus.finishTime"));
         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
         assertEquals(requests.size(), response.getBody().getRequestList().size());
+        
     }
 
     @Test
@@ -334,12 +360,48 @@
         assertEquals("7.0.0", response.getHeaders().get("X-LatestVersion").get(0));
         assertEquals("requestId", response.getHeaders().get("X-TransactionID").get(0));
     }
+    @Test
+    public void mapRequestProcessingDataTest() throws JsonParseException, JsonMappingException, IOException{
+    	RequestProcessingData entry = new RequestProcessingData();
+    	RequestProcessingData secondEntry = new RequestProcessingData();
+    	List<HashMap<String, String>> expectedList = new ArrayList<>();
+    	HashMap<String, String> expectedMap = new HashMap<>();
+    	List<HashMap<String, String>> secondExpectedList = new ArrayList<>();
+    	HashMap<String, String> secondExpectedMap = new HashMap<>();
+    	List<RequestProcessingData> expectedDataList = new ArrayList<>();
+    	entry.setGroupingId("7d2e8c07-4d10-456d-bddc-37abf38ca714");
+    	entry.setTag("pincFabricConfigRequest");
+    	expectedMap.put("requestAction", "assign");
+    	expectedMap.put("pincFabricId", "testId");
+    	expectedList.add(expectedMap);
+    	entry.setDataPairs(expectedList);
+    	secondEntry.setGroupingId("7d2e8c07-4d10-456d-bddc-37abf38ca715");
+    	secondEntry.setTag("pincFabricConfig");
+    	secondExpectedMap.put("requestAction", "unassign");
+    	secondExpectedList.add(secondExpectedMap);
+    	secondEntry.setDataPairs(secondExpectedList);
+    	expectedDataList.add(entry);
+    	expectedDataList.add(secondEntry);
+    	
+    	List<org.onap.so.db.request.beans.RequestProcessingData> processingData = new ArrayList<>(); 
+    	List<RequestProcessingData> actualProcessingData = new ArrayList<>();
+    	ObjectMapper mapper = new ObjectMapper();
+        processingData = mapper.readValue(new File("src/test/resources/OrchestrationRequest/RequestProcessingData.json"),
+        		new TypeReference<List<org.onap.so.db.request.beans.RequestProcessingData>>(){});
+        actualProcessingData = orchReq.mapRequestProcessingData(processingData);
+    	assertThat(actualProcessingData,sameBeanAs(expectedDataList));
+    }
 
     public void setupTestGetOrchestrationRequest() throws Exception{
         //For testGetOrchestrationRequest
         stubFor(any(urlPathEqualTo("/infraActiveRequests/00032ab7-na18-42e5-965d-8ea592502018")).willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
                 .withBody(new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/getOrchestrationRequest.json"))))
                 .withStatus(HttpStatus.SC_OK)));
+        stubFor(get(urlPathEqualTo("/requestProcessingData/search/findBySoRequestIdOrderByGroupingIdDesc/"))
+        		.withQueryParam("SO_REQUEST_ID", equalTo("00032ab7-na18-42e5-965d-8ea592502018"))
+        		.willReturn(aResponse().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
+                .withBody(new String(Files.readAllBytes(Paths.get("src/test/resources/OrchestrationRequest/getRequestProcessingData.json"))))
+                .withStatus(HttpStatus.SC_OK)));
     }
 
     private void setupTestGetOrchestrationRequestRequestDetails(String requestId, String status) throws Exception{
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
index 76f4bb0..e9e5014 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
@@ -189,8 +189,8 @@
                     logEvent.getMarker().getName().equals("ENTRY")
                     ){
                 Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                assertNotNull(mdc.get(MsoLogger.BEGINTIME));
-                assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));               
                 assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
                 assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances",mdc.get(MsoLogger.SERVICE_NAME));
@@ -198,9 +198,9 @@
             }else if(logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging") &&
                     logEvent.getMarker().getName().equals("EXIT")){
                 Map<String,String> mdc = logEvent.getMDCPropertyMap();
-                assertNotNull(mdc.get(MsoLogger.BEGINTIME));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(MsoLogger.ENDTIME));
-                assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(MsoLogger.INVOCATION_ID));
                 assertEquals("202",mdc.get(MsoLogger.RESPONSECODE));
                 assertEquals("UNKNOWN",mdc.get(MsoLogger.PARTNERNAME));
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationFilterResponse.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationFilterResponse.json
new file mode 100644
index 0000000..561ed0d
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationFilterResponse.json
@@ -0,0 +1,189 @@
+{
+  "requestList": [
+    {
+      "request": {
+        "requestId": "001619d2-a297-4a4b-a9f5-e2823c88458f",
+        "startTime": "Fri, 01 Jul 2016 04:41:42 GMT",
+        "requestScope": "vfModule",
+        "requestType": "createInstance",
+        "requestDetails": {
+          "modelInfo": {
+            "modelType": "vfModule",
+            "modelName": "test::base::module-0"
+          },
+          "requestInfo": {
+            "source": "VID",
+            "suppressRollback": false
+          },
+          "cloudConfiguration": {
+            "tenantId": "6accefef3cb442ff9e644d589fb04107",
+            "lcpCloudRegionId": "n6"
+          },
+          "instanceName": []
+        },
+        "instanceReferences": {
+          "vnfInstanceName": "test-vscp",
+          "vfModuleInstanceName": "MODULENAME1"
+        },
+        "requestStatus": {
+          "requestState": "COMPLETE",
+          "statusMessage": "COMPLETED",
+          "percentProgress": 100,
+          "finishTime": "Tue, 02 May 2017 06:33:34 GMT"
+        }
+      }
+    },
+    {
+      "request": {
+        "requestId": "00032ab7-3fb3-42e5-965d-8ea592502017",
+        "startTime": "Thu, 22 Dec 2016 08:29:54 GMT",
+        "requestScope": "vfModule",
+        "requestType": "deleteInstance",
+        "requestDetails": {
+          "modelInfo": {
+            "modelType": "vfModule",
+            "modelName": "test::base::module-0"
+          },
+          "requestInfo": {
+            "source": "VID",
+            "suppressRollback": false
+          },
+          "cloudConfiguration": {
+            "tenantId": "6accefef3cb442ff9e644d589fb04107",
+            "lcpCloudRegionId": "n6"
+          },
+          "instanceName": []
+        },
+        "instanceReferences": {
+          "serviceInstanceId": "e3b5744d-2ad1-4cdd-8390-c999a38829bc",
+          "vnfInstanceId": "b92f60c8-8de3-46c1-8dc1-e4390ac2b005",
+          "vfModuleInstanceId": "c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"
+        },
+        "requestStatus": {
+          "requestState": "COMPLETE",
+          "statusMessage": "Vf Module has been deleted successfully.",
+          "percentProgress": 100,
+          "finishTime": "Thu, 22 Dec 2016 08:30:28 GMT"
+        }
+      }
+    },
+    {
+      "request": {
+        "requestId": "00032ab7-na18-42e5-965d-8ea592502018",
+        "startTime": "Thu, 22 Dec 2016 08:29:54 GMT",
+        "requestScope": "vfModule",
+        "requestType": "deleteInstance",
+        "requestDetails": {
+          "modelInfo": {
+            "modelType": "vfModule",
+            "modelName": "test::base::module-0"
+          },
+          "requestInfo": {
+            "source": "VID",
+            "suppressRollback": false
+          },
+          "cloudConfiguration": {
+            "tenantId": "6accefef3cb442ff9e644d589fb04107",
+            "lcpCloudRegionId": "n6"
+          },
+          "instanceName": []
+        },
+        "instanceReferences": {
+          "serviceInstanceId": "e3b5744d-2ad1-4cdd-8390-c999a38829bc",
+          "vnfInstanceId": "b92f60c8-8de3-46c1-8dc1-e4390ac2b005",
+          "vfModuleInstanceId": "c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"
+        },
+        "requestStatus": {
+          "requestState": "PENDING",
+          "statusMessage": "Vf Module deletion pending.",
+          "percentProgress": 0,
+          "finishTime": "Thu, 22 Dec 2016 08:30:28 GMT"
+        }
+      }
+    },
+    {
+      "request": {
+        "requestId": "5ffbabd6-b793-4377-a1ab-082670fbc7ac",
+        "startTime": "Thu, 22 Dec 2016 08:29:54 GMT",
+        "requestScope": "vfModule",
+        "requestType": "deleteInstance",
+        "requestDetails": {
+          "modelInfo": {
+            "modelInvariantId": "78ca26d0-246d-11e7-93ae-92361f002671",
+            "modelType": "vfModule",
+            "modelId": "20c4431c-246d-11e7-93ae-92361f002671",
+            "modelName": "test::base::module-0",
+            "modelVersion": "2",
+            "modelCustomizationUuid": "cb82ffd8-252a-11e7-93ae-92361f002671",
+            "modelVersionId": "20c4431c-246d-11e7-93ae-92361f002671",
+            "modelCustomizationId": "cb82ffd8-252a-11e7-93ae-92361f002671",
+            "modelUuid": "20c4431c-246d-11e7-93ae-92361f002671",
+            "modelInvariantUuid": "78ca26d0-246d-11e7-93ae-92361f002671"
+          },
+          "requestInfo": {
+            "source": "VID",
+            "instanceName": "MSO-DEV-VF-1806BB-v10-base-it2-1",
+            "suppressRollback": false,
+            "requestorId": "xxxxxx"
+          },
+          "relatedInstanceList": [
+            {
+              "relatedInstance": {
+                "instanceId": "76fa8849-4c98-473f-b431-2590b192a653",
+                "modelInfo": {
+                  "modelInvariantId": "9647dfc4-2083-11e7-93ae-92361f002671",
+                  "modelType": "service",
+                  "modelId": "5df8b6de-2083-11e7-93ae-92361f002671",
+                  "modelName": "Infra_v10_Service",
+                  "modelVersion": "1.0",
+                  "modelVersionId": "5df8b6de-2083-11e7-93ae-92361f002671",
+                  "modelUuid": "5df8b6de-2083-11e7-93ae-92361f002671",
+                  "modelInvariantUuid": "9647dfc4-2083-11e7-93ae-92361f002671"
+                }
+              }
+            },
+            {
+              "relatedInstance": {
+                "instanceId": "d57970e1-5075-48a5-ac5e-75f2d6e10f4c",
+                "modelInfo": {
+                  "modelCustomizationName": "v10 1",
+                  "modelInvariantId": "2fff5b20-214b-11e7-93ae-92361f002671",
+                  "modelType": "vnf",
+                  "modelId": "ff2ae348-214a-11e7-93ae-92361f002671",
+                  "modelName": "v10",
+                  "modelVersion": "1.0",
+                  "modelCustomizationUuid": "68dc9a92-214c-11e7-93ae-92361f002671",
+                  "modelVersionId": "ff2ae348-214a-11e7-93ae-92361f002671",
+                  "modelCustomizationId": "68dc9a92-214c-11e7-93ae-92361f002671",
+                  "modelUuid": "ff2ae348-214a-11e7-93ae-92361f002671",
+                  "modelInvariantUuid": "2fff5b20-214b-11e7-93ae-92361f002671",
+                  "modelInstanceName": "v10 1"
+                }
+              }
+            }
+          ],
+          "cloudConfiguration": {
+            "tenantId": "0422ffb57ba042c0800a29dc85ca70f8",
+            "lcpCloudRegionId": "n6"
+          },
+          "requestParameters": {
+            "userParams": [],
+            "usePreload": true
+          },
+          "instanceName": []
+        },
+        "instanceReferences": {
+          "serviceInstanceId": "e3b5744d-2ad1-4cdd-8390-c999a38829bc",
+          "vnfInstanceId": "b92f60c8-8de3-46c1-8dc1-e4390ac2b005",
+          "vfModuleInstanceId": "c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"
+        },
+        "requestStatus": {
+          "requestState": "UNLOCKED",
+          "statusMessage": "Vf Module deletion pending.",
+          "percentProgress": 0,
+          "finishTime": "Thu, 22 Dec 2016 08:30:28 GMT"
+        }
+      }
+    }
+  ]
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationList.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationList.json
index 124513d..1b1530d 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationList.json
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/OrchestrationList.json
@@ -1 +1,298 @@
-{"requestList":[{"request":{"requestId":"00032ab7-3fb3-42e5-965d-8ea592502017","requestScope":"vfModule","requestType":"deleteInstance","requestDetails":{"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID","suppressRollback":false},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}},"instanceReferences":{"serviceInstanceId":"e3b5744d-2ad1-4cdd-8390-c999a38829bc","vnfInstanceId":"b92f60c8-8de3-46c1-8dc1-e4390ac2b005","vfModuleInstanceId":"c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"},"requestStatus":{"requestState":"COMPLETE","statusMessage":"Vf Module has been deleted successfully.","percentProgress":100}}},{"request":{"requestId":"00032ab7-na18-42e5-965d-8ea592502018","requestScope":"vfModule","requestType":"deleteInstance","requestDetails":{"modelInfo":{"modelType":"vfModule","modelName":"test::base::module-0"},"requestInfo":{"source":"VID","suppressRollback":false},"cloudConfiguration":{"tenantId":"6accefef3cb442ff9e644d589fb04107","lcpCloudRegionId":"n6"}},"instanceReferences":{"serviceInstanceId":"e3b5744d-2ad1-4cdd-8390-c999a38829bc","vnfInstanceId":"b92f60c8-8de3-46c1-8dc1-e4390ac2b005","vfModuleInstanceId":"c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"},"requestStatus":{"requestState":"PENDING","statusMessage":"Vf Module deletion pending.","percentProgress":0}}},{"request":{"requestId":"00093944-bf16-4373-ab9a-3adfe730ff2d","requestScope":"service","requestType":"createInstance","requestDetails":{"modelInfo":{"modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671","modelType":"service","modelName":"MSOTADevInfra_v10_Service","modelVersion":"1.0","modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","instanceName":"MSODEV_1707_SI_v10_011-4","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true}},"instanceReferences":{},"requestStatus":{"requestState":"FAILED","statusMessage":"Error: Locked instance - This service (MSODEV_1707_SI_v10_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.","percentProgress":100}}},{"request":{"requestId":"001619d2-a297-4a4b-a9f5-e2823c88458f","requestScope":"vfModule","requestType":"createInstance","instanceReferences":{},"requestStatus":{"requestState":"COMPLETE","statusMessage":"COMPLETED","percentProgress":100}}},{"request":{"requestId":"00164b9e-784d-48a8-8973-bbad6ef818ed","requestScope":"service","requestType":"createInstance","requestDetails":{"modelInfo":{"modelInvariantId":"52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f","modelType":"service","modelName":"MSO Test Network","modelVersion":"1.0","modelVersionId":"aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e"},"requestInfo":{"source":"VID","instanceName":"DEV-n6-3100-0927-1","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"MSO_1610_dev","subscriberName":"MSO_1610_dev"},"cloudConfiguration":{"tenantId":"19123c2924c648eb8e42a3c1f14b7682","lcpCloudRegionId":"n6"},"requestParameters":{"subscriptionServiceType":"MSO-dev-service-type","userParams":[{"name":"someUserParam","value":"someValue"}],"aLaCarte":true,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true}},"instanceReferences":{"serviceInstanceId":"b2f59173-b7e5-4e0f-8440-232fd601b865"},"requestStatus":{"requestState":"COMPLETE","statusMessage":"Service Instance was created successfully.","percentProgress":100}}},{"request":{"requestId":"00173cc9-5ce2-4673-a810-f87fefb2829e","requestScope":"service","requestType":"createInstance","requestDetails":{"modelInfo":{"modelInvariantId":"ff6163d4-7214-459e-9f76-507b4eb00f51","modelType":"service","modelName":"ConstraintsSrvcVID","modelVersion":"2.0","modelVersionId":"722d256c-a374-4fba-a14f-a59b76bb7656"},"requestInfo":{"productFamilyId":"LRSI-OSPF","source":"VID","suppressRollback":false,"requestorId":"xxxxxx"},"subscriberInfo":{"globalSubscriberId":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"},"cloudConfiguration":{"tenantId":"a259ae7b7c3f493cb3d91f95a7c18149","lcpCloudRegionId":"mtn16"},"requestParameters":{"subscriptionServiceType":"Mobility","userParams":[{"name":"neutronport6_name","value":"8"},{"name":"neutronnet5_network_name","value":"8"},{"name":"contrailv2vlansubinterface3_name","value":"false"}]}},"instanceReferences":{},"requestStatus":{"requestState":"FAILED","statusMessage":"Error parsing request.  No valid instanceName is specified","percentProgress":100}}},{"request":{"requestId":"0017f68c-eb2d-45bb-b7c7-ec31b37dc349","requestScope":"configuration","requestType":"activateInstance","requestDetails":{"modelInfo":{"modelInvariantId":"1587cf0e-f12f-478d-8530-5c55ac578c39","modelType":"configuration","modelVersionId":"36a3a8ea-49a6-4ac8-b06c-89a545444455","modelCustomizationId":"68dc9a92-214c-11e7-93ae-92361f002671"},"requestInfo":{"source":"VID","suppressRollback":false,"requestorId":"xxxxxx"},"relatedInstanceList":[{"relatedInstance":{"instanceId":"9e15a443-af65-4f05-9000-47ae495e937d","modelInfo":{"modelInvariantId":"de19ae10-9a25-11e7-abc4-cec278b6b50a","modelType":"service","modelName":"MSOTADevInfra_Configuration_Service","modelVersion":"1.0","modelVersionId":"ee938612-9a25-11e7-abc4-cec278b6b50a"}}}],"cloudConfiguration":{"lcpCloudRegionId":"n6"},"requestParameters":{"aLaCarte":false,"autoBuildVfModules":false,"cascadeDelete":false,"usePreload":true}},"instanceReferences":{"serviceInstanceId":"9e15a443-af65-4f05-9000-47ae495e937d"},"requestStatus":{"requestState":"UNLOCKED","percentProgress":20}}},{"request": {"requestId":"0017f68c-eb2d-45bb-b7c7-ec31b37dc350","requestScope":"service","requestType":"createInstance","requestStatus": {"requestState": "IN_PROGRESS", "statusMessage": "Error parsing request.\n\tNo valid instanceName is specified"}}}]}
\ No newline at end of file
+{
+   "requestList":[
+      {
+         "request":{
+            "requestId":"00032ab7-3fb3-42e5-965d-8ea592502017",
+            "requestScope":"vfModule",
+            "requestType":"deleteInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelType":"vfModule",
+                  "modelName":"test::base::module-0"
+               },
+               "requestInfo":{
+                  "source":"VID",
+                  "suppressRollback":false
+               },
+               "cloudConfiguration":{
+                  "tenantId":"6accefef3cb442ff9e644d589fb04107",
+                  "lcpCloudRegionId":"n6"
+               }
+            },
+            "instanceReferences":{
+               "serviceInstanceId":"e3b5744d-2ad1-4cdd-8390-c999a38829bc",
+               "vnfInstanceId":"b92f60c8-8de3-46c1-8dc1-e4390ac2b005",
+               "vfModuleInstanceId":"c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"
+            },
+            "requestStatus":{
+               "requestState":"COMPLETE",
+               "statusMessage":"Vf Module has been deleted successfully.",
+               "percentProgress":100
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"00032ab7-na18-42e5-965d-8ea592502018",
+            "requestScope":"vfModule",
+            "requestType":"deleteInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelType":"vfModule",
+                  "modelName":"test::base::module-0"
+               },
+               "requestInfo":{
+                  "source":"VID",
+                  "suppressRollback":false
+               },
+               "cloudConfiguration":{
+                  "tenantId":"6accefef3cb442ff9e644d589fb04107",
+                  "lcpCloudRegionId":"n6"
+               }
+            },
+            "instanceReferences":{
+               "serviceInstanceId":"e3b5744d-2ad1-4cdd-8390-c999a38829bc",
+               "vnfInstanceId":"b92f60c8-8de3-46c1-8dc1-e4390ac2b005",
+               "vfModuleInstanceId":"c7d527b1-7a91-49fd-b97d-1c8c0f4a7992"
+            },
+            "requestStatus":{
+               "requestState":"PENDING",
+               "statusMessage":"Vf Module deletion pending.",
+               "percentProgress":0
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"00093944-bf16-4373-ab9a-3adfe730ff2d",
+            "requestScope":"service",
+            "requestType":"createInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelInvariantId":"9647dfc4-2083-11e7-93ae-92361f002671",
+                  "modelType":"service",
+                  "modelName":"MSOTADevInfra_v10_Service",
+                  "modelVersion":"1.0",
+                  "modelVersionId":"5df8b6de-2083-11e7-93ae-92361f002671"
+               },
+               "requestInfo":{
+                  "source":"VID",
+                  "instanceName":"MSODEV_1707_SI_v10_011-4",
+                  "suppressRollback":false,
+                  "requestorId":"xxxxxx"
+               },
+               "subscriberInfo":{
+                  "globalSubscriberId":"MSO_1610_dev",
+                  "subscriberName":"MSO_1610_dev"
+               },
+               "cloudConfiguration":{
+                  "tenantId":"19123c2924c648eb8e42a3c1f14b7682",
+                  "lcpCloudRegionId":"n6"
+               },
+               "requestParameters":{
+                  "subscriptionServiceType":"MSO-dev-service-type",
+                  "userParams":[
+                     {
+                        "name":"someUserParam",
+                        "value":"someValue"
+                     }
+                  ],
+                  "aLaCarte":true,
+                  "autoBuildVfModules":false,
+                  "cascadeDelete":false,
+                  "usePreload":true
+               }
+            },
+            "instanceReferences":{
+
+            },
+            "requestStatus":{
+               "requestState":"FAILED",
+               "statusMessage":"Error: Locked instance - This service (MSODEV_1707_SI_v10_011-4) already has a request being worked with a status of IN_PROGRESS (RequestId - 278e83b1-4f9f-450e-9e7d-3700a6ed22f4). The existing request must finish or be cleaned up before proceeding.",
+               "percentProgress":100
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"001619d2-a297-4a4b-a9f5-e2823c88458f",
+            "requestScope":"vfModule",
+            "requestType":"createInstance",
+            "instanceReferences":{
+
+            },
+            "requestStatus":{
+               "requestState":"COMPLETE",
+               "statusMessage":"COMPLETED",
+               "percentProgress":100
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"00164b9e-784d-48a8-8973-bbad6ef818ed",
+            "requestScope":"service",
+            "requestType":"createInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelInvariantId":"52b49b5d-3086-4ffd-b5e6-1b1e5e7e062f",
+                  "modelType":"service",
+                  "modelName":"MSO Test Network",
+                  "modelVersion":"1.0",
+                  "modelVersionId":"aed5a5b7-20d3-44f7-90a3-ddbd16f14d1e"
+               },
+               "requestInfo":{
+                  "source":"VID",
+                  "instanceName":"DEV-n6-3100-0927-1",
+                  "suppressRollback":false,
+                  "requestorId":"xxxxxx"
+               },
+               "subscriberInfo":{
+                  "globalSubscriberId":"MSO_1610_dev",
+                  "subscriberName":"MSO_1610_dev"
+               },
+               "cloudConfiguration":{
+                  "tenantId":"19123c2924c648eb8e42a3c1f14b7682",
+                  "lcpCloudRegionId":"n6"
+               },
+               "requestParameters":{
+                  "subscriptionServiceType":"MSO-dev-service-type",
+                  "userParams":[
+                     {
+                        "name":"someUserParam",
+                        "value":"someValue"
+                     }
+                  ],
+                  "aLaCarte":true,
+                  "autoBuildVfModules":false,
+                  "cascadeDelete":false,
+                  "usePreload":true
+               }
+            },
+            "instanceReferences":{
+               "serviceInstanceId":"b2f59173-b7e5-4e0f-8440-232fd601b865"
+            },
+            "requestStatus":{
+               "requestState":"COMPLETE",
+               "statusMessage":"Service Instance was created successfully.",
+               "percentProgress":100
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"00173cc9-5ce2-4673-a810-f87fefb2829e",
+            "requestScope":"service",
+            "requestType":"createInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelInvariantId":"ff6163d4-7214-459e-9f76-507b4eb00f51",
+                  "modelType":"service",
+                  "modelName":"ConstraintsSrvcVID",
+                  "modelVersion":"2.0",
+                  "modelVersionId":"722d256c-a374-4fba-a14f-a59b76bb7656"
+               },
+               "requestInfo":{
+                  "productFamilyId":"LRSI-OSPF",
+                  "source":"VID",
+                  "suppressRollback":false,
+                  "requestorId":"xxxxxx"
+               },
+               "subscriberInfo":{
+                  "globalSubscriberId":"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"
+               },
+               "cloudConfiguration":{
+                  "tenantId":"a259ae7b7c3f493cb3d91f95a7c18149",
+                  "lcpCloudRegionId":"mtn16"
+               },
+               "requestParameters":{
+                  "subscriptionServiceType":"Mobility",
+                  "userParams":[
+                     {
+                        "name":"neutronport6_name",
+                        "value":"8"
+                     },
+                     {
+                        "name":"neutronnet5_network_name",
+                        "value":"8"
+                     },
+                     {
+                        "name":"contrailv2vlansubinterface3_name",
+                        "value":"false"
+                     }
+                  ]
+               }
+            },
+            "instanceReferences":{
+
+            },
+            "requestStatus":{
+               "requestState":"FAILED",
+               "statusMessage":"Error parsing request.  No valid instanceName is specified",
+               "percentProgress":100
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"0017f68c-eb2d-45bb-b7c7-ec31b37dc349",
+            "requestScope":"configuration",
+            "requestType":"activateInstance",
+            "requestDetails":{
+               "modelInfo":{
+                  "modelInvariantId":"1587cf0e-f12f-478d-8530-5c55ac578c39",
+                  "modelType":"configuration",
+                  "modelVersionId":"36a3a8ea-49a6-4ac8-b06c-89a545444455",
+                  "modelCustomizationId":"68dc9a92-214c-11e7-93ae-92361f002671"
+               },
+               "requestInfo":{
+                  "source":"VID",
+                  "suppressRollback":false,
+                  "requestorId":"xxxxxx"
+               },
+               "relatedInstanceList":[
+                  {
+                     "relatedInstance":{
+                        "instanceId":"9e15a443-af65-4f05-9000-47ae495e937d",
+                        "modelInfo":{
+                           "modelInvariantId":"de19ae10-9a25-11e7-abc4-cec278b6b50a",
+                           "modelType":"service",
+                           "modelName":"MSOTADevInfra_Configuration_Service",
+                           "modelVersion":"1.0",
+                           "modelVersionId":"ee938612-9a25-11e7-abc4-cec278b6b50a"
+                        }
+                     }
+                  }
+               ],
+               "cloudConfiguration":{
+                  "lcpCloudRegionId":"n6"
+               },
+               "requestParameters":{
+                  "aLaCarte":false,
+                  "autoBuildVfModules":false,
+                  "cascadeDelete":false,
+                  "usePreload":true
+               }
+            },
+            "instanceReferences":{
+               "serviceInstanceId":"9e15a443-af65-4f05-9000-47ae495e937d"
+            },
+            "requestStatus":{
+               "requestState":"UNLOCKED",
+               "percentProgress":20
+            }
+         }
+      },
+      {
+         "request":{
+            "requestId":"0017f68c-eb2d-45bb-b7c7-ec31b37dc350",
+            "requestScope":"service",
+            "requestType":"createInstance",
+            "requestStatus":{
+               "requestState":"IN_PROGRESS",
+               "statusMessage":"Error parsing request.\n\tNo valid instanceName is specified"
+            }
+         }
+      }
+   ]
+}
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/RequestProcessingData.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/RequestProcessingData.json
new file mode 100644
index 0000000..79caa33
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/RequestProcessingData.json
@@ -0,0 +1,24 @@
+[
+	{
+		"id": 1,
+		"soRequestId": "00032ab7-na18-42e5-965d-8ea592502018",
+		"groupingId": "7d2e8c07-4d10-456d-bddc-37abf38ca714",
+		"name": "requestAction",
+		"value": "assign",
+		"tag": "pincFabricConfigRequest"
+	},{
+		"id": 2,
+		"soRequestId": "00032ab7-na18-42e5-965d-8ea592502018",
+		"groupingId": "7d2e8c07-4d10-456d-bddc-37abf38ca714",
+		"name": "pincFabricId",
+		"value": "testId",
+		"tag": "pincFabricConfigRequest"
+	},{
+		"id": 3,
+		"soRequestId": "00032ab7-na18-42e5-965d-8ea592502018",
+		"groupingId": "7d2e8c07-4d10-456d-bddc-37abf38ca715",
+		"name": "requestAction",
+		"value": "unassign",
+		"tag": "pincFabricConfig"
+	}
+]
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/getRequestProcessingData.json b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/getRequestProcessingData.json
new file mode 100644
index 0000000..af28007
--- /dev/null
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/OrchestrationRequest/getRequestProcessingData.json
@@ -0,0 +1,8 @@
+{
+	"id": 1,
+	"soRequestId": "00032ab7-na18-42e5-965d-8ea592502018",
+	"groupingId": "7d2e8c07-4d10-456d-bddc-37abf38ca714",
+	"name": "requestAction",
+	"value": "assign",
+	"tag": "pincFabricConfigRequest"
+}
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
index 3540110..381330b 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
@@ -770,6 +770,77 @@
 ON DELETE CASCADE ON UPDATE CASCADE)
 ENGINE = InnoDB DEFAULT CHARACTER SET = latin1;
 
+CREATE TABLE IF NOT EXISTS vnfc_customization (
+`MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+`MODEL_INSTANCE_NAME` VARCHAR(200) NOT NULL,
+`MODEL_UUID` VARCHAR(200) NOT NULL,
+`MODEL_INVARIANT_UUID` VARCHAR(200) NOT NULL,
+`MODEL_VERSION` VARCHAR(20) NOT NULL,
+`MODEL_NAME` VARCHAR(200) NOT NULL,
+`TOSCA_NODE_TYPE` VARCHAR(200) NOT NULL,
+`DESCRIPTION` VARCHAR(1200) NULL DEFAULT NULL,
+`CREATION_TIMESTAMP` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`MODEL_CUSTOMIZATION_UUID`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 20654
+DEFAULT CHARACTER SET = latin1;
+
+CREATE TABLE IF NOT EXISTS cvnfc_customization (
+`ID` INT(11) NOT NULL AUTO_INCREMENT,
+`MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+`MODEL_INSTANCE_NAME` VARCHAR(200) NOT NULL,
+`MODEL_UUID` VARCHAR(200) NOT NULL,
+`MODEL_INVARIANT_UUID` VARCHAR(200) NOT NULL,
+`MODEL_VERSION` VARCHAR(20) NOT NULL,
+`MODEL_NAME` VARCHAR(200) NOT NULL,
+`TOSCA_NODE_TYPE` VARCHAR(200) NOT NULL,
+`DESCRIPTION` VARCHAR(1200) NULL DEFAULT NULL,
+`NFC_FUNCTION` VARCHAR(200) NULL,
+`NFC_NAMING_CODE` VARCHAR(200) NULL,
+`CREATION_TIMESTAMP` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+`VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+`VNFC_CUST_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL, PRIMARY KEY (`ID`), INDEX `fk_cvnfc_customization__vf_module_customization1_idx` (`VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID` ASC), INDEX `fk_cvnfc_customization__vnfc_customization1_idx` (`VNFC_CUST_MODEL_CUSTOMIZATION_UUID` ASC), INDEX `fk_cvnfc_customization__vnf_resource_customization1_idx` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` ASC), UNIQUE INDEX `UK_cvnfc_customization` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` ASC, `VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID` ASC, `MODEL_CUSTOMIZATION_UUID` ASC), INDEX `fk_cvnfc_customization__vnf_vfmod_cvnfc_config_cust1_idx` (`MODEL_CUSTOMIZATION_UUID` ASC), CONSTRAINT `fk_cvnfc_customization__vf_module_customization1` FOREIGN KEY (`VF_MODULE_CUST_MODEL_CUSTOMIZATION_UUID`) REFERENCES `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`) ON
+DELETE CASCADE ON
+UPDATE CASCADE, CONSTRAINT `fk_cvnfc_customization__vnfc_customization1` FOREIGN KEY (`VNFC_CUST_MODEL_CUSTOMIZATION_UUID`) REFERENCES `vnfc_customization` (`MODEL_CUSTOMIZATION_UUID`) ON
+DELETE CASCADE ON
+UPDATE CASCADE, CONSTRAINT `fk_cvnfc_customization__vnf_resource_customization1` FOREIGN KEY (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`) REFERENCES `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`) ON
+DELETE CASCADE ON
+UPDATE CASCADE) ENGINE = InnoDB AUTO_INCREMENT = 20654 DEFAULT CHARACTER SET = latin1;
+
+CREATE TABLE IF NOT EXISTS vnf_vfmodule_cvnfc_configuration_customization (
+    `ID` INT(11) NOT NULL AUTO_INCREMENT,
+    `MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+    `VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+    `VF_MODULE_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+    `CVNFC_MODEL_CUSTOMIZATION_UUID` VARCHAR(200) NOT NULL,
+    `MODEL_INSTANCE_NAME` VARCHAR(200) NOT NULL,
+    `CONFIGURATION_TYPE` VARCHAR(200) NULL,
+    `CONFIGURATION_ROLE` VARCHAR(200) NULL,
+    `CONFIGURATION_FUNCTION` VARCHAR(200) NULL,
+    `POLICY_NAME` VARCHAR(200) NULL,
+    `CREATION_TIMESTAMP` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    `CONFIGURATION_MODEL_UUID` VARCHAR(200) NOT NULL,
+    PRIMARY KEY (`ID`),
+    INDEX `fk_vnf_vfmodule_cvnfc_config_cust__configuration_idx` (`CONFIGURATION_MODEL_UUID` ASC),
+    UNIQUE INDEX `UK_vnf_vfmodule_cvnfc_configuration_customization` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` ASC , `VF_MODULE_MODEL_CUSTOMIZATION_UUID` ASC , `CVNFC_MODEL_CUSTOMIZATION_UUID` ASC , `MODEL_CUSTOMIZATION_UUID` ASC),
+    INDEX `fk_vnf_vfmodule_cvnfc_config_cust__cvnfc_cust1_idx` (`CVNFC_MODEL_CUSTOMIZATION_UUID` ASC),
+    INDEX `fk_vnf_vfmodule_cvnfc_config_cust__vf_module_cust_idx` (`VF_MODULE_MODEL_CUSTOMIZATION_UUID` ASC),
+    INDEX `fk_vnf_vfmodule_cvnfc_config_cust__vnf_res_cust_idx` (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID` ASC),
+    CONSTRAINT `fk_vnf_vfmod_cvnfc_config_cust__configuration_resource` FOREIGN KEY (`CONFIGURATION_MODEL_UUID`)
+        REFERENCES `configuration` (`MODEL_UUID`)
+        ON DELETE CASCADE ON UPDATE CASCADE,
+    CONSTRAINT `fk_cvnfc_configuration_customization__cvnfc_customization1` FOREIGN KEY (`CVNFC_MODEL_CUSTOMIZATION_UUID`)
+        REFERENCES `cvnfc_customization` (`MODEL_CUSTOMIZATION_UUID`)
+        ON DELETE CASCADE ON UPDATE CASCADE,
+    CONSTRAINT `fk_vnf_configuration_cvnfc_customization__vf_module_customiza1` FOREIGN KEY (`VF_MODULE_MODEL_CUSTOMIZATION_UUID`)
+        REFERENCES `vf_module_customization` (`MODEL_CUSTOMIZATION_UUID`)
+        ON DELETE CASCADE ON UPDATE CASCADE,
+    CONSTRAINT `fk_vfmodule_cvnfc_configuration_customization__vnf_resource_c1` FOREIGN KEY (`VNF_RESOURCE_CUST_MODEL_CUSTOMIZATION_UUID`)
+        REFERENCES `vnf_resource_customization` (`MODEL_CUSTOMIZATION_UUID`)
+        ON DELETE CASCADE ON UPDATE CASCADE
+)  ENGINE=INNODB AUTO_INCREMENT=20654 DEFAULT CHARACTER SET=LATIN1;
+
 --------START Request DB SCHEMA --------
 CREATE DATABASE requestdb;
 USE requestdb;
