From fe2f2a382c07bc64e1b1c5910a9358e6b25c83ca Mon Sep 17 00:00:00 2001
From: Seshu-Kumar-M <seshu.kumar.m@huawei.com>
Date: Wed, 18 Oct 2017 18:02:00 +0530
Subject: fix for the E2EServiceInstances progress update

IssueId : SO-205

Change-Id: I5650400729ab89b5b3ae1e8adb0e892390281489
Signed-off-by: Seshu-Kumar-M <seshu.kumar.m@huawei.com>
---
 .../mso/apihandlerinfra/E2EServiceInstances.java   | 584 ++++++++++++---------
 .../apihandlerinfra/E2EServiceInstancesTest.java   |  22 +-
 2 files changed, 342 insertions(+), 264 deletions(-)

(limited to 'mso-api-handlers')

diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
index 2386848ad5..f33774faef 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
@@ -21,6 +21,7 @@
 package org.openecomp.mso.apihandlerinfra;
 
 import java.io.IOException;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -28,7 +29,6 @@ import java.util.Map;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
@@ -39,6 +39,8 @@ import javax.ws.rs.core.Response;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
 import org.codehaus.jackson.map.ObjectMapper;
+import org.hibernate.Session;
+
 import org.openecomp.mso.apihandler.common.ErrorNumbers;
 import org.openecomp.mso.apihandler.common.RequestClient;
 import org.openecomp.mso.apihandler.common.RequestClientFactory;
@@ -51,6 +53,7 @@ import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.RequestInfo;
 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.RequestParameters;
 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.ServiceInstancesRequest;
 import org.openecomp.mso.apihandlerinfra.serviceinstancebeans.SubscriberInfo;
+import org.openecomp.mso.db.AbstractSessionFactoryManager;
 import org.openecomp.mso.db.catalog.CatalogDatabase;
 import org.openecomp.mso.db.catalog.beans.Service;
 import org.openecomp.mso.db.catalog.beans.ServiceRecipe;
@@ -58,446 +61,483 @@ import org.openecomp.mso.logger.MessageEnum;
 import org.openecomp.mso.logger.MsoAlarmLogger;
 import org.openecomp.mso.logger.MsoLogger;
 import org.openecomp.mso.requestsdb.InfraActiveRequests;
+import org.openecomp.mso.requestsdb.OperationStatus;
 import org.openecomp.mso.requestsdb.RequestsDatabase;
+import org.openecomp.mso.requestsdb.RequestsDbSessionFactoryManager;
 import org.openecomp.mso.utils.UUIDChecker;
 
 import com.wordnik.swagger.annotations.Api;
 import com.wordnik.swagger.annotations.ApiOperation;
 
 @Path("/e2eServiceInstances")
-@Api(value="/e2eServiceInstances",description="API Requests for E2E Service Instances")
+@Api(value = "/e2eServiceInstances", description = "API Requests for E2E Service Instances")
 public class E2EServiceInstances {
 
-	private HashMap<String, String> instanceIdMap = new HashMap<String,String>();
-	private static MsoLogger msoLogger = MsoLogger.getMsoLogger (MsoLogger.Catalog.APIH);
-	private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger ();
-	public final static String MSO_PROP_APIHANDLER_INFRA = "MSO_PROP_APIHANDLER_INFRA";
-
-	public E2EServiceInstances() {
-	}
+	private HashMap<String, String> instanceIdMap = new HashMap<>();
+	private static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.APIH);
+	private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger();
+	public static final String MSO_PROP_APIHANDLER_INFRA = "MSO_PROP_APIHANDLER_INFRA";
+	private ServiceInstancesRequest sir = null;
 	
+	public static final String END_OF_THE_TRANSACTION = "End of the transaction, the final response is: ";
+	public static final String EXCEPTION_CREATING_DB_RECORD = "Exception while creating record in DB";
+	public static final String EXCEPTION_COMMUNICATE_BPMN_ENGINE = "Exception while communicate with BPMN engine";
+
 	/**
-     *POST Requests for E2E Service create Instance on a version provided
-     */
+	 * POST Requests for E2E Service create Instance on a version provided
+	 */
 
 	@POST
 	@Path("/{version:[vV][3-5]}")
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)
-	@ApiOperation(value="Create a E2E Service Instance on a version provided",response=Response.class)
+	@ApiOperation(value = "Create a E2E Service Instance on a version provided", response = Response.class)
 	public Response createE2EServiceInstance(String request, @PathParam("version") String version) {
 
-        return E2EserviceInstances(request, Action.createInstance,	null, version);
+		return processE2EserviceInstances(request, Action.createInstance, null, version);
 	}
 
 	/**
-     *DELETE Requests for E2E Service delete Instance on a specified version and serviceId
-     */
-	
+	 * DELETE Requests for E2E Service delete Instance on a specified version
+	 * and serviceId
+	 */
+
 	@DELETE
 	@Path("/{version:[vV][3-5]}/{serviceId}")
 	@Consumes(MediaType.APPLICATION_JSON)
 	@Produces(MediaType.APPLICATION_JSON)
