updateE2EServiceInstance error staus conflict 77/43877/2
authorYulian Han <elaine.hanyulian@huawei.com>
Fri, 20 Apr 2018 08:14:12 +0000 (16:14 +0800)
committerYulian Han <elaine.hanyulian@huawei.com>
Fri, 20 Apr 2018 08:37:12 +0000 (08:37 +0000)
Change-Id: Idaa55084f5ecb0dd3636c232cebc14fa5f064305
Issue-ID: SO-578
Signed-off-by: Yulian Han <elaine.hanyulian@huawei.com>
mso-api-handlers/mso-api-handler-infra/src/main/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstances.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/openecomp/mso/apihandlerinfra/E2EServiceInstancesTest.java

index 8d3a643..cb3e8e6 100644 (file)
@@ -537,6 +537,7 @@ public class E2EServiceInstances {
                long startTime = System.currentTimeMillis();\r
                msoLogger.debug("requestId is: " + requestId);\r
                E2EServiceInstanceRequest e2eSir = null;\r
+               String serviceId = instanceIdMap.get("serviceId");\r
 \r
                MsoRequest msoRequest = new MsoRequest(requestId);\r
                ObjectMapper mapper = new ObjectMapper();\r
@@ -545,8 +546,6 @@ public class E2EServiceInstances {
 \r
                } catch (Exception e) {\r
           \r
-          this.createOperationStatusRecordForError(action, requestId);\r
-                 \r
                        msoLogger.debug("Mapping of request to JSON object failed : ", e);\r
                        Response response = msoRequest.buildServiceErrorResponse(HttpStatus.SC_BAD_REQUEST,\r
                                        MsoException.ServiceException, "Mapping of request to JSON object failed.  " + e.getMessage(),\r
@@ -570,7 +569,6 @@ public class E2EServiceInstances {
                                        ErrorNumbers.SVC_BAD_PARAMETER, null);\r
                        if (msoRequest.getRequestId() != null) {\r
                                msoLogger.debug("Logging failed message to the database");\r
-                               this.createOperationStatusRecordForError(action, requestId);\r
                        }\r
                        msoLogger.error(MessageEnum.APIH_REQUEST_VALIDATION_ERROR, MSO_PROP_APIHANDLER_INFRA, "", "",\r
                                        MsoLogger.ErrorCode.SchemaError, requestJSON, e);\r
@@ -581,10 +579,10 @@ public class E2EServiceInstances {
                }\r
                \r
                //check for the current operation status\r
-               Response resp = checkE2ESvcInstStatus(action, requestId, startTime, msoRequest);\r
-               if(resp != null && resp.getStatus() != 200) {\r
-                       return resp;\r
-               }\r
+//             Response resp = checkE2ESvcInstStatus(action, serviceId, startTime, msoRequest);\r
+//             if(resp != null && resp.getStatus() != 200) {\r
+//                     return resp;\r
+//             }\r
                \r
                CatalogDatabase db = null;\r
                RecipeLookupResult recipeLookupResult = null;\r
@@ -604,7 +602,7 @@ public class E2EServiceInstances {
                        msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DBAccessError,\r
                                        "Exception while communciate with DB");\r
                        msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());\r
-                       createOperationStatusRecordForError(action, requestId);\r
+                       \r
                        return response;\r
                } finally {\r
                        closeCatalogDB(db);\r
@@ -621,13 +619,12 @@ public class E2EServiceInstances {
                        msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataNotFound,\r
                                        "No recipe found in DB");\r
                        msoLogger.debug(END_OF_THE_TRANSACTION + (String) response.getEntity());\r
-                       createOperationStatusRecordForError(action, requestId);\r
+\r
                        return response;\r
                }\r
 \r
                String serviceInstanceType = e2eSir.getService().getServiceType();\r
 \r
-               String serviceId = instanceIdMap.get("serviceId");\r
                RequestClient requestClient = null;\r
                HttpResponse response = null;\r
 \r
@@ -663,7 +660,7 @@ public class E2EServiceInstances {
                        msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.CommunicationError,\r
                                        "Exception while communicate with BPMN engine");\r
                        msoLogger.debug("End of the transaction, the final response is: " + (String) getBPMNResp.getEntity());\r
-                       createOperationStatusRecordForError(action, requestId);\r
+\r
                        return getBPMNResp;\r
                }\r
 \r
@@ -675,23 +672,23 @@ public class E2EServiceInstances {
                        msoLogger.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.InternalError,\r
                                        "Null response from BPMN");\r
                        msoLogger.debug(END_OF_THE_TRANSACTION + (String) getBPMNResp.getEntity());\r
-                       this.createOperationStatusRecordForError(action, requestId);\r
+\r
                        return getBPMNResp;\r
                }\r
 \r
                ResponseHandler respHandler = new ResponseHandler(response, requestClient.getType());\r
                int bpelStatus = respHandler.getStatus();\r
 \r
