added fix for missing Error from SDNC prefix 34/94634/1
authorChan, Mercy <merce.chan@att.com>
Thu, 29 Aug 2019 20:12:22 +0000 (16:12 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Thu, 29 Aug 2019 20:12:22 +0000 (16:12 -0400)
added fix for missing Error from SDNC prefix to SDNC callback flow
reverted implementation from bpmn-tasks package and moved them to apih
side, added junit test
renamed error message constant, removed regex check, add error message
porefix directly to actual message

Issue-ID: SO-2267
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I440cf9eff12571f576fcc5f2d28d9f2c8130e4b6

mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/OrchestrationRequests.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/OrchestrationRequestsUnitTest.java

index a5ccb1b..8896e93 100644 (file)
@@ -83,6 +83,7 @@ import io.swagger.annotations.ApiOperation;
 public class OrchestrationRequests {
 
     private static Logger logger = LoggerFactory.getLogger(OrchestrationRequests.class);
+    private static final String ERROR_MESSAGE_PREFIX = "Error Source: %s, Error Message: %s";
 
     @Autowired
     private RequestsDbClient requestsDbClient;
@@ -449,7 +450,12 @@ public class OrchestrationRequests {
 
         String statusMessages = null;
         if (iar.getStatusMessage() != null) {
-            statusMessages = "STATUS: " + iar.getStatusMessage();
+            if (StringUtils.isNotBlank(iar.getExtSystemErrorSource())) {
+                statusMessages = "STATUS: "
+                        + String.format(ERROR_MESSAGE_PREFIX, iar.getExtSystemErrorSource(), iar.getStatusMessage());
+            } else {
+                statusMessages = "STATUS: " + iar.getStatusMessage();
+            }
         }
 
         if (OrchestrationRequestFormat.STATUSDETAIL.toString().equalsIgnoreCase(format)) {
index f672648..627bbc6 100644 (file)
@@ -25,6 +25,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.doReturn;
 import javax.ws.rs.core.Response;
 import org.apache.commons.lang.StringUtils;
@@ -231,6 +232,21 @@ public class OrchestrationRequestsUnitTest {
         assertThat(actual, sameBeanAs(expected));
     }
 
+    @Test
+    public void mapRequestStatusAndExtSysErrSrcToRequestErrorMessageTest() throws ApiException {
+        InstanceReferences instanceReferences = new InstanceReferences();
+        instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
+        iar.setExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
+        iar.setFlowStatus(null);
+        iar.setStatusMessage("Error retrieving cloud region from AAI");
+
+        Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
+                OrchestrationRequestFormat.DETAIL.toString());
+
+        assertTrue(actual.getRequestStatus().getStatusMessage()
+                .contains("Error Source: " + ROLLBACK_EXT_SYSTEM_ERROR_SOURCE));
+    }
+
     @Test
     public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulCompletionTest() throws ApiException {
         InstanceReferences instanceReferences = new InstanceReferences();