-	@ApiOperation(value="Delete E2E Service Instance on a specified version and serviceId",response=Response.class)
-	public Response deleteE2EServiceInstance(String request, @PathParam("version") String version, @PathParam("serviceId") String serviceId) {
+	@ApiOperation(value = "Delete E2E Service Instance on a specified version and serviceId", response = Response.class)
+	public Response deleteE2EServiceInstance(String request, @PathParam("version") String version,
+			@PathParam("serviceId") String serviceId) {
 
-        instanceIdMap.put("serviceId", serviceId);
+		instanceIdMap.put("serviceId", serviceId);
 
-        return E2EserviceInstances(request, Action.deleteInstance, null, version);
+		return processE2EserviceInstances(request, Action.deleteInstance, null, version);
 	}
-	
-	private Response E2EserviceInstances(String requestJSON, Action action,
-        HashMap<String, String> instanceIdMap, String version) {
+
+	private Response processE2EserviceInstances(String requestJSON, Action action,
+			HashMap<String, String> instanceIdMap, String version) {
 
 		String requestId = UUIDChecker.generateUUID(msoLogger);
 		long startTime = System.currentTimeMillis();
 		msoLogger.debug("requestId is: " + requestId);
-		E2EServiceInstanceRequest sir = null;
+		E2EServiceInstanceRequest e2eSir = null;
 
 		MsoRequest msoRequest = new MsoRequest(requestId);
 		ObjectMapper mapper = new ObjectMapper();
 		try {
-			sir = mapper
-					.readValue(requestJSON, E2EServiceInstanceRequest.class);
+			e2eSir = mapper.readValue(requestJSON, E2EServiceInstanceRequest.class);
 
 		} catch (Exception e) {
 
 			msoLogger.debug("Mapping of request to JSON object failed : ", e);
-			Response response = msoRequest.buildServiceErrorResponse(
-					HttpStatus.SC_BAD_REQUEST,
-					MsoException.ServiceException,
-					"Mapping of request to JSON object failed.  "
-							+ e.getMessage(), ErrorNumbers.SVC_BAD_PARAMETER,
-							null);
-			msoLogger.error(MessageEnum.APIH_REQUEST_VALIDATION_ERROR,
-					MSO_PROP_APIHANDLER_INFRA, "", "",
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST,
+					MsoException.ServiceException, "Mapping of request to JSON object failed.  " + e.getMessage(),
+					ErrorNumbers.SVC_BAD_PARAMETER, null);
+			msoLogger.error(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",
 					MsoLogger.ErrorCode.SchemaError, requestJSON, e);
-			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR,
-					MsoLogger.ResponseCode.SchemaError,
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.SchemaError,
 					"Mapping of request to JSON object failed");
-			msoLogger.debug("End of the transaction, the final response is: "
-					+ (String) response.getEntity());
+			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());
 			return response;
 		}
 
-		InfraActiveRequests dup = null;
-		String instanceName = sir.getService().getName();
-		String requestScope = sir.getService().getParameters().getNodeType();
+		mapReqJsonToSvcInstReq(e2eSir, requestJSON);
+		sir.getRequestDetails().getRequestParameters().setaLaCarte(true);
+		try {
+			msoRequest.parse(sir, instanceIdMap, action, version);
+		} catch (Exception e) {
+			msoLogger.debug("Validation failed: ", e);
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST,
+					MsoException.ServiceException, "Error parsing request.  " + e.getMessage(),
+					ErrorNumbers.SVC_BAD_PARAMETER, null);
+			if (msoRequest.getRequestId() != null) {
+				msoLogger.debug("Logging failed message to the database");
+				msoRequest.createRequestRecord(Status.FAILED, action);
+			}
+			msoLogger.error(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.SchemaError, requestJSON, e);
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.SchemaError,
+					"Validation of the input request failed");
+			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());
+			return response;
+		}
 
+		InfraActiveRequests dup = null;
+//		String instanceName = sir.getService().getName();
+//		String requestScope = sir.getService().getParameters().getNodeType();
+		String instanceName = sir.getRequestDetails().getRequestInfo().getInstanceName();
+		String requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();
 		try {
-			if(!(instanceName==null && "service".equals(requestScope) && (action == Action.createInstance || action
-					== Action.activateInstance))){
-				dup = (RequestsDatabase.getInstance()).checkInstanceNameDuplicate (instanceIdMap, instanceName, requestScope);
+			if (!(instanceName == null && "service".equals(requestScope)
+					&& (action == Action.createInstance || action == Action.activateInstance))) {
+				dup = (RequestsDatabase.getInstance()).checkInstanceNameDuplicate(instanceIdMap, instanceName,
+						requestScope);
 			}
 		} catch (Exception e) {
-			msoLogger.error (MessageEnum.APIH_DUPLICATE_CHECK_EXC, MSO_PROP_APIHANDLER_INFRA, "", "", MsoLogger.ErrorCode.DataError, "Error during duplicate check ", e);
-
-			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR, MsoException.ServiceException,
-					e.getMessage(),
-					ErrorNumbers.SVC_DETAILED_SERVICE_ERROR,
-					null) ;
+			msoLogger.error(MessageEnum.APIH_DUPLICATE_CHECK_EXC, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.DataError, "Error during duplicate check ", e);
 
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR,
+					MsoException.ServiceException, e.getMessage(), ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, null);
 