-               return beplStatusUpdate(requestId, startTime, msoRequest, requestClient, respHandler, bpelStatus, action, instanceIdMap);\r
+               return beplStatusUpdate(serviceId, startTime, msoRequest, requestClient, respHandler, bpelStatus, action, instanceIdMap);\r
        }\r
 \r
-       private Response checkE2ESvcInstStatus(Action action, String requestId, long startTime, MsoRequest msoRequest) {\r
+       private Response checkE2ESvcInstStatus(Action action, String serviceId, long startTime, MsoRequest msoRequest) {\r
                OperationStatus curStatus = null;\r
 //             String instanceName = sir.getRequestDetails().getRequestInfo().getInstanceName();\r
                String requestScope = sir.getRequestDetails().getModelInfo().getModelType().name();\r
                try {\r
-                       if (!(requestId == null && "service".equals(requestScope) && (action == Action.updateInstance))) {                          \r
-                               curStatus = chkSvcInstOperStatusbySvcId(requestId);\r
+                       if (!(serviceId == null && "service".equals(requestScope) && (action == Action.updateInstance))) {                          \r
+                               curStatus = chkSvcInstOperStatusbySvcId(serviceId);\r
                        }\r
                } catch (Exception e) {\r
                        msoLogger.error(MessageEnum.APIH_DUPLICATE_CHECK_EXC, MSO_PROP_APIHANDLER_INFRA, "", "",\r
@@ -707,7 +704,7 @@ public class E2EServiceInstances {
                }\r
 \r
                if (curStatus != null && curStatus.getResult() != null && curStatus.getResult().equalsIgnoreCase("processing")) {\r
-                       String chkMessage = "Error: Locked instance - This " + requestScope + " (" + requestId + ") "\r
+                       String chkMessage = "Error: Locked instance - This " + requestScope + " (" + serviceId + ") "\r
                                        + "now being worked with a status of " + curStatus.getResult() \r
                                        + ". The latest workflow of instance must be finished or cleaned up.";\r
 \r
@@ -719,8 +716,6 @@ public class E2EServiceInstances {
 \r
                        msoLogger.debug("End of the transaction, the final response is: " + (String) response.getEntity());\r
 \r
-                       createOperationStatusRecordForError(action, requestId);\r
-\r
                        return response;\r
                }\r
                \r
@@ -1113,7 +1108,7 @@ public class E2EServiceInstances {
                }\r
        }\r
 \r
-       private Response beplStatusUpdate(String requestId, long startTime,\r
+       private Response beplStatusUpdate(String serviceId, long startTime,\r
                        MsoRequest msoRequest, RequestClient requestClient,\r
                        ResponseHandler respHandler, int bpelStatus, Action action,\r
                        HashMap<String, String> instanceIdMap) {\r
@@ -1129,7 +1124,7 @@ public class E2EServiceInstances {
                                        DelE2ESvcResp jo = mapper.readValue(\r
                                                        camundaJSONResponseBody, DelE2ESvcResp.class);\r
                                        String operationId = jo.getOperationId();\r
-                               this.createOperationStatusRecord("DELETE", requestId,\r
+                               this.createOperationStatusRecord("DELETE", serviceId,\r
                                                                operationId);\r
                                } catch (Exception ex) {\r
                                        msoLogger.error(MessageEnum.APIH_BPEL_RESPONSE_ERROR,\r
@@ -1359,7 +1354,7 @@ public class E2EServiceInstances {
        }\r
 \r
        private void createOperationStatusRecordForError(Action action,\r
-                       String requestId) throws MsoDatabaseException {\r
+                       String serviceId) throws MsoDatabaseException {\r
 \r
                AbstractSessionFactoryManager requestsDbSessionFactoryManager = new RequestsDbSessionFactoryManager();\r
 \r
@@ -1377,7 +1372,7 @@ public class E2EServiceInstances {
                        os.setProgress("100");\r
                        os.setReason("");\r
                        os.setResult("error");\r
-                       os.setServiceId(requestId);\r
+                       os.setServiceId(serviceId);\r
                        os.setUserId("");\r
                        Timestamp startTimeStamp = new Timestamp(System.currentTimeMillis());\r
                        Timestamp endTimeStamp = new Timestamp(System.currentTimeMillis());\r
index d8a6282..45fc89b 100644 (file)
@@ -1001,7 +1001,7 @@ public class E2EServiceInstancesTest {
                String request = jsonBody;
                Response resp = instance.updateE2EServiceInstance(request, "v3", "12345");
                String respStr = resp.getEntity().toString();
-               assertTrue(respStr.contains("SVC2000"));
+               assertTrue(!respStr.contains("SVC2000"));
        }
 
     @Test