- Skip requestId lookup when uri is 88/97788/1
authorMerkel, Jeff <jeff.merkel@att.com>
Thu, 31 Oct 2019 12:55:57 +0000 (08:55 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Thu, 31 Oct 2019 12:55:57 +0000 (08:55 -0400)
- Skip requestId lookup when uri is orchestrationRequests.
- Reformatted code to fix the build error.
- Updated mockContext in TC to mock up URI path.
- Added a test that skips the requestId lookup.
- Added verify to ensure the lookup method is not called.
- Fixed the formatting to pass the verify build.

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

mso-api-handlers/mso-api-handler-common/src/main/java/org/onap/so/apihandler/filters/RequestIdFilter.java
mso-api-handlers/mso-api-handler-common/src/test/java/org/onap/so/apihandler/filters/RequestIdFilterTest.java

index 2fd426d..b81ee58 100644 (file)
@@ -23,6 +23,7 @@ import java.io.IOException;
 import javax.annotation.Priority;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.Provider;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandler.common.ErrorNumbers;
@@ -52,15 +53,20 @@ public class RequestIdFilter implements ContainerRequestFilter {
     @Override
     public void filter(ContainerRequestContext context) throws IOException {
         String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
+        UriInfo uriInfo = context.getUriInfo();
+        String requestURI = uriInfo.getPath();
 
-        logger.info("Checking if requestId: {} already exists in requestDb InfraActiveRequests table", requestId);
-        InfraActiveRequests infraActiveRequests = infraActiveRequestsClient.getInfraActiveRequestbyRequestId(requestId);
+        if (!requestURI.contains("orchestrationRequests")) {
+            logger.info("Checking if requestId: {} already exists in requestDb InfraActiveRequests table", requestId);
+            InfraActiveRequests infraActiveRequests =
+                    infraActiveRequestsClient.getInfraActiveRequestbyRequestId(requestId);
 
-        if (infraActiveRequests != null) {
-            logger.error(
-                    "RequestId: {} already exists in RequestDB InfraActiveRequests table, throwing DuplicateRequestIdException",
-                    requestId);
-            throw new DuplicateRequestIdException(createRequestError(requestId, "InfraActiveRequests"));
+            if (infraActiveRequests != null) {
+                logger.error(
+                        "RequestId: {} already exists in RequestDB InfraActiveRequests table, throwing DuplicateRequestIdException",
+                        requestId);
+                throw new DuplicateRequestIdException(createRequestError(requestId, "InfraActiveRequests"));
+            }
         }
     }
 
index 8716047..421136d 100644 (file)
@@ -23,9 +23,13 @@ package org.onap.so.apihandler.filters;
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
 import java.io.IOException;
+import java.net.URI;
 import java.util.Collections;
 import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.core.UriInfo;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -53,6 +57,9 @@ public class RequestIdFilterTest {
     @Mock
     private RequestsDbClient requestsDbClient;
 
+    @Mock
+    private UriInfo uriInfo;
+
     @InjectMocks
     @Spy
     private RequestIdFilter requestIdFilter;
@@ -87,12 +94,35 @@ public class RequestIdFilterTest {
 
         doReturn(infraActiveRequests).when(requestsDbClient).getInfraActiveRequestbyRequestId(requestId);
         doReturn(error).when(requestIdFilter).createRequestError(REQUEST_ID, "InfraActiveRequests");
+        doReturn("/onap/so/infra/serviceInstantiation/v7/serviceInstances").when(uriInfo).getPath();
+        doReturn(uriInfo).when(mockContext).getUriInfo();
 
         thrown.expect(DuplicateRequestIdException.class);
         thrown.expectMessage("HTTP 400 Bad Request");
+
+
         requestIdFilter.filter(mockContext);
     }
 
+
+    @Test
+    public void filterTestInfraSkipRequestIdLookup() throws IOException {
+        String requestId = REQUEST_ID;
+        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
+
+        // ExpectedRecord InfraActiveRequests
+        InfraActiveRequests infraActiveRequests = new InfraActiveRequests();
+        infraActiveRequests.setRequestId(REQUEST_ID);
+
+        doReturn("onap/so/infra/orchestrationRequests/v7/" + REQUEST_ID).when(uriInfo).getPath();
+        doReturn(uriInfo).when(mockContext).getUriInfo();
+
+        verify(requestsDbClient, never()).getInfraActiveRequestbyRequestId(REQUEST_ID);
+
+        requestIdFilter.filter(mockContext);
+    }
+
+
     @Test
     public void createRequestErrorTest() throws IOException {
         RequestError requestError = getRequestError();