-			msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, "Error during duplicate check");
-			msoLogger.debug ("End of the transaction, the final response is: " + (String) response.getEntity ());
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError,
+					"Error during duplicate check");
+			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());
 			return response;
 		}
 
 		if (dup != null) {
 			// Found the duplicate record. Return the appropriate error.
 			String instance = null;
-			if(instanceName != null){
+			if (instanceName != null) {
 				instance = instanceName;
-			}else{
+			} else {
 				instance = instanceIdMap.get(requestScope + "InstanceId");
 			}
-			String dupMessage = "Error: Locked instance - This " + requestScope + " (" + instance + ") " + "already has a request being worked with a status of " + dup.getRequestStatus() + " (RequestId - " + dup.getRequestId() + "). The existing request must finish or be cleaned up before proceeding.";
-
-			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_CONFLICT, MsoException.ServiceException,
-					dupMessage,
-					ErrorNumbers.SVC_DETAILED_SERVICE_ERROR,
-					null) ;
-
-
-			msoLogger.warn (MessageEnum.APIH_DUPLICATE_FOUND, dupMessage, "", "", MsoLogger.ErrorCode.SchemaError, "Duplicate request - Subscriber already has a request for this service");
-			msoRequest.createRequestRecord (Status.FAILED, action);
-			msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.Conflict, dupMessage);
-			msoLogger.debug ("End of the transaction, the final response is: " + (String) response.getEntity ());
+			String dupMessage = "Error: Locked instance - This " + requestScope + " (" + instance + ") "
+					+ "already has a request being worked with a status of " + dup.getRequestStatus() + " (RequestId - "
+					+ dup.getRequestId() + "). The existing request must finish or be cleaned up before proceeding.";
+
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_CONFLICT,
+					MsoException.ServiceException, dupMessage, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, null);
+
+			msoLogger.warn(MessageEnum.APIH_DUPLICATE_FOUND, dupMessage, "", "", MsoLogger.ErrorCode.SchemaError,
+					"Duplicate request - Subscriber already has a request for this service");
+			msoRequest.createRequestRecord(Status.FAILED, action);
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.Conflict,
+					dupMessage);
+			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());
 			return response;
 		}
-
+		
 		CatalogDatabase db = null;
 		RecipeLookupResult recipeLookupResult = null;
 		try {
 			db = CatalogDatabase.getInstance();
-			recipeLookupResult = getServiceInstanceOrchestrationURI(db, sir, action);
+			recipeLookupResult = getServiceInstanceOrchestrationURI(db, action);
 		} catch (Exception e) {
-			msoLogger.error (MessageEnum.APIH_DB_ACCESS_EXC, MSO_PROP_APIHANDLER_INFRA, "", "", MsoLogger.ErrorCode.AvailabilityError, "Exception while communciate with Catalog DB", e);
-			msoRequest.setStatus (org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
-			Response response = msoRequest.buildServiceErrorResponse (HttpStatus.SC_NOT_FOUND,
-					MsoException.ServiceException,
-					"No communication to catalog DB " + e.getMessage (),
-					ErrorNumbers.SVC_NO_SERVER_RESOURCES,
-					null);
-			alarmLogger.sendAlarm ("MsoDatabaseAccessError",
-					MsoAlarmLogger.CRITICAL,
-					Messages.errors.get (ErrorNumbers.NO_COMMUNICATION_TO_CATALOG_DB));
-			msoRequest.createRequestRecord (Status.FAILED,action);
-			msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, "Exception while communciate with DB");
-			msoLogger.debug ("End of the transaction, the final response is: " + (String) response.getEntity ());
+			msoLogger.error(MessageEnum.APIH_DB_ACCESS_EXC, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.AvailabilityError, "Exception while communciate with Catalog DB", e);
+			msoRequest.setStatus(org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_NOT_FOUND,
+					MsoException.ServiceException, "No communication to catalog DB " + e.getMessage(),
+					ErrorNumbers.SVC_NO_SERVER_RESOURCES, null);
+			alarmLogger.sendAlarm("MsoDatabaseAccessError", MsoAlarmLogger.CRITICAL,
+					Messages.errors.get(ErrorNumbers.NO_COMMUNICATION_TO_CATALOG_DB));
+			msoRequest.createRequestRecord(Status.FAILED, action);
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError,
+					"Exception while communciate with DB");
+			msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());
 			return response;
 		} finally {
-			if(db != null) {
-			    db.close();
-			}
+			closeCatalogDB(db);
 		}
 
 		if (recipeLookupResult == null) {
-			msoLogger.error (MessageEnum.APIH_DB_ATTRIBUTE_NOT_FOUND, MSO_PROP_APIHANDLER_INFRA, "", "", MsoLogger.ErrorCode.DataError, "No recipe found in DB");
-			msoRequest.setStatus (org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
-			Response response = msoRequest.buildServiceErrorResponse (HttpStatus.SC_NOT_FOUND,
-					MsoException.ServiceException,
-					"Recipe does not exist in catalog DB",
-					ErrorNumbers.SVC_GENERAL_SERVICE_ERROR,
-					null);
-			msoRequest.createRequestRecord (Status.FAILED, action);
-			msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataNotFound, "No recipe found in DB");
-			msoLogger.debug ("End of the transaction, the final response is: " + (String) response.getEntity ());
+			msoLogger.error(MessageEnum.APIH_DB_ATTRIBUTE_NOT_FOUND, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.DataError, "No recipe found in DB");
+			msoRequest.setStatus(org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_NOT_FOUND,
+					MsoException.ServiceException, "Recipe does not exist in catalog DB",
+					ErrorNumbers.SVC_GENERAL_SERVICE_ERROR, null);
+			msoRequest.createRequestRecord(Status.FAILED, action);
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataNotFound,
+					"No recipe found in DB");
+			msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());
 
 			return response;
 		}
 
 		try {
-			msoRequest.createRequestRecord (Status.PENDING, action);
+			msoRequest.createRequestRecord(Status.PENDING, action);
+			createOperationStatusRecord(action, requestId);
 		} catch (Exception e) {
-			msoLogger.error (MessageEnum.APIH_DB_ACCESS_EXC_REASON, "Exception while creating record in DB", "", "", MsoLogger.ErrorCode.SchemaError, "Exception while creating record in DB", e);
-			msoRequest.setStatus (org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
-			Response response = msoRequest.buildServiceErrorResponse (HttpStatus.SC_INTERNAL_SERVER_ERROR,
-					MsoException.ServiceException,
-					"Exception while creating record in DB " + e.getMessage(),
-					ErrorNumbers.SVC_BAD_PARAMETER,
-					null);
-			msoLogger.recordAuditEvent (startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError, "Exception while creating record in DB");
-			msoLogger.debug ("End of the transaction, the final response is: " + (String) response.getEntity ());
+			msoLogger.error(MessageEnum.APIH_DB_ACCESS_EXC_REASON, "Exception while creating record in DB", "", "",
+					MsoLogger.ErrorCode.SchemaError, "Exception while creating record in DB", e);
+			msoRequest.setStatus(org.openecomp.mso.apihandlerinfra.vnfbeans.RequestStatusType.FAILED);
+			Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_INTERNAL_SERVER_ERROR,
+					MsoException.ServiceException, "Exception while creating record in DB " + e.getMessage(),
+					ErrorNumbers.SVC_BAD_PARAMETER, null);
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError,
+					"Exception while creating record in DB");
+			msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());
 			return response;
 		}
 
