Merge "Bug fix for Multi-result row data order"
[so.git] / mso-api-handlers / mso-api-handler-infra / src / main / java / org / onap / so / apihandlerinfra / RequestHandlerUtils.java
index e4ae80d..0c6ad0b 100644 (file)
@@ -154,8 +154,9 @@ public class RequestHandlerUtils extends AbstractRestHandler {
 
         if (response == null) {
 
-            ErrorLoggerInfo errorLoggerInfo = new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR,
-                    ErrorCode.BusinessProcesssError).errorSource(Constants.MSO_PROP_APIHANDLER_INFRA).build();
+            ErrorLoggerInfo errorLoggerInfo =
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_COMMUNICATE_ERROR, ErrorCode.BusinessProcessError)
+                            .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());
@@ -220,7 +221,7 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         if (camundaJSONResponseBody != null && !camundaJSONResponseBody.isEmpty()) {
 
             ErrorLoggerInfo errorLoggerInfo =
-                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError)
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcessError)
                             .errorSource(requestClient.getUrl()).build();
             BPMNFailureException bpmnException =
                     new BPMNFailureException.Builder(String.valueOf(bpelStatus) + camundaJSONResponseBody, bpelStatus,
@@ -232,7 +233,7 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         } else {
 
             ErrorLoggerInfo errorLoggerInfo =
-                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcesssError)
+                    new ErrorLoggerInfo.Builder(MessageEnum.APIH_BPEL_RESPONSE_ERROR, ErrorCode.BusinessProcessError)
                             .errorSource(requestClient.getUrl()).build();
 
 
@@ -274,12 +275,18 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         } else if (action == Action.addMembers || action == Action.removeMembers) {
             return (ModelType.instanceGroup.toString());
         } else {
-            String requestScope;
+            String requestScope = requestScopeFromUri(requestUri);;
+
+            if (sir.getRequestDetails() == null) {
+                return requestScope;
+            }
+            if (sir.getRequestDetails().getModelInfo() == null) {
+                return requestScope;
+            }
             if (sir.getRequestDetails().getModelInfo().getModelType() == null) {
-                requestScope = requestScopeFromUri(requestUri);
-            } else {
-                requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();
+                return requestScope;
             }
+            requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();
             return requestScope;
         }
     }
@@ -306,6 +313,22 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         return requestUri;
     }
 
+    public void checkForDuplicateRequests(Actions action, HashMap<String, String> instanceIdMap, String requestScope,
+            InfraActiveRequests currentActiveReq, String instanceName) throws ApiException {
+        InfraActiveRequests dup = null;
+        boolean inProgress = false;
+
+        dup = duplicateCheck(action, instanceIdMap, instanceName, requestScope, currentActiveReq);
+
+        if (dup != null) {
+            inProgress = camundaHistoryCheck(dup, currentActiveReq);
+        }
+
+        if (dup != null && inProgress) {
+            buildErrorOnDuplicateRecord(currentActiveReq, action, instanceIdMap, instanceName, requestScope, dup);
+        }
+    }
+
     public InfraActiveRequests duplicateCheck(Actions action, HashMap<String, String> instanceIdMap,
             String instanceName, String requestScope, InfraActiveRequests currentActiveReq) throws ApiException {
         InfraActiveRequests dup = null;
@@ -333,7 +356,7 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         String requestId = duplicateRecord.getRequestId();
         ResponseEntity<List<HistoricProcessInstanceEntity>> response = null;
         try {
-            response = camundaRequestHandler.getCamundaProcessInstanceHistory(requestId);
+            response = camundaRequestHandler.getCamundaProcessInstanceHistory(requestId, true);
         } catch (RestClientException e) {
             logger.error("Error querying Camunda for process-instance history for requestId: {}, exception: {}",
                     requestId, e.getMessage());
@@ -488,6 +511,9 @@ public class RequestHandlerUtils extends AbstractRestHandler {
             if (instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID) != null) {
                 currentActiveReq.setInstanceGroupId(instanceIdMap.get(CommonConstants.INSTANCE_GROUP_INSTANCE_ID));
             }
+            if (instanceIdMap.get("PnfId") != null) {
+                currentActiveReq.setPnfId(instanceIdMap.get("PnfId"));
+            }
         }
     }
 
@@ -593,6 +619,8 @@ public class RequestHandlerUtils extends AbstractRestHandler {
             requestScope = ModelType.configuration.name();
         } else if (requestUri.contains(ModelType.vnf.name())) {
             requestScope = ModelType.vnf.name();
+        } else if (requestUri.contains(ModelType.pnf.name())) {
+            requestScope = ModelType.pnf.name();
         } else {
             requestScope = ModelType.service.name();
         }
@@ -615,7 +643,7 @@ public class RequestHandlerUtils extends AbstractRestHandler {
         if (infraActiveRequest != null) {
             request.setTenantId(infraActiveRequest.getTenantId());
             request.setRequestBody(updateRequestorIdInRequestBody(infraActiveRequest, requestorId));
-            request.setAicCloudRegion(infraActiveRequest.getAicCloudRegion());
+            request.setCloudRegion(infraActiveRequest.getCloudRegion());
             request.setRequestScope(infraActiveRequest.getRequestScope());
             request.setRequestAction(infraActiveRequest.getRequestAction());
             setInstanceIdAndName(infraActiveRequest, request);