Replaced all tabs with spaces in java and pom.xml
[so.git] / mso-api-handlers / mso-api-handler-infra / src / main / java / org / onap / so / apihandlerinfra / RequestHandlerUtils.java
index c02b40a..bbcc120 100644 (file)
@@ -26,7 +26,6 @@ package org.onap.so.apihandlerinfra;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.databind.ObjectMapper;
-
 import org.apache.commons.lang.StringUtils;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
@@ -77,14 +76,11 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
-
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.xml.bind.DatatypeConverter;
-
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-
 import java.io.IOException;
 import java.net.URL;
 import java.security.GeneralSecurityException;
@@ -98,470 +94,532 @@ import java.util.Optional;
 @Component
 public class RequestHandlerUtils {
 
-       private static Logger logger = LoggerFactory.getLogger(RequestHandlerUtils.class);
-       
-       private static final String SAVE_TO_DB = "save instance to db";
-       
-       @Autowired
-       private Environment env;        
-
-       @Autowired
-       private RequestClientFactory reqClientFactory;
-       
-       @Autowired
-       private RequestsDbClient infraActiveRequestsClient;
-       
-       @Autowired
-       private ResponseBuilder builder;
-       
-       @Autowired
-       private MsoRequest msoRequest;
-       
-       @Autowired
-       private RestTemplate restTemplate;
-       
-       @Autowired
-       private CatalogDbClient catalogDbClient;
-               
-       public Response postBPELRequest(InfraActiveRequests currentActiveReq, RequestClientParameter requestClientParameter, String orchestrationUri, String requestScope)throws ApiException {
-               RequestClient requestClient = null;
-               HttpResponse response = null;
-               try {
-                       requestClient = reqClientFactory.getRequestClient (orchestrationUri);
-                       response = requestClient.post(requestClientParameter);
-               } catch (Exception e) {
-                       
-            ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, ErrorCode.AvailabilityError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+    private static Logger logger = LoggerFactory.getLogger(RequestHandlerUtils.class);
+
+    private static final String SAVE_TO_DB = "save instance to db";
+
+    @Autowired
+    private Environment env;
+
+    @Autowired
+    private RequestClientFactory reqClientFactory;
+
+    @Autowired
+    private RequestsDbClient infraActiveRequestsClient;
+
+    @Autowired
+    private ResponseBuilder builder;
+
+    @Autowired
+    private MsoRequest msoRequest;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private CatalogDbClient catalogDbClient;
+
+    public Response postBPELRequest(InfraActiveRequests currentActiveReq, RequestClientParameter requestClientParameter,
+            String orchestrationUri, String requestScope) throws ApiException {
+        RequestClient requestClient = null;
+        HttpResponse response = null;
+        try {
+            requestClient = reqClientFactory.getRequestClient(orchestrationUri);
+            response = requestClient.post(requestClientParameter);
+        } catch (Exception e) {
+
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, ErrorCode.AvailabilityError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
             String url = requestClient != null ? requestClient.getUrl() : "";
-            ClientConnectionException clientException = new ClientConnectionException.Builder(url, HttpStatus.SC_BAD_GATEWAY, ErrorNumbers.SVC_NO_SERVER_RESOURCES).cause(e).errorInfo(errorLoggerInfo).build();
+            ClientConnectionException clientException =
+                    new ClientConnectionException.Builder(url, HttpStatus.SC_BAD_GATEWAY,
+                            ErrorNumbers.SVC_NO_SERVER_RESOURCES).cause(e).errorInfo(errorLoggerInfo).build();
             updateStatus(currentActiveReq, Status.FAILED, clientException.getMessage());
 
             throw clientException;
-               }
+        }
+
+        if (response == null) {
 
-               if (response == null) {
-                       
-            ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, ErrorCode.BusinessProcesssError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-            ClientConnectionException clientException = new ClientConnectionException.Builder(requestClient.getUrl(), HttpStatus.SC_BAD_GATEWAY, ErrorNumbers.SVC_NO_SERVER_RESOURCES).errorInfo(errorLoggerInfo).build();
+            ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR,
+                    ErrorCode.BusinessProcesssError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ClientConnectionException clientException = new ClientConnectionException.Builder(requestClient.getUrl(),
+                    HttpStatus.SC_BAD_GATEWAY, ErrorNumbers.SVC_NO_SERVER_RESOURCES).errorInfo(errorLoggerInfo).build();
 
             updateStatus(currentActiveReq, Status.FAILED, clientException.getMessage());
 
             throw clientException;
-               }
+        }
 
-               ResponseHandler respHandler = null;
+        ResponseHandler respHandler = null;
         int bpelStatus = 500;
         try {
-            respHandler = new ResponseHandler (response, requestClient.getType ());
-            bpelStatus = respHandler.getStatus ();
+            respHandler = new ResponseHandler(response, requestClient.getType());
+            bpelStatus = respHandler.getStatus();
         } catch (ApiException e) {
             logger.error("Exception occurred", e);
-            ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-            ValidateException validateException = new ValidateException.Builder("Exception caught mapping Camunda JSON response to object", HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
-                        .errorInfo(errorLoggerInfo).build();
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ValidateException validateException =
+                    new ValidateException.Builder("Exception caught mapping Camunda JSON response to object",
+                            HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
+                                    .errorInfo(errorLoggerInfo).build();
+            updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
+            throw validateException;
+        }
+
+        // BPEL accepted the request, the request is in progress
+        if (bpelStatus == HttpStatus.SC_ACCEPTED) {
+            ServiceInstancesResponse jsonResponse;
+            CamundaResponse camundaResp = respHandler.getResponse();
+
+            if ("Success".equalsIgnoreCase(camundaResp.getMessage())) {
+                try {
+                    ObjectMapper mapper = new ObjectMapper();
+                    jsonResponse = mapper.readValue(camundaResp.getResponse(), ServiceInstancesResponse.class);
+                    jsonResponse.getRequestReferences().setRequestId(requestClientParameter.getRequestId());
+                    Optional<URL> selfLinkUrl = msoRequest.buildSelfLinkUrl(currentActiveReq.getRequestUrl(),
+                            requestClientParameter.getRequestId());
+                    if (selfLinkUrl.isPresent()) {
+                        jsonResponse.getRequestReferences().setRequestSelfLink(selfLinkUrl.get());
+                    } else {
+                        jsonResponse.getRequestReferences().setRequestSelfLink(null);
+                    }
+                } catch (IOException e) {
+                    logger.error("Exception occurred", e);
+                    ErrorLoggerInfo errorLoggerInfo =
+                            new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError)
+                                    .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+                    ValidateException validateException =
+                            new ValidateException.Builder("Exception caught mapping Camunda JSON response to object",
+                                    HttpStatus.SC_NOT_ACCEPTABLE, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
+                                            .errorInfo(errorLoggerInfo).build();
+                    updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
+                    throw validateException;
+                }
+                return builder.buildResponse(HttpStatus.SC_ACCEPTED, requestClientParameter.getRequestId(),
+                        jsonResponse, requestClientParameter.getApiVersion());
+            }
+        }
+
+        List<String> variables = new ArrayList<>();
+        variables.add(bpelStatus + "");
+        String camundaJSONResponseBody = respHandler.getResponseBody();
+        if (camundaJSONResponseBody != null && !camundaJSONResponseBody.isEmpty()) {
+
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError)
+                            .errorSource(requestClient.getUrl()).build();
+            BPMNFailureException bpmnException =
+                    new BPMNFailureException.Builder(String.valueOf(bpelStatus) + camundaJSONResponseBody, bpelStatus,
+                            ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).errorInfo(errorLoggerInfo).build();
+
+            updateStatus(currentActiveReq, Status.FAILED, bpmnException.getMessage());
+
+            throw bpmnException;
+        } else {
+
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError)
+                            .errorSource(requestClient.getUrl()).build();
+
+
+            BPMNFailureException servException = new BPMNFailureException.Builder(String.valueOf(bpelStatus),
+                    bpelStatus, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).errorInfo(errorLoggerInfo).build();
+            updateStatus(currentActiveReq, Status.FAILED, servException.getMessage());
+
+            throw servException;
+        }
+    }
+
+    public void updateStatus(InfraActiveRequests aq, Status status, String errorMessage)
+            throws RequestDbFailureException {
+        if ((status == Status.FAILED) || (status == Status.COMPLETE)) {
+            aq.setStatusMessage(errorMessage);
+            aq.setProgress(new Long(100));
+            aq.setRequestStatus(status.toString());
+            Timestamp endTimeStamp = new Timestamp(System.currentTimeMillis());
+            aq.setEndTime(endTimeStamp);
+            try {
+                infraActiveRequestsClient.save(aq);
+            } catch (Exception e) {
+                ErrorLoggerInfo errorLoggerInfo =
+                        new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ACCESS_EXC, ErrorCode.DataError)
+                                .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+                throw new RequestDbFailureException.Builder(SAVE_TO_DB, e.toString(),
+                        HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e)
+                                .errorInfo(errorLoggerInfo).build();
+            }
+        }
+    }
+
+    public String deriveRequestScope(Actions action, ServiceInstancesRequest sir, String requestUri) {
+        if (action == Action.inPlaceSoftwareUpdate || action == Action.applyUpdatedConfig) {
+            return (ModelType.vnf.name());
+        } else if (action == Action.addMembers || action == Action.removeMembers) {
+            return (ModelType.instanceGroup.toString());
+        } else {
+            String requestScope;
+            if (sir.getRequestDetails().getModelInfo().getModelType() == null) {
+                requestScope = requestScopeFromUri(requestUri);
+            } else {
+                requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();
+            }
+            return requestScope;
+        }
+    }
+
+
+    public void validateHeaders(ContainerRequestContext context) throws ValidationException {
+        MultivaluedMap<String, String> headers = context.getHeaders();
+        if (!headers.containsKey(ONAPLogConstants.Headers.REQUEST_ID)) {
+            throw new ValidationException(ONAPLogConstants.Headers.REQUEST_ID + " header", true);
+        }
+        if (!headers.containsKey(ONAPLogConstants.Headers.PARTNER_NAME)) {
+            throw new ValidationException(ONAPLogConstants.Headers.PARTNER_NAME + " header", true);
+        }
+        if (!headers.containsKey(REQUESTOR_ID)) {
+            throw new ValidationException(REQUESTOR_ID + " header", true);
+        }
+    }
+
+    public String getRequestUri(ContainerRequestContext context, String uriPrefix) {
+        String requestUri = context.getUriInfo().getPath();
+        String httpUrl = MDC.get(LogConstants.URI_BASE).concat(requestUri);
+        MDC.put(LogConstants.HTTP_URL, httpUrl);
+        requestUri = requestUri.substring(requestUri.indexOf(uriPrefix) + uriPrefix.length());
+        return requestUri;
+    }
+
+    public InfraActiveRequests duplicateCheck(Actions action, HashMap<String, String> instanceIdMap, long startTime,
+            MsoRequest msoRequest, String instanceName, String requestScope, InfraActiveRequests currentActiveReq)
+            throws ApiException {
+        InfraActiveRequests dup = null;
+        try {
+            if (!(instanceName == null && requestScope.equals("service") && (action == Action.createInstance
+                    || action == Action.activateInstance || action == Action.assignInstance))) {
+                dup = infraActiveRequestsClient.checkInstanceNameDuplicate(instanceIdMap, instanceName, requestScope);
+            }
+        } catch (Exception e) {
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_CHECK_EXC, ErrorCode.DataError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            RequestDbFailureException requestDbFailureException =
+                    new RequestDbFailureException.Builder("check for duplicate instance", e.toString(),
+                            HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e)
+                                    .errorInfo(errorLoggerInfo).build();
+            updateStatus(currentActiveReq, Status.FAILED, requestDbFailureException.getMessage());
+            throw requestDbFailureException;
+        }
+        return dup;
+    }
+
+    public boolean camundaHistoryCheck(InfraActiveRequests duplicateRecord, InfraActiveRequests currentActiveReq)
+            throws RequestDbFailureException, ContactCamundaException {
+        String requestId = duplicateRecord.getRequestId();
+        String path = env.getProperty("mso.camunda.rest.history.uri") + requestId;
+        String targetUrl = env.getProperty("mso.camundaURL") + path;
+        HttpHeaders headers =
+                setCamundaHeaders(env.getRequiredProperty("mso.camundaAuth"), env.getRequiredProperty("mso.msoKey"));
+        HttpEntity<?> requestEntity = new HttpEntity<>(headers);
+        ResponseEntity<List<HistoricProcessInstanceEntity>> response = null;
+        try {
+            response = restTemplate.exchange(targetUrl, HttpMethod.GET, requestEntity,
+                    new ParameterizedTypeReference<List<HistoricProcessInstanceEntity>>() {});
+        } catch (HttpStatusCodeException e) {
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_CHECK_EXC, ErrorCode.DataError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ContactCamundaException contactCamundaException =
+                    new ContactCamundaException.Builder(requestId, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR,
+                            ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e).errorInfo(errorLoggerInfo).build();
+            updateStatus(currentActiveReq, Status.FAILED, contactCamundaException.getMessage());
+            throw contactCamundaException;
+        }
+        if (response.getBody().isEmpty()) {
+            updateStatus(duplicateRecord, Status.COMPLETE, "Request Completed");
+        }
+        for (HistoricProcessInstance instance : response.getBody()) {
+            if (instance.getState().equals("ACTIVE")) {
+                return true;
+            } else {
+                updateStatus(duplicateRecord, Status.COMPLETE, "Request Completed");
+            }
+        }
+        return false;
+    }
+
+    protected HttpHeaders setCamundaHeaders(String auth, String msoKey) {
+        HttpHeaders headers = new HttpHeaders();
+        List<org.springframework.http.MediaType> acceptableMediaTypes = new ArrayList<>();
+        acceptableMediaTypes.add(org.springframework.http.MediaType.APPLICATION_JSON);
+        headers.setAccept(acceptableMediaTypes);
+        try {
+            String userCredentials = CryptoUtils.decrypt(auth, msoKey);
+            if (userCredentials != null) {
+                headers.add(HttpHeaders.AUTHORIZATION,
+                        "Basic " + DatatypeConverter.printBase64Binary(userCredentials.getBytes()));
+            }
+        } catch (GeneralSecurityException e) {
+            logger.error("Security exception", e);
+        }
+        return headers;
+    }
+
+    public ServiceInstancesRequest convertJsonToServiceInstanceRequest(String requestJSON, Actions action,
+            long startTime, ServiceInstancesRequest sir, MsoRequest msoRequest, String requestId, String requestUri)
+            throws ApiException {
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            return mapper.readValue(requestJSON, ServiceInstancesRequest.class);
+
+        } catch (IOException e) {
+
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+
+            ValidateException validateException =
+                    new ValidateException.Builder("Error mapping request: " + e.getMessage(), HttpStatus.SC_BAD_REQUEST,
+                            ErrorNumbers.SVC_BAD_PARAMETER).cause(e).errorInfo(errorLoggerInfo).build();
+            String requestScope = requestScopeFromUri(requestUri);
+
+            msoRequest.createErrorRequestRecord(Status.FAILED, requestId, validateException.getMessage(), action,
+                    requestScope, requestJSON);
+
+            throw validateException;
+        }
+    }
+
+    public void parseRequest(ServiceInstancesRequest sir, HashMap<String, String> instanceIdMap, Actions action,
+            String version, String requestJSON, Boolean aLaCarte, String requestId,
+            InfraActiveRequests currentActiveReq) throws ValidateException, RequestDbFailureException {
+        int reqVersion = Integer.parseInt(version.substring(1));
+        try {
+            msoRequest.parse(sir, instanceIdMap, action, version, requestJSON, reqVersion, aLaCarte);
+        } catch (Exception e) {
+            logger.error("failed to parse request", e);
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ValidateException validateException =
+                    new ValidateException.Builder("Error parsing request: " + e.getMessage(), HttpStatus.SC_BAD_REQUEST,
+                            ErrorNumbers.SVC_BAD_PARAMETER).cause(e).errorInfo(errorLoggerInfo).build();
+
             updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
+
             throw validateException;
         }
+    }
+
+    public void buildErrorOnDuplicateRecord(InfraActiveRequests currentActiveReq, Actions action,
+            HashMap<String, String> instanceIdMap, long startTime, MsoRequest msoRequest, String instanceName,
+            String requestScope, InfraActiveRequests dup) throws ApiException {
+
+        String instance = null;
+        if (instanceName != null) {
+            instance = instanceName;
+        } else {
+            instance = instanceIdMap.get(requestScope + "InstanceId");
+        }
+        ErrorLoggerInfo errorLoggerInfo =
+                new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_FOUND, ErrorCode.SchemaError)
+                        .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+
+        DuplicateRequestException dupException =
+                new DuplicateRequestException.Builder(requestScope, instance, dup.getRequestStatus(),
+                        dup.getRequestId(), HttpStatus.SC_CONFLICT, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR)
+                                .errorInfo(errorLoggerInfo).build();
+
+        updateStatus(currentActiveReq, Status.FAILED, dupException.getMessage());
+
+        throw dupException;
+    }
+
+    public String getRequestId(ContainerRequestContext requestContext) throws ValidateException {
+        String requestId = null;
+        if (requestContext.getProperty("requestId") != null) {
+            requestId = requestContext.getProperty("requestId").toString();
+        }
+        if (UUIDChecker.isValidUUID(requestId)) {
+            return requestId;
+        } else {
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError)
+                            .errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ValidateException validateException =
+                    new ValidateException.Builder("Request Id " + requestId + " is not a valid UUID",
+                            HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER)
+                                    .errorInfo(errorLoggerInfo).build();
+
+            throw validateException;
+        }
+    }
+
+    public void setInstanceId(InfraActiveRequests currentActiveReq, String requestScope, String instanceId,
+            Map<String, String> instanceIdMap) {
+        if (StringUtils.isNotBlank(instanceId)) {
+            if (ModelType.service.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setServiceInstanceId(instanceId);
+            } else if (ModelType.vnf.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setVnfId(instanceId);
+            } else if (ModelType.vfModule.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setVfModuleId(instanceId);
+            } else if (ModelType.volumeGroup.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setVolumeGroupId(instanceId);
+            } else if (ModelType.network.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setNetworkId(instanceId);
+            } else if (ModelType.configuration.name().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setConfigurationId(instanceId);
+            } else if (ModelType.instanceGroup.toString().equalsIgnoreCase(requestScope)) {
+                currentActiveReq.setInstanceGroupId(instanceId);
+            }
+        } else if (instanceIdMap != null && !instanceIdMap.isEmpty()) {
+            if (instanceIdMap.get("serviceInstanceId") != null) {
+                currentActiveReq.setServiceInstanceId(instanceIdMap.get("serviceInstanceId"));
+            }
+            if (instanceIdMap.get("vnfInstanceId") != null) {
+                currentActiveReq.setVnfId(instanceIdMap.get("vnfInstanceId"));
+            }
+            if (instanceIdMap.get("vfModuleInstanceId") != null) {
+                currentActiveReq.setVfModuleId(instanceIdMap.get("vfModuleInstanceId"));
+            }
+            if (instanceIdMap.get("volumeGroupInstanceId") != null) {
+                currentActiveReq.setVolumeGroupId(instanceIdMap.get("volumeGroupInstanceId"));
+            }
+            if (instanceIdMap.get("networkInstanceId") != null) {
+                currentActiveReq.setNetworkId(instanceIdMap.get("networkInstanceId"));
+            }
+            if (instanceIdMap.get("configurationInstanceId") != null) {
+                currentActiveReq.setConfigurationId(instanceIdMap.get("configurationInstanceId"));
+            }
+            if (instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID) != null) {
+                currentActiveReq.setInstanceGroupId(instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID));
+            }
+        }
+    }
+
+    public String mapJSONtoMSOStyle(String msoRawRequest, ServiceInstancesRequest serviceInstRequest,
+            boolean isAlaCarte, Actions action) throws IOException {
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.setSerializationInclusion(Include.NON_NULL);
+        if (msoRawRequest != null) {
+            ServiceInstancesRequest sir = mapper.readValue(msoRawRequest, ServiceInstancesRequest.class);
+            if (serviceInstRequest != null && serviceInstRequest.getRequestDetails() != null
+                    && serviceInstRequest.getRequestDetails().getRequestParameters() != null) {
+                if (!isAlaCarte && Action.createInstance.equals(action)) {
+                    sir.getRequestDetails()
+                            .setCloudConfiguration(serviceInstRequest.getRequestDetails().getCloudConfiguration());
+                    sir.getRequestDetails().getRequestParameters().setUserParams(
+                            serviceInstRequest.getRequestDetails().getRequestParameters().getUserParams());
+                }
+                sir.getRequestDetails().getRequestParameters()
+                        .setUsePreload(serviceInstRequest.getRequestDetails().getRequestParameters().getUsePreload());
+            }
+
+            logger.debug("Value as string: {}", mapper.writeValueAsString(sir));
+            return mapper.writeValueAsString(sir);
+        }
+        return null;
+    }
+
+    public Optional<String> retrieveModelName(RequestParameters requestParams) {
+        String requestTestApi = null;
+        TestApi testApi = null;
+
+        if (requestParams != null) {
+            requestTestApi = requestParams.getTestApi();
+        }
+
+        if (requestTestApi == null) {
+            if (requestParams != null && requestParams.getALaCarte() != null && !requestParams.getALaCarte()) {
+                requestTestApi = env.getProperty(CommonConstants.MACRO_TEST_API);
+            } else {
+                requestTestApi = env.getProperty(CommonConstants.ALACARTE_TEST_API);
+            }
+        }
+
+        try {
+            testApi = TestApi.valueOf(requestTestApi);
+            return Optional.of(testApi.getModelName());
+        } catch (Exception e) {
+            logger.warn("Catching the exception on the valueOf enum call and continuing", e);
+            throw new IllegalArgumentException("Invalid TestApi is provided", e);
+        }
+    }
+
+    public String getDefaultModel(ServiceInstancesRequest sir) {
+        String defaultModel = sir.getRequestDetails().getRequestInfo().getSource() + "_DEFAULT";
+        Optional<String> oModelName = retrieveModelName(sir.getRequestDetails().getRequestParameters());
+        if (oModelName.isPresent()) {
+            defaultModel = oModelName.get();
+        }
+        return defaultModel;
+    }
+
+    public String getServiceType(String requestScope, ServiceInstancesRequest sir, Boolean aLaCarteFlag) {
+        String serviceType = null;
+        if (requestScope.equalsIgnoreCase(ModelType.service.toString())) {
+            String defaultServiceModelName = getDefaultModel(sir);
+            org.onap.so.db.catalog.beans.Service serviceRecord;
+            if (aLaCarteFlag) {
+                serviceRecord = catalogDbClient.getFirstByModelNameOrderByModelVersionDesc(defaultServiceModelName);
+                if (serviceRecord != null) {
+                    serviceType = serviceRecord.getServiceType();
+                }
+            } else {
+                serviceRecord =
+                        catalogDbClient.getServiceByID(sir.getRequestDetails().getModelInfo().getModelVersionId());
+                if (serviceRecord != null) {
+                    serviceType = serviceRecord.getServiceType();
+                } else {
+                    serviceRecord = catalogDbClient.getFirstByModelNameOrderByModelVersionDesc(defaultServiceModelName);
+                    if (serviceRecord != null) {
+                        serviceType = serviceRecord.getServiceType();
+                    }
+                }
+            }
+        } else {
+            serviceType = msoRequest.getServiceInstanceType(sir, requestScope);
+        }
+        return serviceType;
+    }
+
+    protected String setServiceInstanceId(String requestScope, ServiceInstancesRequest sir) {
+        if (sir.getServiceInstanceId() != null) {
+            return sir.getServiceInstanceId();
+        } else if (requestScope.equalsIgnoreCase(ModelType.instanceGroup.toString())) {
+            RelatedInstanceList[] relatedInstances = sir.getRequestDetails().getRelatedInstanceList();
+            if (relatedInstances != null) {
+                for (RelatedInstanceList relatedInstanceList : relatedInstances) {
+                    RelatedInstance relatedInstance = relatedInstanceList.getRelatedInstance();
+                    if (relatedInstance.getModelInfo().getModelType() == ModelType.service) {
+                        return relatedInstance.getInstanceId();
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    private String requestScopeFromUri(String requestUri) {
+        String requestScope;
+        if (requestUri.contains(ModelType.network.name())) {
+            requestScope = ModelType.network.name();
+        } else if (requestUri.contains(ModelType.vfModule.name())) {
+            requestScope = ModelType.vfModule.name();
+        } else if (requestUri.contains(ModelType.volumeGroup.name())) {
+            requestScope = ModelType.volumeGroup.name();
+        } else if (requestUri.contains(ModelType.configuration.name())) {
+            requestScope = ModelType.configuration.name();
+        } else if (requestUri.contains(ModelType.vnf.name())) {
+            requestScope = ModelType.vnf.name();
+        } else {
+            requestScope = ModelType.service.name();
+        }
+        return requestScope;
+    }
 
-               // BPEL accepted the request, the request is in progress
-               if (bpelStatus == HttpStatus.SC_ACCEPTED) {
-                       ServiceInstancesResponse jsonResponse;
-                       CamundaResponse camundaResp = respHandler.getResponse();
-                       
-                       if("Success".equalsIgnoreCase(camundaResp.getMessage())) {
-                               try {
-                                       ObjectMapper mapper = new ObjectMapper();
-                                       jsonResponse = mapper.readValue(camundaResp.getResponse(), ServiceInstancesResponse.class);
-                                       jsonResponse.getRequestReferences().setRequestId(requestClientParameter.getRequestId());
-                                       Optional<URL> selfLinkUrl = msoRequest.buildSelfLinkUrl(currentActiveReq.getRequestUrl(), requestClientParameter.getRequestId());
-                                       if(selfLinkUrl.isPresent()){
-                                               jsonResponse.getRequestReferences().setRequestSelfLink(selfLinkUrl.get());
-                                       } else {
-                                           jsonResponse.getRequestReferences().setRequestSelfLink(null);
-                                       }    
-                               } catch (IOException e) {
-                                       logger.error("Exception occurred", e);
-                                       ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                                       ValidateException validateException = new ValidateException.Builder("Exception caught mapping Camunda JSON response to object", HttpStatus.SC_NOT_ACCEPTABLE, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
-                                           .errorInfo(errorLoggerInfo).build();
-                                       updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
-                                       throw validateException;
-                               }       
-                               return builder.buildResponse(HttpStatus.SC_ACCEPTED, requestClientParameter.getRequestId(), jsonResponse, requestClientParameter.getApiVersion());
-                       } 
-               }
-                       
-               List<String> variables = new ArrayList<>();
-               variables.add(bpelStatus + "");
-               String camundaJSONResponseBody = respHandler.getResponseBody ();
-               if (camundaJSONResponseBody != null && !camundaJSONResponseBody.isEmpty ()) {
-                       
-                   ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError).errorSource(requestClient.getUrl()).build();
-                   BPMNFailureException bpmnException = new BPMNFailureException.Builder(String.valueOf(bpelStatus) + camundaJSONResponseBody, bpelStatus, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR)
-                           .errorInfo(errorLoggerInfo).build();
-
-                   updateStatus(currentActiveReq, Status.FAILED, bpmnException.getMessage());
-
-                   throw bpmnException;
-               } else {
-               
-                   ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError).errorSource(requestClient.getUrl()).build();
-
-
-                   BPMNFailureException servException = new BPMNFailureException.Builder(String.valueOf(bpelStatus), bpelStatus, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR)
-                           .errorInfo(errorLoggerInfo).build();
-                   updateStatus(currentActiveReq, Status.FAILED, servException.getMessage());
-
-                   throw servException;
-               }
-       }
-       
-       public void updateStatus(InfraActiveRequests aq, Status status, String errorMessage) throws RequestDbFailureException{
-               if ((status == Status.FAILED) || (status == Status.COMPLETE)) {
-                       aq.setStatusMessage (errorMessage);
-                       aq.setProgress(new Long(100));
-                       aq.setRequestStatus(status.toString());
-                       Timestamp endTimeStamp = new Timestamp (System.currentTimeMillis());
-                       aq.setEndTime (endTimeStamp);
-                       try{
-                               infraActiveRequestsClient.save(aq);
-                       }catch(Exception e){
-                               ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_DB_ACCESS_EXC, ErrorCode.DataError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                   throw new RequestDbFailureException.Builder(SAVE_TO_DB, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e)
-                           .errorInfo(errorLoggerInfo).build();
-                       }
-               }
-       }
-       
-       public String deriveRequestScope(Actions action, ServiceInstancesRequest sir, String requestUri) {
-               if(action == Action.inPlaceSoftwareUpdate || action == Action.applyUpdatedConfig){
-                       return (ModelType.vnf.name());
-               }else if(action == Action.addMembers || action == Action.removeMembers){
-                       return(ModelType.instanceGroup.toString());
-               }else{
-                       String requestScope;
-                       if(sir.getRequestDetails().getModelInfo().getModelType() == null){
-                               requestScope = requestScopeFromUri(requestUri);
-                       }else{
-                               requestScope = sir.getRequestDetails().getModelInfo().getModelType().name(); 
-                       }
-                       return requestScope; 
-               }
-       }
-       
-       
-       public void validateHeaders(ContainerRequestContext context) throws ValidationException{
-               MultivaluedMap<String, String> headers = context.getHeaders();
-               if(!headers.containsKey(ONAPLogConstants.Headers.REQUEST_ID)){
-                        throw new ValidationException(ONAPLogConstants.Headers.REQUEST_ID + " header", true);
-               }
-               if(!headers.containsKey(ONAPLogConstants.Headers.PARTNER_NAME)){
-                       throw new ValidationException(ONAPLogConstants.Headers.PARTNER_NAME + " header", true);
-               }
-               if(!headers.containsKey(REQUESTOR_ID)){
-                       throw new ValidationException(REQUESTOR_ID + " header", true);
-               }
-       }
-       
-       public String getRequestUri(ContainerRequestContext context, String uriPrefix){
-               String requestUri = context.getUriInfo().getPath();
-               String httpUrl = MDC.get(LogConstants.URI_BASE).concat(requestUri);
-               MDC.put(LogConstants.HTTP_URL, httpUrl);
-               requestUri = requestUri.substring(requestUri.indexOf(uriPrefix) + uriPrefix.length());
-               return requestUri;
-       }
-       
-       public InfraActiveRequests duplicateCheck(Actions action, HashMap<String, String> instanceIdMap, long startTime,
-            MsoRequest msoRequest, String instanceName, String requestScope, InfraActiveRequests currentActiveReq) throws ApiException {
-               InfraActiveRequests dup = null;
-               try {
-                       if(!(instanceName==null && requestScope.equals("service") && (action == Action.createInstance || action == Action.activateInstance || action == Action.assignInstance))){
-                               dup = infraActiveRequestsClient.checkInstanceNameDuplicate (instanceIdMap, instanceName, requestScope);
-                       }
-               } catch (Exception e) {
-                       ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_CHECK_EXC, ErrorCode.DataError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                       RequestDbFailureException requestDbFailureException = new RequestDbFailureException.Builder("check for duplicate instance", e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e)
-                                       .errorInfo(errorLoggerInfo).build();
-                       updateStatus(currentActiveReq, Status.FAILED, requestDbFailureException.getMessage());
-                       throw requestDbFailureException;
-               }
-               return dup;
-       }
-       
-       public boolean camundaHistoryCheck(InfraActiveRequests duplicateRecord, InfraActiveRequests currentActiveReq) throws RequestDbFailureException, ContactCamundaException{
-               String requestId = duplicateRecord.getRequestId();
-               String path = env.getProperty("mso.camunda.rest.history.uri") + requestId;
-               String targetUrl = env.getProperty("mso.camundaURL") + path;
-               HttpHeaders headers = setCamundaHeaders(env.getRequiredProperty("mso.camundaAuth"), env.getRequiredProperty("mso.msoKey")); 
-               HttpEntity<?> requestEntity = new HttpEntity<>(headers);
-               ResponseEntity<List<HistoricProcessInstanceEntity>> response = null;
-               try{
-                       response = restTemplate.exchange(targetUrl, HttpMethod.GET, requestEntity, new ParameterizedTypeReference<List<HistoricProcessInstanceEntity>>(){});
-               }catch(HttpStatusCodeException e){
-                       ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_CHECK_EXC, ErrorCode.DataError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                       ContactCamundaException contactCamundaException= new ContactCamundaException.Builder(requestId, e.toString(), HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR).cause(e)
-                                       .errorInfo(errorLoggerInfo).build();
-                       updateStatus(currentActiveReq, Status.FAILED, contactCamundaException.getMessage());
-                       throw contactCamundaException;
-               }
-               if(response.getBody().isEmpty()){
-                       updateStatus(duplicateRecord, Status.COMPLETE, "Request Completed");
-               }
-               for(HistoricProcessInstance instance : response.getBody()){
-                       if(instance.getState().equals("ACTIVE")){
-                               return true;
-                       }else{
-                               updateStatus(duplicateRecord, Status.COMPLETE, "Request Completed");
-                       }
-               }       
-               return false;
-       }
-       
-       protected HttpHeaders setCamundaHeaders(String auth, String msoKey) {
-               HttpHeaders headers = new HttpHeaders();
-               List<org.springframework.http.MediaType> acceptableMediaTypes = new ArrayList<>();
-               acceptableMediaTypes.add(org.springframework.http.MediaType.APPLICATION_JSON);
-               headers.setAccept(acceptableMediaTypes);
-               try {
-                       String userCredentials = CryptoUtils.decrypt(auth, msoKey);
-                       if(userCredentials != null) {
-                               headers.add(HttpHeaders.AUTHORIZATION, "Basic " + DatatypeConverter.printBase64Binary(userCredentials.getBytes()));
-                       }
-               } catch(GeneralSecurityException e) {
-                       logger.error("Security exception", e);
-               }
-               return headers;
-       }
-
-       public ServiceInstancesRequest convertJsonToServiceInstanceRequest(String requestJSON, Actions action, long startTime,
-                                     ServiceInstancesRequest sir, MsoRequest msoRequest, String requestId, String requestUri) throws ApiException {
-               try{
-                       ObjectMapper mapper = new ObjectMapper();
-                       return mapper.readValue(requestJSON, ServiceInstancesRequest.class);
-
-               } catch (IOException e) {
-
-                       ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-
-                       ValidateException validateException = new ValidateException.Builder("Error mapping request: " + e.getMessage(), HttpStatus.SC_BAD_REQUEST, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
-                                       .errorInfo(errorLoggerInfo).build();
-                       String requestScope = requestScopeFromUri(requestUri);
-
-                       msoRequest.createErrorRequestRecord(Status.FAILED, requestId, validateException.getMessage(), action, requestScope, requestJSON);
-
-                       throw validateException;
-               }
-       }
-
-       public void parseRequest(ServiceInstancesRequest sir, HashMap<String, String> instanceIdMap, Actions action, String version, 
-                       String requestJSON, Boolean aLaCarte, String requestId, InfraActiveRequests currentActiveReq) throws ValidateException, RequestDbFailureException {
-               int reqVersion = Integer.parseInt(version.substring(1));
-               try {
-                       msoRequest.parse(sir, instanceIdMap, action, version, requestJSON, reqVersion, aLaCarte);
-               } catch (Exception e) {
-                       logger.error("failed to parse request", e);
-                       ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                       ValidateException validateException = new ValidateException.Builder("Error parsing request: " + e.getMessage(), HttpStatus.SC_BAD_REQUEST, ErrorNumbers.SVC_BAD_PARAMETER).cause(e)
-                                       .errorInfo(errorLoggerInfo).build();
-
-                       updateStatus(currentActiveReq, Status.FAILED, validateException.getMessage());
-
-                       throw validateException;
-               }
-       }
-       
-       public void buildErrorOnDuplicateRecord(InfraActiveRequests currentActiveReq, Actions action, HashMap<String, String> instanceIdMap, long startTime, MsoRequest msoRequest,
-             String instanceName, String requestScope, InfraActiveRequests dup) throws ApiException {
-
-               String instance = null;
-               if(instanceName != null){
-                       instance = instanceName;
-               }else{
-                       instance = instanceIdMap.get(requestScope + "InstanceId");
-               }               
-               ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_DUPLICATE_FOUND, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-
-               DuplicateRequestException dupException = new DuplicateRequestException.Builder(requestScope,instance,dup.getRequestStatus(),dup.getRequestId(), HttpStatus.SC_CONFLICT, ErrorNumbers.SVC_DETAILED_SERVICE_ERROR)
-                               .errorInfo(errorLoggerInfo).build();
-
-               updateStatus(currentActiveReq, Status.FAILED, dupException.getMessage());
-
-               throw dupException;
-       }
-       
-        public String getRequestId(ContainerRequestContext requestContext) throws ValidateException {
-           String requestId = null;
-           if (requestContext.getProperty("requestId") != null) {
-               requestId = requestContext.getProperty("requestId").toString();
-           }
-           if (UUIDChecker.isValidUUID(requestId)) {
-               return requestId;
-           } else {
-               ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.SchemaError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
-                       ValidateException validateException = new ValidateException.Builder("Request Id " + requestId + " is not a valid UUID", HttpStatus.SC_INTERNAL_SERVER_ERROR, ErrorNumbers.SVC_BAD_PARAMETER)
-                                  .errorInfo(errorLoggerInfo).build();
-                       
-                       throw validateException;
-           }
-        }      
-       
-        public void setInstanceId(InfraActiveRequests currentActiveReq, String requestScope, String instanceId, Map<String, String> instanceIdMap) {
-               if(StringUtils.isNotBlank(instanceId)) {
-                       if(ModelType.service.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setServiceInstanceId(instanceId);
-                       } else if(ModelType.vnf.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setVnfId(instanceId);
-                       } else if(ModelType.vfModule.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setVfModuleId(instanceId);
-                       } else if(ModelType.volumeGroup.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setVolumeGroupId(instanceId);
-                       } else if(ModelType.network.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setNetworkId(instanceId);
-                       } else if(ModelType.configuration.name().equalsIgnoreCase(requestScope)) {
-                               currentActiveReq.setConfigurationId(instanceId);
-                       }else if(ModelType.instanceGroup.toString().equalsIgnoreCase(requestScope)){
-                               currentActiveReq.setInstanceGroupId(instanceId);
-                       }
-               } else if(instanceIdMap != null && !instanceIdMap.isEmpty()) {
-                       if(instanceIdMap.get("serviceInstanceId") != null){
-                               currentActiveReq.setServiceInstanceId(instanceIdMap.get("serviceInstanceId"));
-               }
-               if(instanceIdMap.get("vnfInstanceId") != null){
-                       currentActiveReq.setVnfId(instanceIdMap.get("vnfInstanceId"));
-               }
-               if(instanceIdMap.get("vfModuleInstanceId") != null){
-                       currentActiveReq.setVfModuleId(instanceIdMap.get("vfModuleInstanceId"));
-               }
-               if(instanceIdMap.get("volumeGroupInstanceId") != null){
-                       currentActiveReq.setVolumeGroupId(instanceIdMap.get("volumeGroupInstanceId"));
-               }
-               if(instanceIdMap.get("networkInstanceId") != null){
-                       currentActiveReq.setNetworkId(instanceIdMap.get("networkInstanceId"));
-               }
-               if(instanceIdMap.get("configurationInstanceId") != null){
-                       currentActiveReq.setConfigurationId(instanceIdMap.get("configurationInstanceId"));
-               }
-               if(instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID) != null){
-                       currentActiveReq.setInstanceGroupId(instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID));
-               }
-               }
-        }
-        
-        public String mapJSONtoMSOStyle(String msoRawRequest, ServiceInstancesRequest serviceInstRequest, boolean isAlaCarte, Actions action) throws IOException {
-           ObjectMapper mapper = new ObjectMapper();           
-           mapper.setSerializationInclusion(Include.NON_NULL);         
-           if(msoRawRequest != null){
-                       ServiceInstancesRequest sir = mapper.readValue(msoRawRequest, ServiceInstancesRequest.class);           
-                       if(     serviceInstRequest != null && 
-                               serviceInstRequest.getRequestDetails() != null && 
-                               serviceInstRequest.getRequestDetails().getRequestParameters() != null) {
-                               if(     !isAlaCarte && Action.createInstance.equals(action)) {
-                                       sir.getRequestDetails().setCloudConfiguration(serviceInstRequest.getRequestDetails().getCloudConfiguration());
-                                       sir.getRequestDetails().getRequestParameters().setUserParams(serviceInstRequest.getRequestDetails().getRequestParameters().getUserParams());
-                               }
-                               sir.getRequestDetails().getRequestParameters().setUsePreload(serviceInstRequest.getRequestDetails().getRequestParameters().getUsePreload());
-                       }
-                       
-                       logger.debug("Value as string: {}", mapper.writeValueAsString(sir));
-                       return mapper.writeValueAsString(sir);
-           }
-           return null;
-       }
-        
-       public Optional<String> retrieveModelName(RequestParameters requestParams) {
-               String requestTestApi = null;
-               TestApi testApi = null;
-               
-               if (requestParams != null) {
-                       requestTestApi = requestParams.getTestApi();
-               }
-               
-               if (requestTestApi == null) {
-                       if(requestParams != null && requestParams.getALaCarte() != null && !requestParams.getALaCarte()) {
-                       requestTestApi = env.getProperty(CommonConstants.MACRO_TEST_API);
-                       } else {
-                               requestTestApi = env.getProperty(CommonConstants.ALACARTE_TEST_API);
-                       }
-               }
-               
-               try {
-                       testApi = TestApi.valueOf(requestTestApi);
-                       return Optional.of(testApi.getModelName());
-               } catch (Exception e) {
-                       logger.warn("Catching the exception on the valueOf enum call and continuing", e);
-                       throw new IllegalArgumentException("Invalid TestApi is provided", e);
-               }
-          }
-           
-       public String getDefaultModel(ServiceInstancesRequest sir) {
-               String defaultModel = sir.getRequestDetails().getRequestInfo().getSource() + "_DEFAULT";
-               Optional<String> oModelName = retrieveModelName(sir.getRequestDetails().getRequestParameters());
-               if (oModelName.isPresent()) {
-                       defaultModel = oModelName.get();
-               }
-               return defaultModel;
-       }
-               
-       public String getServiceType(String requestScope, ServiceInstancesRequest sir, Boolean aLaCarteFlag){
-               String serviceType = null;
-               if(requestScope.equalsIgnoreCase(ModelType.service.toString())){
-                       String defaultServiceModelName = getDefaultModel(sir);
-                       org.onap.so.db.catalog.beans.Service serviceRecord;
-                       if(aLaCarteFlag){
-                                serviceRecord = catalogDbClient.getFirstByModelNameOrderByModelVersionDesc(defaultServiceModelName);
-                                if(serviceRecord != null){
-                                        serviceType = serviceRecord.getServiceType();
-                                }
-                       }else{
-                               serviceRecord = catalogDbClient.getServiceByID(sir.getRequestDetails().getModelInfo().getModelVersionId());
-                               if(serviceRecord != null){
-                                        serviceType = serviceRecord.getServiceType();
-                                }else{
-                                        serviceRecord = catalogDbClient.getFirstByModelNameOrderByModelVersionDesc(defaultServiceModelName);
-                                        if(serviceRecord != null){
-                                                serviceType = serviceRecord.getServiceType();
-                                        }
-                                }
-                       }
-               }else{
-                       serviceType = msoRequest.getServiceInstanceType(sir, requestScope);
-                       }
-               return serviceType;
-       }
-       
-       protected String setServiceInstanceId(String requestScope, ServiceInstancesRequest sir){
-               if(sir.getServiceInstanceId () != null){
-                       return sir.getServiceInstanceId ();
-               }else if(requestScope.equalsIgnoreCase(ModelType.instanceGroup.toString())){
-                       RelatedInstanceList[] relatedInstances = sir.getRequestDetails().getRelatedInstanceList();
-                       if(relatedInstances != null){
-                               for(RelatedInstanceList relatedInstanceList : relatedInstances){
-                                       RelatedInstance relatedInstance = relatedInstanceList.getRelatedInstance();
-                                       if(relatedInstance.getModelInfo().getModelType() == ModelType.service){
-                                               return relatedInstance.getInstanceId();
-                                       }
-                               }
-                       }
-               }
-               return null;
-       }
-       
-       private String requestScopeFromUri(String requestUri){
-               String requestScope;
-               if(requestUri.contains(ModelType.network.name())){
-                       requestScope = ModelType.network.name();
-               }else if(requestUri.contains(ModelType.vfModule.name())){
-                       requestScope = ModelType.vfModule.name();
-               }else if(requestUri.contains(ModelType.volumeGroup.name())){
-                       requestScope = ModelType.volumeGroup.name();
-               }else if(requestUri.contains(ModelType.configuration.name())){
-                       requestScope = ModelType.configuration.name();
-               }else if(requestUri.contains(ModelType.vnf.name())){
-                       requestScope = ModelType.vnf.name();
-               }else{
-                       requestScope = ModelType.service.name();
-               }
-               return requestScope;
-       }
-       
 }