-		String modelInfo = sir.getService().getParameters().getNodeTemplateName();
+		String modelInfo = e2eSir.getService().getParameters().getNodeTemplateName();
 		String[] arrayOfInfo = modelInfo.split(":");
 		String serviceInstanceType = arrayOfInfo[0];
 
-
-
 		String serviceId = "";
 
 		RequestClient requestClient = null;
 		HttpResponse response = null;
 
 		long subStartTime = System.currentTimeMillis();
-		String sirRequestJson = mappingObtainedRequestJSONToServiceInstanceRequest(sir);
+		String sirRequestJson = mapReqJsonToSvcInstReq(e2eSir, requestJSON);
 
 		try {
-			requestClient = RequestClientFactory.getRequestClient (recipeLookupResult.getOrchestrationURI (), MsoPropertiesUtils.loadMsoProperties ());
+			requestClient = RequestClientFactory.getRequestClient(recipeLookupResult.getOrchestrationURI(),
+					MsoPropertiesUtils.loadMsoProperties());
 
 			// Capture audit event
-			msoLogger.debug ("MSO API Handler Posting call to BPEL engine for url: " + requestClient.getUrl ());
+			msoLogger.debug("MSO API Handler Posting call to BPEL engine for url: " + requestClient.getUrl());
 
-			response = requestClient.post(requestId, false,
-					recipeLookupResult.getRecipeTimeout(),
-					action.name(), serviceId, null, null, null, null, serviceInstanceType,
-					null, null, null, sirRequestJson);
+			response = requestClient.post(requestId, false, recipeLookupResult.getRecipeTimeout(), action.name(),
+					serviceId, null, null, null, null, serviceInstanceType, null, null, null, sirRequestJson);
 
-			msoLogger.recordMetricEvent(subStartTime,
-					MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
-					"Successfully received response from BPMN engine", "BPMN",
-					recipeLookupResult.getOrchestrationURI(), null);
+			msoLogger.recordMetricEvent(subStartTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
+					"Successfully received response from BPMN engine", "BPMN", recipeLookupResult.getOrchestrationURI(),
+					null);
 		} catch (Exception e) {
-			msoLogger.recordMetricEvent(subStartTime,
-					MsoLogger.StatusCode.ERROR,
-					MsoLogger.ResponseCode.CommunicationError,
-					"Exception while communicate with BPMN engine", "BPMN",
+			msoLogger.recordMetricEvent(subStartTime, MsoLogger.StatusCode.ERROR,
+					MsoLogger.ResponseCode.CommunicationError, "Exception while communicate with BPMN engine", "BPMN",
 					recipeLookupResult.getOrchestrationURI(), null);
-			Response resp = msoRequest.buildServiceErrorResponse(
-					HttpStatus.SC_BAD_GATEWAY, MsoException.ServiceException,
-					"Failed calling bpmn " + e.getMessage(),
+			Response resp = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_GATEWAY,
+					MsoException.ServiceException, "Failed calling bpmn " + e.getMessage(),
 					ErrorNumbers.SVC_NO_SERVER_RESOURCES, null);
-			alarmLogger.sendAlarm("MsoConfigurationError",
-					MsoAlarmLogger.CRITICAL,
+			alarmLogger.sendAlarm("MsoConfigurationError", MsoAlarmLogger.CRITICAL,
 					Messages.errors.get(ErrorNumbers.NO_COMMUNICATION_TO_BPEL));
-			msoLogger.error(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR,
-					MSO_PROP_APIHANDLER_INFRA, "", "",
-					MsoLogger.ErrorCode.AvailabilityError,
+			msoLogger.error(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.AvailabilityError, "Exception while communicate with BPMN engine");
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.CommunicationError,
 					"Exception while communicate with BPMN engine");
-			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR,
-					MsoLogger.ResponseCode.CommunicationError,
-					"Exception while communicate with BPMN engine");
-			msoLogger.debug("End of the transaction, the final response is: "
-					+ (String) resp.getEntity());
+			msoLogger.debug("End of the transaction, the final response is: " + (String) resp.getEntity());
 			return resp;
 		}
 
 		if (response == null) {
-			Response resp = msoRequest.buildServiceErrorResponse(
-					HttpStatus.SC_BAD_GATEWAY, MsoException.ServiceException,
-					"bpelResponse is null",
-					ErrorNumbers.SVC_NO_SERVER_RESOURCES, null);
-			msoLogger.error(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR,
-					MSO_PROP_APIHANDLER_INFRA, "", "",
-					MsoLogger.ErrorCode.BusinessProcesssError,
-					"Null response from BPEL");
-			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR,
-					MsoLogger.ResponseCode.InternalError,
+			Response resp = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_GATEWAY,
+					MsoException.ServiceException, "bpelResponse is null", ErrorNumbers.SVC_NO_SERVER_RESOURCES, null);
+			msoLogger.error(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",
+					MsoLogger.ErrorCode.BusinessProcesssError, "Null response from BPEL");
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.InternalError,
 					"Null response from BPMN");
