so does not capture the vnf name 23/114123/1
authorPlummer, Brittany <brittany.plummer@att.com>
Wed, 21 Oct 2020 15:29:18 +0000 (11:29 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Wed, 21 Oct 2020 15:29:19 +0000 (11:29 -0400)
Add requestid to return headers to audit filter
Added catch for exceptions from validators
Removed unused test file
Updated validation unit test
Updated transactionId header assertion in failing test
Updated assertion as validator order changes
Updated assertions to check for requestId

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

common/src/main/java/org/onap/so/logging/jaxrs/filter/SOAuditLogContainerFilter.java
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandler/common/ResponseBuilder.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/tenantisolation/CloudResourcesOrchestrationTest.java

index 9552755..85925e2 100644 (file)
@@ -2,13 +2,16 @@ package org.onap.so.logging.jaxrs.filter;
 
 import javax.annotation.Priority;
 import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
 import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.core.MultivaluedMap;
+import org.onap.logging.filter.base.AuditLogContainerFilter;
+import org.onap.logging.filter.base.Constants;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.logger.HttpHeadersConstants;
 import org.onap.so.logger.LogConstants;
 import org.slf4j.MDC;
 import org.springframework.stereotype.Component;
-import org.onap.logging.filter.base.AuditLogContainerFilter;
 
 @Priority(1)
 @PreMatching
@@ -27,4 +30,17 @@ public class SOAuditLogContainerFilter extends AuditLogContainerFilter {
         }
         MDC.put(LogConstants.URI_BASE, request.getUriInfo().getBaseUri().toString());
     }
+
+    @Override
+    protected void additionalPostHandling(ContainerResponseContext response) {
+        MultivaluedMap<String, Object> responseHeaders = response.getHeaders();
+        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
+        responseHeaders.add(ONAPLogConstants.Headers.REQUEST_ID, requestId);
+        responseHeaders.add(Constants.HttpHeaders.HEADER_REQUEST_ID, requestId);
+        responseHeaders.add(Constants.HttpHeaders.TRANSACTION_ID, requestId);
+        responseHeaders.add(Constants.HttpHeaders.ECOMP_REQUEST_ID, requestId);
+        responseHeaders.add(ONAPLogConstants.Headers.PARTNER_NAME, getProperty(Constants.Property.PARTNER_NAME));
+        responseHeaders.add(ONAPLogConstants.Headers.INVOCATION_ID,
+                MDC.get(ONAPLogConstants.MDCs.SERVER_INVOCATION_ID));
+    }
 }
index b921f5b..6477443 100644 (file)
@@ -50,10 +50,6 @@ public class ResponseBuilder {
                         .header(CommonConstants.X_PATCH_VERSION, apiPatchVersion)
                         .header(CommonConstants.X_LATEST_VERSION, latestVersion);
 
-        if (StringUtils.isNotBlank(requestId)) {
-            builder.header(CommonConstants.X_TRANSACTION_ID, requestId);
-        }
-
         return builder.entity(jsonResponse).build();
     }
 
index 33d86a2..d43bbb6 100644 (file)
@@ -1498,6 +1498,8 @@ public class ServiceInstancesTest extends BaseTest {
                 sendRequest(inputStream("/VfModuleNoModelType.json"), uri, HttpMethod.POST, headers);
         // ActualRecord
         assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), response.getStatusCode().value());
+        assertEquals("32807a28-1a14-4b88-b7b3-2950918aa76d",
+                response.getHeaders().get(ONAPLogConstants.Headers.REQUEST_ID).get(0));
     }
 
     @Test
index 1917ee5..db9f45e 100644 (file)
@@ -31,6 +31,7 @@ import javax.ws.rs.core.MediaType;
 import org.apache.http.HttpStatus;
 import org.junit.Before;
 import org.junit.Test;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.apihandlerinfra.BaseTest;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.springframework.http.HttpEntity;
@@ -212,6 +213,7 @@ public class CloudResourcesOrchestrationTest extends BaseTest {
                                 .withStatus(HttpStatus.SC_OK)));
         headers.set("Accept", MediaType.APPLICATION_JSON);
         headers.set("Content-Type", MediaType.APPLICATION_JSON);
+        headers.set(ONAPLogConstants.Headers.REQUEST_ID, "e0e0e749-c9e2-48c3-8c4c-d51bf65a86c9");
         HttpEntity<String> entity = new HttpEntity<>("", headers);
 
         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort(path) + "/v1");
@@ -226,7 +228,7 @@ public class CloudResourcesOrchestrationTest extends BaseTest {
         assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
         assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
         assertEquals("1.0.0", response.getHeaders().get("X-LatestVersion").get(0));
-        assertEquals("90c56827-1c78-4827-bc4d-6afcdb37a51f", response.getHeaders().get("X-TransactionID").get(0));
+        assertEquals("e0e0e749-c9e2-48c3-8c4c-d51bf65a86c9", response.getHeaders().get("X-TransactionID").get(0));
     }
 
     @Test