This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new a0be99a3ba HDDS-12095. Include AWS request ID in S3G audit logs (#7725)
a0be99a3ba is described below

commit a0be99a3ba3258eff4b409f76cd5ccb6ca7cda91
Author: Peter Lee <[email protected]>
AuthorDate: Wed Jan 22 02:53:12 2025 +0800

    HDDS-12095. Include AWS request ID in S3G audit logs (#7725)
---
 .../hadoop/ozone/TestMultipartObjectGet.java       |  2 ++
 .../hadoop/ozone/s3/endpoint/EndpointBase.java     | 12 ++++++++++++
 .../hadoop/ozone/s3/endpoint/RootEndpoint.java     |  5 ++---
 .../hadoop/ozone/s3/TestS3GatewayAuditLog.java     | 22 +++++++++++++++-------
 .../s3/endpoint/TestAbortMultipartUpload.java      |  2 ++
 .../hadoop/ozone/s3/endpoint/TestBucketAcl.java    |  2 ++
 .../hadoop/ozone/s3/endpoint/TestBucketDelete.java |  2 ++
 .../hadoop/ozone/s3/endpoint/TestBucketHead.java   |  2 ++
 .../hadoop/ozone/s3/endpoint/TestBucketList.java   | 21 ++++++++++++++++-----
 .../hadoop/ozone/s3/endpoint/TestBucketPut.java    |  2 ++
 .../s3/endpoint/TestInitiateMultipartUpload.java   |  3 +++
 .../s3/endpoint/TestMultipartUploadComplete.java   |  3 +++
 .../s3/endpoint/TestMultipartUploadWithCopy.java   |  2 ++
 .../hadoop/ozone/s3/endpoint/TestObjectDelete.java |  2 ++
 .../hadoop/ozone/s3/endpoint/TestObjectGet.java    |  2 ++
 .../hadoop/ozone/s3/endpoint/TestObjectHead.java   |  2 ++
 .../ozone/s3/endpoint/TestObjectMultiDelete.java   |  3 +++
 .../hadoop/ozone/s3/endpoint/TestObjectPut.java    |  2 ++
 .../ozone/s3/endpoint/TestObjectTaggingDelete.java |  4 +++-
 .../ozone/s3/endpoint/TestObjectTaggingGet.java    |  2 ++
 .../ozone/s3/endpoint/TestObjectTaggingPut.java    |  3 +++
 .../hadoop/ozone/s3/endpoint/TestPartUpload.java   |  4 ++++
 .../s3/endpoint/TestPartUploadWithStream.java      |  2 ++
 .../ozone/s3/endpoint/TestPermissionCheck.java     | 21 +++++++++++++++++----
 .../hadoop/ozone/s3/endpoint/TestRootList.java     |  2 ++
 .../ozone/s3/endpoint/TestUploadWithStream.java    |  2 ++
 .../ozone/s3/metrics/TestS3GatewayMetrics.java     |  6 ++++++
 27 files changed, 117 insertions(+), 20 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestMultipartObjectGet.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestMultipartObjectGet.java
index 2a15068300..0c9af3b2ad 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestMultipartObjectGet.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/TestMultipartObjectGet.java
@@ -23,6 +23,7 @@
 import org.apache.hadoop.hdds.utils.IOUtils;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.om.OzoneManager;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadRequest;
 import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadResponse;
 import org.apache.hadoop.ozone.s3.endpoint.MultipartUploadInitiateResponse;
@@ -98,6 +99,7 @@ public static void init() throws Exception {
     REST.setClient(client);
     REST.setOzoneConfiguration(conf);
     REST.setContext(context);
+    REST.setRequestIdentifier(new RequestIdentifier());
     S3GatewayMetrics.create(conf);
   }
 
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
index fbb0614c4f..6052546270 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBase.java
@@ -80,6 +80,8 @@
 import static org.apache.hadoop.ozone.s3.util.S3Consts.TAG_REGEX_PATTERN;
 import static org.apache.hadoop.ozone.s3.util.S3Consts.TAG_VALUE_LENGTH_LIMIT;
 
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
+
 /**
  * Basic helpers for all the REST endpoints.
  */
@@ -91,6 +93,8 @@ public abstract class EndpointBase implements Auditor {
   private OzoneClient client;
   @Inject
   private SignatureInfo signatureInfo;
+  @Inject
+  private RequestIdentifier requestIdentifier;
 
   private S3Auth s3Auth;
   @Context
@@ -443,6 +447,9 @@ protected static <KV> Map<String, String> 
validateAndGetTagging(
 
   private AuditMessage.Builder auditMessageBaseBuilder(AuditAction op,
       Map<String, String> auditMap) {
+    auditMap.put("x-amz-request-id", requestIdentifier.getRequestId());
+    auditMap.put("x-amz-id-2", requestIdentifier.getAmzId());
+    
     AuditMessage.Builder builder = new AuditMessage.Builder()
         .forOperation(op)
         .withParams(auditMap);
@@ -488,6 +495,11 @@ public void setClient(OzoneClient ozoneClient) {
     this.client = ozoneClient;
   }
 
+  @VisibleForTesting
+  public void setRequestIdentifier(RequestIdentifier requestIdentifier) {
+    this.requestIdentifier = requestIdentifier;
+  }
+
   public OzoneClient getClient() {
     return client;
   }
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/RootEndpoint.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/RootEndpoint.java
index 09360b6395..1e49c3d5f6 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/RootEndpoint.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/RootEndpoint.java
@@ -21,7 +21,6 @@
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Response;
 import java.io.IOException;
-import java.util.Collections;
 import java.util.Iterator;
 
 import org.apache.hadoop.ozone.audit.S3GAction;
@@ -78,14 +77,14 @@ public Response get()
       auditSuccess = false;
       AUDIT.logReadFailure(
           buildAuditMessageForFailure(S3GAction.LIST_S3_BUCKETS,
-              Collections.emptyMap(), ex)
+              getAuditParameters(), ex)
       );
       throw ex;
     } finally {
       if (auditSuccess) {
         AUDIT.logReadSuccess(
             buildAuditMessageForSuccess(S3GAction.LIST_S3_BUCKETS,
-                Collections.emptyMap())
+                getAuditParameters())
         );
       }
     }
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestS3GatewayAuditLog.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestS3GatewayAuditLog.java
index 0b73e04502..0f2334960e 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestS3GatewayAuditLog.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestS3GatewayAuditLog.java
@@ -69,14 +69,15 @@ public class TestS3GatewayAuditLog {
   private ObjectEndpoint keyEndpoint;
   private OzoneBucket bucket;
   private Map<String, String> parametersMap = new HashMap<>();
+  private RequestIdentifier requestIdentifier;
 
   @BeforeEach
   public void setup() throws Exception {
-
     parametersMap.clear();
     clientStub = new OzoneClientStub();
     clientStub.getObjectStore().createS3Bucket(bucketName);
     bucket = clientStub.getObjectStore().getS3Bucket(bucketName);
+    requestIdentifier = new RequestIdentifier();
 
     bucketEndpoint = new BucketEndpoint() {
       @Override
@@ -85,9 +86,10 @@ protected Map<String, String> getAuditParameters() {
       }
     };
     bucketEndpoint.setClient(clientStub);
-
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     rootEndpoint = new RootEndpoint();
     rootEndpoint.setClient(clientStub);
+    rootEndpoint.setRequestIdentifier(requestIdentifier);
 
     keyEndpoint = new ObjectEndpoint() {
       @Override
@@ -97,7 +99,7 @@ protected Map<String, String> getAuditParameters() {
     };
     keyEndpoint.setClient(clientStub);
     keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
-
+    keyEndpoint.setRequestIdentifier(requestIdentifier);
   }
 
   @AfterAll
@@ -116,8 +118,11 @@ public void testHeadBucket() throws Exception {
     parametersMap.put("bucket", "[bucket]");
 
     bucketEndpoint.head(bucketName);
+
     String expected = "INFO  | S3GAudit | ? | user=null | ip=null | " +
-        "op=HEAD_BUCKET {bucket=[bucket]} | ret=SUCCESS";
+        "op=HEAD_BUCKET {bucket=[bucket], x-amz-request-id=" + 
+        requestIdentifier.getRequestId() + ", x-amz-id-2=" + 
+        requestIdentifier.getAmzId() + "} | ret=SUCCESS";
     verifyLog(expected);
   }
 
@@ -126,7 +131,9 @@ public void testListBucket() throws Exception {
 
     rootEndpoint.get().getEntity();
     String expected = "INFO  | S3GAudit | ? | user=null | ip=null | " +
-        "op=LIST_S3_BUCKETS {} | ret=SUCCESS";
+        "op=LIST_S3_BUCKETS {x-amz-request-id=" + 
+        requestIdentifier.getRequestId() + ", x-amz-id-2=" + 
+        requestIdentifier.getAmzId() + "} | ret=SUCCESS";
     verifyLog(expected);
   }
 
@@ -145,9 +152,10 @@ public void testHeadObject() throws Exception {
 
     keyEndpoint.head(bucketName, "key1");
     String expected = "INFO  | S3GAudit | ? | user=null | ip=null | " +
-        "op=HEAD_KEY {bucket=[bucket], path=[key1]} | ret=SUCCESS";
+        "op=HEAD_KEY {bucket=[bucket], path=[key1], x-amz-request-id=" + 
+        requestIdentifier.getRequestId() + ", x-amz-id-2=" + 
+        requestIdentifier.getAmzId() + "} | ret=SUCCESS";
     verifyLog(expected);
-
   }
 
   private void verifyLog(String expectedString) throws IOException {
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestAbortMultipartUpload.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestAbortMultipartUpload.java
index 1356b50ad3..c4781509b5 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestAbortMultipartUpload.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestAbortMultipartUpload.java
@@ -23,6 +23,7 @@
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
 
@@ -58,6 +59,7 @@ public void testAbortMultipartUpload() throws Exception {
     rest.setHeaders(headers);
     rest.setClient(client);
     rest.setOzoneConfiguration(new OzoneConfiguration());
+    rest.setRequestIdentifier(new RequestIdentifier());
 
     Response response = rest.initializeMultipartUpload(bucket, key);
 
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketAcl.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketAcl.java
index 16c8a793d0..5f1f4d31fc 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketAcl.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketAcl.java
@@ -24,6 +24,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneVolume;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
 
@@ -73,6 +74,7 @@ public void setup() throws IOException {
 
     bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
   }
 
   @AfterEach
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketDelete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketDelete.java
index cd5639b78c..04aca4e274 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketDelete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketDelete.java
@@ -27,6 +27,7 @@
 import org.apache.hadoop.ozone.client.ObjectStoreStub;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
 
@@ -59,6 +60,7 @@ public void setup() throws Exception {
     // Create HeadBucket and setClient to OzoneClientStub
     bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(clientStub);
+    bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
 
 
   }
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketHead.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketHead.java
index 2445a54060..f85f42d293 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketHead.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketHead.java
@@ -25,6 +25,7 @@
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
@@ -51,6 +52,7 @@ public void setup() throws Exception {
     // Create HeadBucket and setClient to OzoneClientStub
     bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(clientStub);
+    bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
   }
 
   @Test
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
index 638ac73ebd..69bc535080 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
@@ -24,6 +24,7 @@
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.commontypes.EncodingTypeObject;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
@@ -54,6 +55,7 @@ public void listRoot() throws OS3Exception, IOException {
     OzoneClient client = createClientWithKeys("file1", "dir1/file2");
 
     getBucket.setClient(client);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100, "",
@@ -78,6 +80,7 @@ public void listDir() throws OS3Exception, IOException {
     OzoneClient client = createClientWithKeys("dir1/file2", "dir1/dir2/file2");
 
     getBucket.setClient(client);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
@@ -101,7 +104,7 @@ public void listSubDir() throws OS3Exception, IOException {
             "dir1bha/file2");
 
     getBucket.setClient(ozoneClient);
-
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket
             .get("b1", "/", null, null, 100, "dir1/", null,
@@ -138,6 +141,7 @@ public void listObjectOwner() throws OS3Exception, 
IOException {
     bucket.createKey("key2", 0).close();
 
     getBucket.setClient(client);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
             "key", null, null, null, null, null).getEntity();
@@ -160,6 +164,7 @@ public void listWithPrefixAndDelimiter() throws 
OS3Exception, IOException {
             "dir1bha/file2", "file2");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
@@ -179,6 +184,7 @@ public void listWithPrefixAndDelimiter1() throws 
OS3Exception, IOException {
             "dir1bha/file2", "file2");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
@@ -200,7 +206,7 @@ public void listWithPrefixAndDelimiter2() throws 
OS3Exception, IOException {
             "dir1bha/file2", "file2");
 
     getBucket.setClient(ozoneClient);
-
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "/", null, null, 100, 
"dir1bh",
             null, "dir1/dir2/file2", null, null, null).getEntity();
@@ -219,7 +225,7 @@ public void listWithPrefixAndEmptyStrDelimiter()
           "dir1/dir2/file2");
 
     getBucket.setClient(ozoneClient);
-
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     // Should behave the same if delimiter is null
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", "", null, null, 100, "dir1/",
@@ -248,7 +254,7 @@ public void listWithContinuationToken() throws 
OS3Exception, IOException {
             "dir1bha/file2", "file2");
 
     getBucket.setClient(ozoneClient);
-
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     int maxKeys = 2;
     // As we have 5 keys, with max keys 2 we should call list 3 times.
 
@@ -299,6 +305,7 @@ public void listWithContinuationTokenDirBreak()
             "test/file8");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     int maxKeys = 2;
 
@@ -342,6 +349,7 @@ public void listWithContinuationToken1() throws 
OS3Exception, IOException {
             "dir1bha/file1", "dir0/file1", "dir2/file1");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     int maxKeys = 2;
     // As we have 5 keys, with max keys 2 we should call list 3 times.
@@ -383,6 +391,7 @@ public void listWithContinuationTokenFail() throws 
IOException {
             "dir1bha/file2", "dir1", "dir2", "dir3");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     OS3Exception e = assertThrows(OS3Exception.class, () -> getBucket.get("b1",
         "/", null, null, 2, "dir", "random", null, null, null, null)
@@ -401,6 +410,7 @@ public void testStartAfter() throws IOException, 
OS3Exception {
             "dir1bha/file1", "dir0/file1", "dir2/file1");
 
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     ListObjectResponse getBucketResponse =
         (ListObjectResponse) getBucket.get("b1", null, null, null, 1000,
@@ -460,6 +470,7 @@ public void testEncodingType() throws IOException, 
OS3Exception {
     OzoneClient ozoneClient =
         createClientWithKeys("data=1970", "data==1970");
     getBucket.setClient(ozoneClient);
+    getBucket.setRequestIdentifier(new RequestIdentifier());
 
     String delimiter = "=";
     String prefix = "data=";
@@ -508,7 +519,7 @@ public void testEncodingTypeException() throws IOException {
     OzoneClient client = new OzoneClientStub();
     client.getObjectStore().createS3Bucket("b1");
     getBucket.setClient(client);
-
+    getBucket.setRequestIdentifier(new RequestIdentifier());
     OS3Exception e = assertThrows(OS3Exception.class, () -> getBucket.get(
         "b1", null, "unSupportType", null, 1000, null,
         null, null, null, null, null).getEntity());
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketPut.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketPut.java
index 17c83aa44b..2a575a2e72 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketPut.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketPut.java
@@ -26,6 +26,7 @@
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import static java.net.HttpURLConnection.HTTP_CONFLICT;
@@ -58,6 +59,7 @@ public void setup() throws Exception {
     // Create HeadBucket and setClient to OzoneClientStub
     bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(clientStub);
+    bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
   }
 
   @Test
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestInitiateMultipartUpload.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestInitiateMultipartUpload.java
index 500010f63d..0954b7b2f5 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestInitiateMultipartUpload.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestInitiateMultipartUpload.java
@@ -25,6 +25,8 @@
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
+
 import jakarta.annotation.Nonnull;
 import org.junit.jupiter.api.Test;
 
@@ -99,6 +101,7 @@ private ObjectEndpoint getObjectEndpoint(OzoneClient client,
     rest.setHeaders(headers);
     rest.setClient(client);
     rest.setOzoneConfiguration(new OzoneConfiguration());
+    rest.setRequestIdentifier(new RequestIdentifier());
     return rest;
   }
 }
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadComplete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadComplete.java
index 4c5e2b53d9..d9da4ed866 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadComplete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadComplete.java
@@ -42,6 +42,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadRequest.Part;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
@@ -74,6 +76,7 @@ public static void setUp() throws Exception {
     REST.setHeaders(HEADERS);
     REST.setClient(CLIENT);
     REST.setOzoneConfiguration(new OzoneConfiguration());
+    REST.setRequestIdentifier(new RequestIdentifier());
   }
 
   private String initiateMultipartUpload(String key) throws IOException,
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
index 6894fc4abe..1f08b2c65c 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
@@ -42,6 +42,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneMultipartUploadPartListParts;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadRequest.Part;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
@@ -127,6 +128,7 @@ public static void setUp() throws Exception {
     REST.setHeaders(headers);
     REST.setClient(CLIENT);
     REST.setOzoneConfiguration(new OzoneConfiguration());
+    REST.setRequestIdentifier(new RequestIdentifier());
   }
 
   @Test
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectDelete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectDelete.java
index 340ed1984e..af4b6f92f9 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectDelete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectDelete.java
@@ -26,6 +26,7 @@
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import org.junit.jupiter.api.Test;
@@ -48,6 +49,7 @@ public void delete() throws IOException, OS3Exception {
 
     ObjectEndpoint rest = new ObjectEndpoint();
     rest.setClient(client);
+    rest.setRequestIdentifier(new RequestIdentifier());
     rest.setOzoneConfiguration(new OzoneConfiguration());
 
     //WHEN
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java
index 048faabcef..af1564110b 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java
@@ -34,6 +34,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.io.OzoneInputStream;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import org.apache.commons.io.IOUtils;
@@ -92,6 +93,7 @@ public void init() throws OS3Exception, IOException {
     rest.setOzoneConfiguration(new OzoneConfiguration());
     headers = mock(HttpHeaders.class);
     rest.setHeaders(headers);
+    rest.setRequestIdentifier(new RequestIdentifier());
 
     ByteArrayInputStream body = new 
ByteArrayInputStream(CONTENT.getBytes(UTF_8));
     rest.put(BUCKET_NAME, KEY_NAME, CONTENT.length(),
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectHead.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectHead.java
index 88a5f00e44..73b556b681 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectHead.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectHead.java
@@ -32,6 +32,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.io.OzoneOutputStream;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
@@ -66,6 +67,7 @@ public void setup() throws IOException {
     // Create HeadBucket and setClient to OzoneClientStub
     keyEndpoint = new ObjectEndpoint();
     keyEndpoint.setClient(clientStub);
+    keyEndpoint.setRequestIdentifier(new RequestIdentifier());
     keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
   }
 
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java
index 413b3afb27..9152da41ef 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectMultiDelete.java
@@ -29,6 +29,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneKey;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.MultiDeleteRequest.DeleteObject;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
@@ -51,6 +52,7 @@ public void delete() throws IOException, OS3Exception, 
JAXBException {
 
     BucketEndpoint rest = new BucketEndpoint();
     rest.setClient(client);
+    rest.setRequestIdentifier(new RequestIdentifier());
 
     MultiDeleteRequest mdr = new MultiDeleteRequest();
     mdr.getObjects().add(new DeleteObject("key1"));
@@ -82,6 +84,7 @@ public void deleteQuiet() throws IOException, OS3Exception, 
JAXBException {
 
     BucketEndpoint rest = new BucketEndpoint();
     rest.setClient(client);
+    rest.setRequestIdentifier(new RequestIdentifier());
 
     MultiDeleteRequest mdr = new MultiDeleteRequest();
     mdr.setQuiet(true);
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectPut.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectPut.java
index a36d756dda..94ce257598 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectPut.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectPut.java
@@ -50,6 +50,7 @@
 import org.apache.hadoop.ozone.client.OzoneVolume;
 import org.apache.hadoop.ozone.client.io.OzoneInputStream;
 import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
 import org.apache.http.HttpStatus;
@@ -134,6 +135,7 @@ void setup() throws IOException {
     objectEndpoint = spy(new ObjectEndpoint());
     objectEndpoint.setClient(clientStub);
     objectEndpoint.setOzoneConfiguration(config);
+    objectEndpoint.setRequestIdentifier(new RequestIdentifier());
 
     headers = mock(HttpHeaders.class);
     objectEndpoint.setHeaders(headers);
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
index 91f8869dc9..eec965db8e 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
@@ -25,6 +25,7 @@
 import org.apache.hadoop.ozone.client.OzoneVolume;
 import org.apache.hadoop.ozone.om.exceptions.OMException;
 import org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -77,6 +78,7 @@ public void init() throws OS3Exception, IOException {
     rest = new ObjectEndpoint();
     rest.setClient(client);
     rest.setOzoneConfiguration(config);
+    rest.setRequestIdentifier(new RequestIdentifier());
     headers = Mockito.mock(HttpHeaders.class);
     rest.setHeaders(headers);
     body = new ByteArrayInputStream(CONTENT.getBytes(UTF_8));
@@ -137,7 +139,7 @@ public void testDeleteObjectTaggingNotImplemented() throws 
Exception {
 
     ObjectEndpoint endpoint = new ObjectEndpoint();
     endpoint.setClient(mockClient);
-
+    endpoint.setRequestIdentifier(new RequestIdentifier());
     doThrow(new OMException("DeleteObjectTagging is not currently supported 
for FSO directory",
         
ResultCodes.NOT_SUPPORTED_OPERATION)).when(mockBucket).deleteObjectTagging("dir/");
 
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingGet.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingGet.java
index f379ae71f5..75563fd3a9 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingGet.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingGet.java
@@ -20,6 +20,7 @@
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.S3Tagging.Tag;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.junit.jupiter.api.BeforeEach;
@@ -64,6 +65,7 @@ public void init() throws OS3Exception, IOException {
     rest = new ObjectEndpoint();
     rest.setClient(client);
     rest.setOzoneConfiguration(config);
+    rest.setRequestIdentifier(new RequestIdentifier());
     HttpHeaders headers = Mockito.mock(HttpHeaders.class);
     rest.setHeaders(headers);
     ByteArrayInputStream body = new 
ByteArrayInputStream(CONTENT.getBytes(UTF_8));
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java
index 478ab8ba79..8c7c73c92e 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java
@@ -26,6 +26,7 @@
 import org.apache.hadoop.ozone.client.OzoneVolume;
 import org.apache.hadoop.ozone.om.exceptions.OMException;
 import org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -78,6 +79,7 @@ void setup() throws IOException, OS3Exception {
     objectEndpoint = new ObjectEndpoint();
     objectEndpoint.setClient(clientStub);
     objectEndpoint.setOzoneConfiguration(config);
+    objectEndpoint.setRequestIdentifier(new RequestIdentifier());
 
     HttpHeaders headers = mock(HttpHeaders.class);
     ByteArrayInputStream body =
@@ -172,6 +174,7 @@ public void testPutObjectTaggingNotImplemented() throws 
Exception {
     twoTagsMap.put("tag1", "val1");
     twoTagsMap.put("tag2", "val2");
     endpoint.setClient(mockClient);
+    endpoint.setRequestIdentifier(new RequestIdentifier());
 
     doThrow(new OMException("PutObjectTagging is not currently supported for 
FSO directory",
         
ResultCodes.NOT_SUPPORTED_OPERATION)).when(mockBucket).putObjectTagging("dir/", 
twoTagsMap);
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUpload.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUpload.java
index dbafa8c11c..67d414f22c 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUpload.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUpload.java
@@ -26,6 +26,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneMultipartUploadPartListParts;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -81,6 +82,7 @@ public static void setUp() throws Exception {
     REST.setHeaders(headers);
     REST.setClient(client);
     REST.setOzoneConfiguration(new OzoneConfiguration());
+    REST.setRequestIdentifier(new RequestIdentifier());
   }
 
 
@@ -159,6 +161,7 @@ public void testPartUploadStreamContentLength()
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setClient(client);
     objectEndpoint.setOzoneConfiguration(new OzoneConfiguration());
+    objectEndpoint.setRequestIdentifier(new RequestIdentifier());
     String keyName = UUID.randomUUID().toString();
 
     String chunkedContent = "0a;chunk-signature=signature\r\n"
@@ -221,6 +224,7 @@ public void 
testPartUploadMessageDigestResetDuringException() throws IOException
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setClient(clientStub);
     objectEndpoint.setOzoneConfiguration(new OzoneConfiguration());
+    objectEndpoint.setRequestIdentifier(new RequestIdentifier());
 
     Response response = 
objectEndpoint.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
         OzoneConsts.KEY);
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
index dc844f6463..30b4823ff8 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
@@ -25,6 +25,7 @@
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 
 import org.junit.jupiter.api.BeforeAll;
@@ -66,6 +67,7 @@ public static void setUp() throws Exception {
 
     REST.setHeaders(headers);
     REST.setClient(client);
+    REST.setRequestIdentifier(new RequestIdentifier());
 
     OzoneConfiguration conf = new OzoneConfiguration();
     conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATASTREAM_ENABLED,
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java
index d256a34629..886ce311ac 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java
@@ -28,6 +28,7 @@
 import org.apache.hadoop.ozone.client.protocol.ClientProtocol;
 import org.apache.hadoop.ozone.om.exceptions.OMException;
 import org.apache.hadoop.ozone.om.helpers.ErrorInfo;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.metrics.S3GatewayMetrics;
 import org.junit.jupiter.api.BeforeEach;
@@ -73,6 +74,7 @@ public class TestPermissionCheck {
   private OzoneVolume volume;
   private OMException exception;
   private HttpHeaders headers;
+  private RequestIdentifier requestIdentifier;
 
   @BeforeEach
   public void setup() {
@@ -92,6 +94,7 @@ public void setup() {
     clientProtocol = mock(ClientProtocol.class);
     S3GatewayMetrics.create(conf);
     when(client.getProxy()).thenReturn(clientProtocol);
+    requestIdentifier = new RequestIdentifier();
   }
 
   /**
@@ -102,6 +105,7 @@ public void testListS3Buckets() throws IOException {
     doThrow(exception).when(objectStore).getS3Volume();
     RootEndpoint rootEndpoint = new RootEndpoint();
     rootEndpoint.setClient(client);
+    rootEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () -> 
rootEndpoint.get());
     assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
   }
@@ -114,6 +118,7 @@ public void testGetBucket() throws IOException {
     doThrow(exception).when(objectStore).getS3Bucket(anyString());
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         bucketEndpoint.head("bucketName"));
     assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -125,6 +130,7 @@ public void testCreateBucket() throws IOException {
     doThrow(exception).when(objectStore).createS3Bucket(anyString());
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         bucketEndpoint.put("bucketName", null, null, null));
     assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -135,7 +141,7 @@ public void testDeleteBucket() throws IOException {
     doThrow(exception).when(objectStore).deleteS3Bucket(anyString());
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
-
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         bucketEndpoint.delete("bucketName"));
     assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -146,7 +152,7 @@ public void testListMultiUpload() throws IOException {
     doThrow(exception).when(bucket).listMultipartUploads(anyString());
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
-
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         bucketEndpoint.listMultipartUploads("bucketName", "prefix"));
     assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -160,7 +166,7 @@ public void testListKey() throws IOException {
         anyBoolean());
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
-
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () -> bucketEndpoint.get(
         "bucketName", null, null, null, 1000,
         null, null, null, null, null, null));
@@ -177,6 +183,7 @@ public void testDeleteKeys() throws IOException, 
OS3Exception {
 
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     MultiDeleteRequest request = new MultiDeleteRequest();
     List<MultiDeleteRequest.DeleteObject> objectList = new ArrayList<>();
     objectList.add(new MultiDeleteRequest.DeleteObject("deleteKeyName"));
@@ -204,6 +211,7 @@ public void testGetAcl() throws Exception {
         .thenReturn(S3Acl.ACLIdentityType.USER.getHeaderType() + "=root");
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     OS3Exception e = assertThrows(OS3Exception.class, () -> bucketEndpoint.get(
         "bucketName", null, null, null, 1000, null, null, null, null, "acl",
         null), "Expected OS3Exception with FORBIDDEN http code.");
@@ -225,6 +233,7 @@ public void testSetAcl() throws Exception {
         .thenReturn(S3Acl.ACLIdentityType.USER.getHeaderType() + "=root");
     BucketEndpoint bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(client);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
     try {
       bucketEndpoint.put("bucketName", "acl", headers, null);
     } catch (Exception e) {
@@ -245,6 +254,7 @@ public void testGetKey() throws IOException {
     objectEndpoint.setClient(client);
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setOzoneConfiguration(conf);
+    objectEndpoint.setRequestIdentifier(requestIdentifier);
 
     OS3Exception e = assertThrows(OS3Exception.class, () -> objectEndpoint.get(
         "bucketName", "keyPath", 0, null, 1000, "marker", null));
@@ -261,6 +271,7 @@ public void testPutKey() throws IOException {
     objectEndpoint.setClient(client);
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setOzoneConfiguration(conf);
+    objectEndpoint.setRequestIdentifier(requestIdentifier);
 
     OS3Exception e = assertThrows(OS3Exception.class, () -> objectEndpoint.put(
         "bucketName", "keyPath", 1024, 0, null, null, null,
@@ -277,6 +288,7 @@ public void testDeleteKey() throws IOException {
     objectEndpoint.setClient(client);
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setOzoneConfiguration(conf);
+    objectEndpoint.setRequestIdentifier(requestIdentifier);
 
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         objectEndpoint.delete("bucketName", "keyPath", null, null));
@@ -291,6 +303,7 @@ public void testMultiUploadKey() throws IOException {
     objectEndpoint.setClient(client);
     objectEndpoint.setHeaders(headers);
     objectEndpoint.setOzoneConfiguration(conf);
+    objectEndpoint.setRequestIdentifier(requestIdentifier);
 
     OS3Exception e = assertThrows(OS3Exception.class, () ->
         objectEndpoint.initializeMultipartUpload("bucketName", "keyPath"));
@@ -309,7 +322,7 @@ public void testObjectTagging() throws Exception {
 
     ObjectEndpoint objectEndpoint = new ObjectEndpoint();
     objectEndpoint.setClient(client);
-
+    objectEndpoint.setRequestIdentifier(requestIdentifier);
     String xml =
         "<Tagging xmlns=\"http://s3.amazonaws.com/doc/2006-03-01/\";>" +
             "   <TagSet>" +
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestRootList.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestRootList.java
index 312ada4f2b..dd7282a88c 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestRootList.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestRootList.java
@@ -22,6 +22,7 @@
 
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -45,6 +46,7 @@ public void setup() throws Exception {
     // Create HeadBucket and setClient to OzoneClientStub
     rootEndpoint = new RootEndpoint();
     rootEndpoint.setClient(clientStub);
+    rootEndpoint.setRequestIdentifier(new RequestIdentifier());
 
 
   }
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
index 1c0e115a24..27f35f835d 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
@@ -29,6 +29,7 @@
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
@@ -79,6 +80,7 @@ public static void setUp() throws Exception {
 
     REST.setHeaders(HEADERS);
     REST.setClient(client);
+    REST.setRequestIdentifier(new RequestIdentifier());
 
     OzoneConfiguration conf = new OzoneConfiguration();
     conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATASTREAM_ENABLED,
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java
index 1f6cee2c4a..e3287e539f 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java
@@ -24,6 +24,7 @@
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint;
 import org.apache.hadoop.ozone.s3.endpoint.ObjectEndpoint;
 import org.apache.hadoop.ozone.s3.endpoint.RootEndpoint;
@@ -87,15 +88,20 @@ public void setup() throws Exception {
     clientStub.getObjectStore().createS3Bucket(bucketName);
     bucket = clientStub.getObjectStore().getS3Bucket(bucketName);
 
+    RequestIdentifier requestIdentifier = new RequestIdentifier();
+
     bucketEndpoint = new BucketEndpoint();
     bucketEndpoint.setClient(clientStub);
+    bucketEndpoint.setRequestIdentifier(requestIdentifier);
 
     rootEndpoint = new RootEndpoint();
     rootEndpoint.setClient(clientStub);
+    rootEndpoint.setRequestIdentifier(requestIdentifier);
 
     keyEndpoint = new ObjectEndpoint();
     keyEndpoint.setClient(clientStub);
     keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
+    keyEndpoint.setRequestIdentifier(requestIdentifier);
 
     headers = mock(HttpHeaders.class);
     when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to