-			msoLogger.debug("End of the transaction, the final response is: "
-					+ (String) resp.getEntity());
+			msoLogger.debug(END_OF_THE_TRANSACTION + (String) resp.getEntity());
 			return resp;
 		}
 
-		ResponseHandler respHandler = new ResponseHandler(response,
-				requestClient.getType());
+		ResponseHandler respHandler = new ResponseHandler(response, requestClient.getType());
 		int bpelStatus = respHandler.getStatus();
 
+		return beplStatusUpdate(requestId, startTime, msoRequest, requestClient, respHandler, bpelStatus);
+	}
+
+	private void closeCatalogDB(CatalogDatabase db) {
+		if (db != null) {
+			db.close();
+		}
+	}
+
+	private InfraActiveRequests checkForDuplicateRecord(Action action, HashMap<String, String> instanceIdMap,
+			String instanceName, String requestScope) {
+		InfraActiveRequests dupValue = null;
+		if (!(instanceName == null && "service".equals(requestScope)
+				&& (action == Action.createInstance || action == Action.activateInstance))) {
+			dupValue = (RequestsDatabase.getInstance()).checkInstanceNameDuplicate(instanceIdMap, instanceName,
+					requestScope);
+		}
+		return dupValue;
+	}
+
+	private Response duplicateRecordFound(Action action, HashMap<String, String> instanceIdMap, long startTime,
+			MsoRequest msoRequest, InfraActiveRequests dup, String instanceName, String requestScope) {
+		String instance = null;
+		if (instanceName != null) {
+			instance = instanceName;
+		} else {
+			instance = instanceIdMap.get(requestScope + "InstanceId");
+		}
+		String dupMessage = "Error: Locked instance - This " + requestScope + " (" + instance + ") "
+				+ "already has a request being worked with a status of " + dup.getRequestStatus() + " (RequestId - "
+				+ dup.getRequestId() + "). The existing request must finish or be cleaned up before proceeding.";
+
+		Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_CONFLICT, MsoException.ServiceException,
+				dupMessage, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, null);
+
+		msoLogger.warn(MessageEnum.APIH_DUPLICATE_FOUND, dupMessage, "", "", MsoLogger.ErrorCode.SchemaError,
+				"Duplicate request - Subscriber already has a request for this service");
+		msoRequest.createRequestRecord(Status.FAILED, action);
+		msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.Conflict, dupMessage);
+		msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());
+		return response;
+	}
+
+	private Response beplStatusUpdate(String requestId, long startTime, MsoRequest msoRequest,
+			RequestClient requestClient, ResponseHandler respHandler, int bpelStatus) {
 		// BPEL accepted the request, the request is in progress
 		if (bpelStatus == HttpStatus.SC_ACCEPTED) {
 			String camundaJSONResponseBody = respHandler.getResponseBody();
-			msoLogger
-			.debug("Received from Camunda: " + camundaJSONResponseBody);
-			(RequestsDatabase.getInstance()).updateInfraStatus(requestId,
-					Status.IN_PROGRESS.toString(),
-					Constants.PROGRESS_REQUEST_IN_PROGRESS,
-					Constants.MODIFIED_BY_APIHANDLER);
-
-			msoLogger.recordAuditEvent(startTime,
-					MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
+			msoLogger.debug("Received from Camunda: " + camundaJSONResponseBody);
+			(RequestsDatabase.getInstance()).updateInfraStatus(requestId, Status.IN_PROGRESS.toString(),
+					Constants.PROGRESS_REQUEST_IN_PROGRESS, Constants.MODIFIED_BY_APIHANDLER);
+
+			msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc,
 					"BPMN accepted the request, the request is in progress");
-			msoLogger.debug("End of the transaction, the final response is: "
-					+ (String) camundaJSONResponseBody);
-			return Response.status(HttpStatus.SC_ACCEPTED)
-					.entity(camundaJSONResponseBody).build();
+			msoLogger.debug(END_OF_THE_TRANSACTION + camundaJSONResponseBody);
+			return Response.status(HttpStatus.SC_ACCEPTED).entity(camundaJSONResponseBody).build();
 		} else {
-			List<String> variables = new ArrayList<String>();
+			List<String> variables = new ArrayList<>();
 			variables.add(bpelStatus + "");
 			String camundaJSONResponseBody = respHandler.getResponseBody();
-			if (camundaJSONResponseBody != null
-					&& !camundaJSONResponseBody.isEmpty()) {
-				Response resp = msoRequest.buildServiceErrorResponse(
-						bpelStatus, MsoException.ServiceException,
-						"Request Failed due to BPEL error with HTTP Status= %1 "
-								+ '\n' + camundaJSONResponseBody,
-								ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, variables);
-				msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR,
-						requestClient.getUrl(), "", "",
+			if (camundaJSONResponseBody != null && !camundaJSONResponseBody.isEmpty()) {
+				Response resp = msoRequest.buildServiceErrorResponse(bpelStatus, MsoException.ServiceException,
+						"Request Failed due to BPEL error with HTTP Status= %1 " + '\n' + camundaJSONResponseBody,
+						ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, variables);
+				msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR, requestClient.getUrl(), "", "",
 						MsoLogger.ErrorCode.BusinessProcesssError,
-						"Response from BPEL engine is failed with HTTP Status="
-								+ bpelStatus);
-				msoLogger.recordAuditEvent(startTime,
-						MsoLogger.StatusCode.ERROR,
-						MsoLogger.ResponseCode.InternalError,
+						"Response from BPEL engine is failed with HTTP Status=" + bpelStatus);
+				msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.InternalError,
 						"Response from BPMN engine is failed");
-				msoLogger
-				.debug("End of the transaction, the final response is: "
-						+ (String) resp.getEntity());
+				msoLogger.debug(END_OF_THE_TRANSACTION + (String) resp.getEntity());
 				return resp;
 			} else {
-				Response resp = msoRequest
-						.buildServiceErrorResponse(
-								bpelStatus,
-								MsoException.ServiceException,
-								"Request Failed due to BPEL error with HTTP Status= %1",
-								ErrorNumbers.SVC_DETAILED_SERVICE_ERROR,
-								variables);
-				msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR,
-						requestClient.getUrl(), "", "",
-						MsoLogger.ErrorCode.BusinessProcesssError,
-						"Response from BPEL engine is empty");
-				msoLogger.recordAuditEvent(startTime,
-						MsoLogger.StatusCode.ERROR,
-						MsoLogger.ResponseCode.InternalError,
+				Response resp = msoRequest.buildServiceErrorResponse(bpelStatus, MsoException.ServiceException,
+						"Request Failed due to BPEL error with HTTP Status= %1",
+						ErrorNumbers.SVC_DETAILED_SERVICE_ERROR, variables);
+				msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR, requestClient.getUrl(), "", "",
+						MsoLogger.ErrorCode.BusinessProcesssError, "Response from BPEL engine is empty");
+				msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.InternalError,
 						"Response from BPEL engine is empty");
-				msoLogger
-				.debug("End of the transaction, the final response is: "
-						+ (String) resp.getEntity());
+				msoLogger.debug(END_OF_THE_TRANSACTION + (String) resp.getEntity());
 				return resp;
 			}
 		}
 	}
 
-	private RecipeLookupResult getServiceInstanceOrchestrationURI(
-			CatalogDatabase db, E2EServiceInstanceRequest sir, Action action) {
-
-		RecipeLookupResult recipeLookupResult = null;
+	/**
+	 * Getting recipes from catalogDb
+	 * 
+	 * @param db
+	 * @param action
+	 * @return
+	 */
+	private RecipeLookupResult getServiceInstanceOrchestrationURI(CatalogDatabase db, Action action) {
 
-		recipeLookupResult = getServiceURI(db, sir, action);
+		RecipeLookupResult recipeLookupResult = getServiceURI(db, action);
 
 		if (recipeLookupResult != null) {
-			msoLogger.debug ("Orchestration URI is: " + recipeLookupResult.getOrchestrationURI() + ", recipe Timeout is: " + Integer.toString(recipeLookupResult.getRecipeTimeout ()));
-		}
-		else {
+			msoLogger.debug("Orchestration URI is: " + recipeLookupResult.getOrchestrationURI()
+					+ ", recipe Timeout is: " + Integer.toString(recipeLookupResult.getRecipeTimeout()));
+		} else {
 			msoLogger.debug("No matching recipe record found");
 		}
 		return recipeLookupResult;
 	}
 
-	private RecipeLookupResult getServiceURI(CatalogDatabase db,
-			E2EServiceInstanceRequest sir, Action action) {
+	/**
+	 * Getting recipes from catalogDb
+	 * 
+	 * @param db
+	 * @param action
+	 * @return
+	 */
+	private RecipeLookupResult getServiceURI(CatalogDatabase db, Action action) {
 
 		String defaultServiceModelName = "UUI_DEFAULT";
 
-		Service serviceRecord = null;
-		ServiceRecipe recipe = null;
-
-		serviceRecord = db.getServiceByModelName(defaultServiceModelName);
-		recipe = db.getServiceRecipeByModelUUID(serviceRecord.getModelUUID(), action.name());
+		Service serviceRecord = db.getServiceByModelName(defaultServiceModelName);
+		ServiceRecipe recipe = db.getServiceRecipeByModelUUID(serviceRecord.getModelUUID(), action.name());
 
 		if (recipe == null) {
 			return null;
 		}
-		return new RecipeLookupResult(recipe.getOrchestrationUri(),
-				recipe.getRecipeTimeout());
+		return new RecipeLookupResult(recipe.getOrchestrationUri(), recipe.getRecipeTimeout());
 
 	}
 
-	private String mappingObtainedRequestJSONToServiceInstanceRequest(E2EServiceInstanceRequest e2eSir){
+	/**
+	 * Converting E2EServiceInstanceRequest to ServiceInstanceRequest and
+	 * passing it to camunda engine.
+	 * 
+	 * @param e2eSir
+	 * @return
+	 */
+	private String mapReqJsonToSvcInstReq(E2EServiceInstanceRequest e2eSir, String requestJSON) {
 
-		ServiceInstancesRequest sir = new ServiceInstancesRequest();
+		sir = new ServiceInstancesRequest();
 
 		String returnString = null;
 		RequestDetails requestDetails = new RequestDetails();
 		ModelInfo modelInfo = new ModelInfo();
-		
-		//ModelInvariantId
+
+		// ModelInvariantId
 		modelInfo.setModelInvariantId(e2eSir.getService().getServiceDefId());
-		
-		//modelNameVersionId
+
+		// modelNameVersionId
 		modelInfo.setModelNameVersionId(e2eSir.getService().getTemplateId());
-		
+
 		String modelInfoValue = e2eSir.getService().getParameters().getNodeTemplateName();
 		String[] arrayOfInfo = modelInfoValue.split(":");
 		String modelName = arrayOfInfo[0];
 		String modelVersion = arrayOfInfo[1];
-		
-		//modelName
+
+		// modelName
 		modelInfo.setModelName(modelName);
-		
-		//modelVersion
+
+		// modelVersion
 		modelInfo.setModelVersion(modelVersion);
-		
-		//modelType
-		//if(ModelType.service.equals(e2eSir.getService().getParameters().getNodeType())){
-			modelInfo.setModelType(ModelType.service);
-		//}
-		
-		//setting modelInfo to requestDetails
+
+		// modelType
+		modelInfo.setModelType(ModelType.service);
+
+		// setting modelInfo to requestDetails
 		requestDetails.setModelInfo(modelInfo);
-		
+
 		SubscriberInfo subscriberInfo = new SubscriberInfo();
 
-		//globalsubscriberId
+		// globalsubscriberId
 		subscriberInfo.setGlobalSubscriberId(e2eSir.getService().getParameters().getGlobalSubscriberId());
 
-		//subscriberName
+		// subscriberName
 		subscriberInfo.setSubscriberName(e2eSir.getService().getParameters().getSubscriberName());
-		
-		//setting subscriberInfo to requestDetails
+
+		// setting subscriberInfo to requestDetails
 		requestDetails.setSubscriberInfo(subscriberInfo);
-		
+
 		RequestInfo requestInfo = new RequestInfo();
-		
-		//instanceName
+
+		// instanceName
 		requestInfo.setInstanceName(e2eSir.getService().getName());
 
-		//source
+		// source
 		requestInfo.setSource("UUI");
 
-		//suppressRollback
+		// suppressRollback
 		requestInfo.setSuppressRollback(true);
 
-		//setting requestInfo to requestDetails
+		// setting requestInfo to requestDetails
 		requestDetails.setRequestInfo(requestInfo);
-		
+
 		RequestParameters requestParameters = new RequestParameters();
-		
-		//subscriptionServiceType
+
+		// subscriptionServiceType
 		requestParameters.setSubscriptionServiceType("MOG");
 
-		//Userparams
+		// Userparams
 		List<E2EUserParam> userParams;
 		userParams = e2eSir.getService().getParameters().getRequestParameters().getUserParams();
 		List<Map<String, String>> userParamList = new ArrayList<>();
-		Map<String,String> userParamMap= new HashMap<>();
-		for(E2EUserParam userp: userParams){
+		Map<String, String> userParamMap = new HashMap<>();
+		//complete json request updated in the camunda
+		userParamMap.put("UUIRequest", requestJSON);
+		userParamMap.put("ServiceInstanceName", e2eSir.getService().getName());
+
+		Map<String, String> userParamMap3 = null;
+		for (E2EUserParam userp : userParams) {
 			userParamMap.put(userp.getName(), userp.getValue());
 			userParamList.add(userParamMap);
 		}
 
 		requestParameters.setUserParams(userParamList);
-		
-		//setting requestParameters to requestDetails
+
+		// setting requestParameters to requestDetails
 		requestDetails.setRequestParameters(requestParameters);
-		
+
 		sir.setRequestDetails(requestDetails);
 
-		//converting to string
+		// converting to string
 		ObjectMapper mapper = new ObjectMapper();
 		try {
 			returnString = mapper.writeValueAsString(sir);
@@ -507,4 +547,42 @@ public class E2EServiceInstances {
 
 		return returnString;
 	}
+
+	private void createOperationStatusRecord(Action action, String requestId) {
+		{
+			AbstractSessionFactoryManager requestsDbSessionFactoryManager = new RequestsDbSessionFactoryManager();
+
+			Session session = null;
+			try {
+
+				session = requestsDbSessionFactoryManager.getSessionFactory().openSession();
+				session.beginTransaction();
+
+				// if (null == sir) {
+				// sir = new ServiceInstancesRequest();
+				// }
+				OperationStatus os = new OperationStatus();
+				os.setOperation(action.name());
+				os.setOperationContent("");
+				os.setOperationId("");
+				os.setProgress("0");
+				os.setReason("");
+				os.setResult("Processing");
+				os.setServiceId(requestId);
+				os.setUserId("");
+				os.setFinishedAt(new Timestamp(System.currentTimeMillis()));
+				os.setOperateAt(new Timestamp(System.currentTimeMillis()));
+
+				session.save(os);
+				session.getTransaction().commit();
+
+			} catch (Exception e) {
+				msoLogger.error (MessageEnum.APIH_DB_INSERT_EXC, "", "", MsoLogger.ErrorCode.DataError, "Exception when creation record request in Operation", e);
+			} finally {
+				if (null != session) {
+					session.close();
+				}
+			}
+		}
+	}
 }
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
index 98a2a11800..b247d81d7f 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java
@@ -111,7 +111,7 @@ public class E2EServiceInstancesTest {
         };
         
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -175,7 +175,7 @@ public class E2EServiceInstancesTest {
         };
         
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -239,7 +239,7 @@ public class E2EServiceInstancesTest {
         };
         
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -291,7 +291,7 @@ public class E2EServiceInstancesTest {
         };
         
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -340,7 +340,7 @@ public class E2EServiceInstancesTest {
         };
         
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -370,7 +370,7 @@ public class E2EServiceInstancesTest {
             }
         };
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("Exception while creating record in DB null") != -1);
@@ -401,7 +401,7 @@ public class E2EServiceInstancesTest {
             }
         };
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		//assertTrue(respStr.indexOf("Recipe could not be retrieved from catalog DB ") !=-1);
@@ -422,7 +422,7 @@ public class E2EServiceInstancesTest {
             }
         };
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("The existing request must finish or be cleaned up before proceeding.") != -1);
@@ -437,7 +437,7 @@ public class E2EServiceInstancesTest {
             }
         };
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		//assertTrue(respStr.indexOf("Recipe could not be retrieved from catalog DB ") != -1);
@@ -447,7 +447,7 @@ public class E2EServiceInstancesTest {
 	@Test
 	public void createE2EServiceInstanceTestDBQueryFail(){
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.createE2EServiceInstance(request, "v3");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("SVC2000") != -1);
@@ -465,7 +465,7 @@ public class E2EServiceInstancesTest {
 	@Test
 	public void deleteE2EServiceInstanceTestNormal(){
 		E2EServiceInstances instance = new E2EServiceInstances();
-		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"modelInvariantId value from SDC?\",\"templateId\":\"modelVersionId value from SDC??\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"NEED THIS UUI - AAI\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
+		String request = "{\"service\":{\"name\":\"service\",\"description\":\"so_test1\",\"serviceDefId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"templateId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"parameters\":{\"domainHost\":\"localhost\",\"nodeTemplateName\":\"modelName:v3\",\"nodeType\":\"service\",\"globalSubscriberId\":\"4050083f-465f-4838-af1e-47a545222ad1\",\"subscriberName\":\"NEED THIS UUI - AAI\",\"requestParameters\":{\"subscriptionServiceType\":\"MOG\",\"userParams\":[{\"name\":\"someUserParam\",\"value\":\"someValue\"},{\"name\":\"segments\",\"value\":\"value\"},{\"name\":\"nsParameters\",\"value\":\"othervalue\"}]}}}}";
 		Response resp = instance.deleteE2EServiceInstance(request, "v3", "12345678");
 		String respStr = resp.getEntity().toString();
 		assertTrue(respStr.indexOf("SVC2000") != -1);
-- 
cgit 1.2.3-korg