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 ab9a0a21e5 HDDS-12117. Create endpoint builders for S3G tests (#7753)
ab9a0a21e5 is described below
commit ab9a0a21e56d948b73439112850ae0d3411e86a9
Author: Peter Lee <[email protected]>
AuthorDate: Mon Jan 27 17:25:49 2025 +0800
HDDS-12117. Create endpoint builders for S3G tests (#7753)
---
.../hadoop/ozone/s3/TestS3GatewayAuditLog.java | 25 +++--
.../hadoop/ozone/s3/endpoint/EndpointBuilder.java | 125 +++++++++++++++++++++
.../ozone/s3/endpoint/ObjectEndpointBuilder.java | 44 ++++++++
.../s3/endpoint/TestAbortMultipartUpload.java | 12 +-
.../hadoop/ozone/s3/endpoint/TestBucketAcl.java | 7 +-
.../hadoop/ozone/s3/endpoint/TestBucketDelete.java | 7 +-
.../hadoop/ozone/s3/endpoint/TestBucketHead.java | 7 +-
.../hadoop/ozone/s3/endpoint/TestBucketList.java | 7 +-
.../hadoop/ozone/s3/endpoint/TestBucketPut.java | 7 +-
.../s3/endpoint/TestInitiateMultipartUpload.java | 11 +-
.../hadoop/ozone/s3/endpoint/TestListParts.java | 34 +++---
.../s3/endpoint/TestMultipartUploadComplete.java | 36 +++---
.../hadoop/ozone/s3/endpoint/TestObjectDelete.java | 9 +-
.../hadoop/ozone/s3/endpoint/TestObjectGet.java | 11 +-
.../hadoop/ozone/s3/endpoint/TestObjectHead.java | 8 +-
.../ozone/s3/endpoint/TestObjectMultiDelete.java | 13 +--
.../hadoop/ozone/s3/endpoint/TestObjectPut.java | 15 +--
.../ozone/s3/endpoint/TestObjectTaggingDelete.java | 18 +--
.../ozone/s3/endpoint/TestObjectTaggingGet.java | 13 ++-
.../ozone/s3/endpoint/TestObjectTaggingPut.java | 22 ++--
.../hadoop/ozone/s3/endpoint/TestPartUpload.java | 55 +++++----
.../s3/endpoint/TestPartUploadWithStream.java | 36 +++---
.../ozone/s3/endpoint/TestPermissionCheck.java | 103 +++++++++--------
.../hadoop/ozone/s3/endpoint/TestRootList.java | 7 +-
.../ozone/s3/endpoint/TestUploadWithStream.java | 44 ++++----
.../ozone/s3/metrics/TestS3GatewayMetrics.java | 24 ++--
26 files changed, 425 insertions(+), 275 deletions(-)
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 0f2334960e..da38feb7ca 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
@@ -24,13 +24,13 @@
import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.ozone.OzoneConsts;
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.client.io.OzoneOutputStream;
import org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint;
+import org.apache.hadoop.ozone.s3.endpoint.EndpointBuilder;
import org.apache.hadoop.ozone.s3.endpoint.ObjectEndpoint;
import org.apache.hadoop.ozone.s3.endpoint.RootEndpoint;
import org.junit.jupiter.api.Test;
@@ -85,11 +85,16 @@ protected Map<String, String> getAuditParameters() {
return parametersMap;
}
};
- bucketEndpoint.setClient(clientStub);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
- rootEndpoint = new RootEndpoint();
- rootEndpoint.setClient(clientStub);
- rootEndpoint.setRequestIdentifier(requestIdentifier);
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setBase(bucketEndpoint)
+ .setClient(clientStub)
+ .setRequestId(requestIdentifier)
+ .build();
+
+ rootEndpoint = EndpointBuilder.newRootEndpointBuilder()
+ .setClient(clientStub)
+ .setRequestId(requestIdentifier)
+ .build();
keyEndpoint = new ObjectEndpoint() {
@Override
@@ -97,9 +102,11 @@ protected Map<String, String> getAuditParameters() {
return parametersMap;
}
};
- keyEndpoint.setClient(clientStub);
- keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
- keyEndpoint.setRequestIdentifier(requestIdentifier);
+ keyEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setBase(keyEndpoint)
+ .setClient(clientStub)
+ .setRequestId(requestIdentifier)
+ .build();
}
@AfterAll
diff --git
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
new file mode 100644
index 0000000000..a9c1f65b46
--- /dev/null
+++
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
@@ -0,0 +1,125 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.hadoop.ozone.s3.endpoint;
+
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.ozone.client.OzoneClient;
+import org.apache.hadoop.ozone.s3.RequestIdentifier;
+
+import java.util.function.Supplier;
+
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.core.HttpHeaders;
+
+/**
+ * Base builder class for S3 endpoints in tests.
+ * @param <T> Type of endpoint being built
+ */
+public class EndpointBuilder<T extends EndpointBase> {
+
+ private final Supplier<T> constructor;
+ private T base;
+ private OzoneClient ozoneClient;
+ private OzoneConfiguration ozoneConfig;
+ private HttpHeaders httpHeaders;
+ private ContainerRequestContext requestContext;
+ private RequestIdentifier identifier;
+
+ protected EndpointBuilder(Supplier<T> constructor) {
+ this.constructor = constructor;
+ this.ozoneConfig = new OzoneConfiguration();
+ this.identifier = new RequestIdentifier();
+ }
+
+ public EndpointBuilder<T> setBase(T base) {
+ this.base = base;
+ return this;
+ }
+
+ public EndpointBuilder<T> setClient(OzoneClient newClient) {
+ this.ozoneClient = newClient;
+ return this;
+ }
+
+ public EndpointBuilder<T> setConfig(OzoneConfiguration newConfig) {
+ this.ozoneConfig = newConfig;
+ return this;
+ }
+
+ public EndpointBuilder<T> setHeaders(HttpHeaders newHeaders) {
+ this.httpHeaders = newHeaders;
+ return this;
+ }
+
+ public EndpointBuilder<T> setContext(ContainerRequestContext newContext) {
+ this.requestContext = newContext;
+ return this;
+ }
+
+ public EndpointBuilder<T> setRequestId(RequestIdentifier newRequestId) {
+ this.identifier = newRequestId;
+ return this;
+ }
+
+ public T build() {
+ T endpoint = base != null ? base : constructor.get();
+
+ if (ozoneClient != null) {
+ endpoint.setClient(ozoneClient);
+ }
+
+ endpoint.setRequestIdentifier(identifier);
+
+ return endpoint;
+ }
+
+ protected OzoneClient getClient() {
+ return ozoneClient;
+ }
+
+ protected OzoneConfiguration getConfig() {
+ return ozoneConfig;
+ }
+
+ protected HttpHeaders getHeaders() {
+ return httpHeaders;
+ }
+
+ protected ContainerRequestContext getContext() {
+ return requestContext;
+ }
+
+ protected RequestIdentifier getRequestId() {
+ return identifier;
+ }
+
+ public static EndpointBuilder<RootEndpoint> newRootEndpointBuilder() {
+ return new EndpointBuilder<>(RootEndpoint::new);
+ }
+
+ public static EndpointBuilder<BucketEndpoint> newBucketEndpointBuilder() {
+ return new EndpointBuilder<>(BucketEndpoint::new);
+ }
+
+ public static EndpointBuilder<ObjectEndpoint> newObjectEndpointBuilder() {
+ return new ObjectEndpointBuilder();
+ }
+}
diff --git
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpointBuilder.java
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpointBuilder.java
new file mode 100644
index 0000000000..6af9adce7e
--- /dev/null
+++
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpointBuilder.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.hadoop.ozone.s3.endpoint;
+
+import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+
+/**
+ * Builder for ObjectEndpoint in tests.
+ */
+public class ObjectEndpointBuilder extends
+ EndpointBuilder<ObjectEndpoint> {
+
+ public ObjectEndpointBuilder() {
+ super(ObjectEndpoint::new);
+ }
+
+ @Override
+ public ObjectEndpoint build() {
+ ObjectEndpoint endpoint = super.build();
+ final OzoneConfiguration config = getConfig();
+ endpoint.setOzoneConfiguration(config != null ? config : new
OzoneConfiguration());
+ endpoint.setHeaders(getHeaders());
+ endpoint.setContext(getContext());
+ return endpoint;
+ }
+}
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 c4781509b5..87432a286f 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
@@ -19,11 +19,9 @@
*/
package org.apache.hadoop.ozone.s3.endpoint;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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;
@@ -55,11 +53,11 @@ public void testAbortMultipartUpload() throws Exception {
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
"STANDARD");
- ObjectEndpoint rest = new ObjectEndpoint();
- rest.setHeaders(headers);
- rest.setClient(client);
- rest.setOzoneConfiguration(new OzoneConfiguration());
- rest.setRequestIdentifier(new RequestIdentifier());
+ ObjectEndpoint rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
+
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 5f1f4d31fc..c62fc250b8 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,7 +24,6 @@
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;
@@ -72,9 +71,9 @@ public void setup() throws IOException {
headers = mock(HttpHeaders.class);
when(servletRequest.getParameterMap()).thenReturn(parameterMap);
- bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
}
@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 04aca4e274..0aeda85c22 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,7 +27,6 @@
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;
@@ -58,9 +57,9 @@ public void setup() throws Exception {
clientStub.getObjectStore().createS3Bucket(bucketName);
// Create HeadBucket and setClient to OzoneClientStub
- bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(clientStub);
- bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(clientStub)
+ .build();
}
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 f85f42d293..872e53fd27 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,7 +25,6 @@
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;
@@ -50,9 +49,9 @@ public void setup() throws Exception {
clientStub.getObjectStore().createS3Bucket(bucketName);
// Create HeadBucket and setClient to OzoneClientStub
- bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(clientStub);
- bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(clientStub)
+ .build();
}
@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 69bc535080..304f79e66d 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
@@ -50,12 +50,11 @@ public class TestBucketList {
@Test
public void listRoot() throws OS3Exception, IOException {
- BucketEndpoint getBucket = new BucketEndpoint();
-
OzoneClient client = createClientWithKeys("file1", "dir1/file2");
- getBucket.setClient(client);
- getBucket.setRequestIdentifier(new RequestIdentifier());
+ BucketEndpoint getBucket = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
ListObjectResponse getBucketResponse =
(ListObjectResponse) getBucket.get("b1", "/", null, null, 100, "",
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 2a575a2e72..d6bc6ee002 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,7 +26,6 @@
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;
@@ -57,9 +56,9 @@ public void setup() throws Exception {
clientStub = new OzoneClientStub();
// Create HeadBucket and setClient to OzoneClientStub
- bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(clientStub);
- bucketEndpoint.setRequestIdentifier(new RequestIdentifier());
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(clientStub)
+ .build();
}
@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 0954b7b2f5..a6baef0559 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
@@ -21,11 +21,9 @@
package org.apache.hadoop.ozone.s3.endpoint;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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;
@@ -97,11 +95,10 @@ public void testInitiateMultipartUploadWithECKey() throws
Exception {
@Nonnull
private ObjectEndpoint getObjectEndpoint(OzoneClient client,
HttpHeaders headers) {
- ObjectEndpoint rest = new ObjectEndpoint();
- rest.setHeaders(headers);
- rest.setClient(client);
- rest.setOzoneConfiguration(new OzoneConfiguration());
- rest.setRequestIdentifier(new RequestIdentifier());
+ ObjectEndpoint rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
return rest;
}
}
diff --git
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestListParts.java
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestListParts.java
index 489aa5d91c..b720cab29f 100644
---
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestListParts.java
+++
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestListParts.java
@@ -18,13 +18,12 @@
package org.apache.hadoop.ozone.s3.endpoint;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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.exception.OS3Exception;
import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import javax.ws.rs.core.HttpHeaders;
@@ -47,11 +46,11 @@
public class TestListParts {
- private static final ObjectEndpoint REST = new ObjectEndpoint();
- private static String uploadID;
+ private ObjectEndpoint rest;
+ private String uploadID;
- @BeforeAll
- public static void setUp() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
OzoneClient client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
@@ -60,11 +59,12 @@ public static void setUp() throws Exception {
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
"STANDARD");
- REST.setHeaders(headers);
- REST.setClient(client);
- REST.setOzoneConfiguration(new OzoneConfiguration());
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
- Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+ Response response = rest.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
OzoneConsts.KEY);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
@@ -76,17 +76,17 @@ public static void setUp() throws Exception {
String content = "Multipart Upload";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 2, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 3, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -94,7 +94,7 @@ public static void setUp() throws Exception {
@Test
public void testListParts() throws Exception {
- Response response = REST.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
+ Response response = rest.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
uploadID, 3, "0", null);
ListPartsResponse listPartsResponse =
@@ -107,7 +107,7 @@ public void testListParts() throws Exception {
@Test
public void testListPartsContinuation() throws Exception {
- Response response = REST.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
+ Response response = rest.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
uploadID, 2, "0", null);
ListPartsResponse listPartsResponse =
(ListPartsResponse) response.getEntity();
@@ -116,7 +116,7 @@ public void testListPartsContinuation() throws Exception {
assertEquals(2, listPartsResponse.getPartList().size());
// Continue
- response = REST.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0, uploadID, 2,
+ response = rest.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0, uploadID, 2,
Integer.toString(listPartsResponse.getNextPartNumberMarker()), null);
listPartsResponse = (ListPartsResponse) response.getEntity();
@@ -128,7 +128,7 @@ public void testListPartsContinuation() throws Exception {
@Test
public void testListPartsWithUnknownUploadID() throws Exception {
try {
- REST.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
+ rest.get(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, 0,
uploadID, 2, "0", null);
} catch (OS3Exception ex) {
assertEquals(S3ErrorTable.NO_SUCH_UPLOAD.getErrorMessage(),
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 d9da4ed866..a4a3ef1f39 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
@@ -20,13 +20,12 @@
package org.apache.hadoop.ozone.s3.endpoint;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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.exception.OS3Exception;
import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import javax.ws.rs.core.HttpHeaders;
@@ -43,7 +42,6 @@
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;
@@ -61,22 +59,22 @@
public class TestMultipartUploadComplete {
- private static final ObjectEndpoint REST = new ObjectEndpoint();
- private static final HttpHeaders HEADERS = mock(HttpHeaders.class);
- private static final OzoneClient CLIENT = new OzoneClientStub();
+ private ObjectEndpoint rest;
+ private HttpHeaders headers = mock(HttpHeaders.class);
+ private OzoneClient client = new OzoneClientStub();
- @BeforeAll
- public static void setUp() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
- CLIENT.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
+ client.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
- when(HEADERS.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
+ when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
"STANDARD");
- REST.setHeaders(HEADERS);
- REST.setClient(CLIENT);
- REST.setOzoneConfiguration(new OzoneConfiguration());
- REST.setRequestIdentifier(new RequestIdentifier());
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
}
private String initiateMultipartUpload(String key) throws IOException,
@@ -93,9 +91,9 @@ private String initiateMultipartUpload(String key,
Map<String, String> metadata)
.add(entry.getValue());
}
- when(HEADERS.getRequestHeaders()).thenReturn(metadataHeaders);
+ when(headers.getRequestHeaders()).thenReturn(metadataHeaders);
- Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+ Response response = rest.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
key);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
@@ -111,7 +109,7 @@ private Part uploadPart(String key, String uploadID, int
partNumber, String
content) throws IOException, OS3Exception {
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- Response response = REST.put(OzoneConsts.S3_BUCKET, key, content.length(),
+ Response response = rest.put(OzoneConsts.S3_BUCKET, key, content.length(),
partNumber, uploadID, null, null, body);
assertEquals(200, response.getStatus());
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -125,7 +123,7 @@ private Part uploadPart(String key, String uploadID, int
partNumber, String
private void completeMultipartUpload(String key,
CompleteMultipartUploadRequest completeMultipartUploadRequest,
String uploadID) throws IOException, OS3Exception {
- Response response = REST.completeMultipartUpload(OzoneConsts.S3_BUCKET,
key,
+ Response response = rest.completeMultipartUpload(OzoneConsts.S3_BUCKET,
key,
uploadID, completeMultipartUploadRequest);
assertEquals(200, response.getStatus());
@@ -198,7 +196,7 @@ public void testMultipartWithCustomMetadata() throws
Exception {
completeMultipartUpload(key, completeMultipartUploadRequest, uploadID);
- Response headResponse = REST.head(OzoneConsts.S3_BUCKET, key);
+ Response headResponse = rest.head(OzoneConsts.S3_BUCKET, key);
assertEquals("custom-value1",
headResponse.getHeaderString(CUSTOM_METADATA_HEADER_PREFIX + "custom-key1"));
assertEquals("custom-value2",
headResponse.getHeaderString(CUSTOM_METADATA_HEADER_PREFIX + "custom-key2"));
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 af4b6f92f9..1992fe97d9 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
@@ -22,11 +22,9 @@
import static org.junit.jupiter.api.Assertions.assertFalse;
import java.io.IOException;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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;
@@ -47,10 +45,9 @@ public void delete() throws IOException, OS3Exception {
bucket.createKey("key1", 0).close();
- ObjectEndpoint rest = new ObjectEndpoint();
- rest.setClient(client);
- rest.setRequestIdentifier(new RequestIdentifier());
- rest.setOzoneConfiguration(new OzoneConfiguration());
+ ObjectEndpoint rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .build();
//WHEN
rest.delete("b1", "key1", null, null);
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 af1564110b..12950d8dce 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,7 +34,6 @@
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;
@@ -88,12 +87,12 @@ public void init() throws OS3Exception, IOException {
client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(BUCKET_NAME);
- rest = new ObjectEndpoint();
- rest.setClient(client);
- rest.setOzoneConfiguration(new OzoneConfiguration());
headers = mock(HttpHeaders.class);
- rest.setHeaders(headers);
- rest.setRequestIdentifier(new RequestIdentifier());
+
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .build();
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 73b556b681..3cb72910a3 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,7 +32,6 @@
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;
@@ -65,10 +64,9 @@ public void setup() throws IOException {
bucket = clientStub.getObjectStore().getS3Bucket(bucketName);
// Create HeadBucket and setClient to OzoneClientStub
- keyEndpoint = new ObjectEndpoint();
- keyEndpoint.setClient(clientStub);
- keyEndpoint.setRequestIdentifier(new RequestIdentifier());
- keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
+ keyEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(clientStub)
+ .build();
}
@Test
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 9152da41ef..9770b48722 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,7 +29,6 @@
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;
@@ -50,9 +49,9 @@ public void delete() throws IOException, OS3Exception,
JAXBException {
OzoneClient client = new OzoneClientStub();
OzoneBucket bucket = initTestData(client);
- BucketEndpoint rest = new BucketEndpoint();
- rest.setClient(client);
- rest.setRequestIdentifier(new RequestIdentifier());
+ BucketEndpoint rest = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
MultiDeleteRequest mdr = new MultiDeleteRequest();
mdr.getObjects().add(new DeleteObject("key1"));
@@ -82,9 +81,9 @@ public void deleteQuiet() throws IOException, OS3Exception,
JAXBException {
OzoneClient client = new OzoneClientStub();
OzoneBucket bucket = initTestData(client);
- BucketEndpoint rest = new BucketEndpoint();
- rest.setClient(client);
- rest.setRequestIdentifier(new RequestIdentifier());
+ BucketEndpoint rest = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
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 94ce257598..4567b1500f 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,7 +50,6 @@
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;
@@ -131,14 +130,16 @@ void setup() throws IOException {
bucket = clientStub.getObjectStore().getS3Bucket(BUCKET_NAME);
clientStub.getObjectStore().createS3Bucket(DEST_BUCKET_NAME);
+ headers = mock(HttpHeaders.class);
+
// Create PutObject and setClient to OzoneClientStub
- objectEndpoint = spy(new ObjectEndpoint());
- objectEndpoint.setClient(clientStub);
- objectEndpoint.setOzoneConfiguration(config);
- objectEndpoint.setRequestIdentifier(new RequestIdentifier());
+ objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(clientStub)
+ .setConfig(config)
+ .setHeaders(headers)
+ .build();
- headers = mock(HttpHeaders.class);
- objectEndpoint.setHeaders(headers);
+ objectEndpoint = spy(objectEndpoint);
String volumeName = config.get(OzoneConfigKeys.OZONE_S3_VOLUME_NAME,
OzoneConfigKeys.OZONE_S3_VOLUME_NAME_DEFAULT);
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 eec965db8e..e0596d1acf 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,7 +25,6 @@
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;
@@ -75,12 +74,13 @@ public void init() throws OS3Exception, IOException {
client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(BUCKET_NAME);
- rest = new ObjectEndpoint();
- rest.setClient(client);
- rest.setOzoneConfiguration(config);
- rest.setRequestIdentifier(new RequestIdentifier());
headers = Mockito.mock(HttpHeaders.class);
- rest.setHeaders(headers);
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setConfig(config)
+ .setHeaders(headers)
+ .build();
+
body = new ByteArrayInputStream(CONTENT.getBytes(UTF_8));
// Create a key with object tags
Mockito.when(headers.getHeaderString(TAG_HEADER)).thenReturn("tag1=value1&tag2=value2");
@@ -137,9 +137,9 @@ public void testDeleteObjectTaggingNotImplemented() throws
Exception {
when(mockObjectStore.getS3Volume()).thenReturn(mockVolume);
when(mockVolume.getBucket("fsoBucket")).thenReturn(mockBucket);
- ObjectEndpoint endpoint = new ObjectEndpoint();
- endpoint.setClient(mockClient);
- endpoint.setRequestIdentifier(new RequestIdentifier());
+ ObjectEndpoint endpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(mockClient)
+ .build();
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 75563fd3a9..26d4c0ad13 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,7 +20,6 @@
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;
@@ -62,12 +61,14 @@ public void init() throws OS3Exception, IOException {
OzoneClient client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(BUCKET_NAME);
- rest = new ObjectEndpoint();
- rest.setClient(client);
- rest.setOzoneConfiguration(config);
- rest.setRequestIdentifier(new RequestIdentifier());
HttpHeaders headers = Mockito.mock(HttpHeaders.class);
- rest.setHeaders(headers);
+
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setConfig(config)
+ .setHeaders(headers)
+ .build();
+
ByteArrayInputStream body = new
ByteArrayInputStream(CONTENT.getBytes(UTF_8));
// Create a key with object tags
Mockito.when(headers.getHeaderString(TAG_HEADER)).thenReturn("tag1=value1&tag2=value2");
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 8c7c73c92e..96470a3568 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,7 +26,6 @@
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;
@@ -75,16 +74,18 @@ void setup() throws IOException, OS3Exception {
// Create bucket
clientStub.getObjectStore().createS3Bucket(BUCKET_NAME);
+ HttpHeaders headers = mock(HttpHeaders.class);
+
// Create PutObject and setClient to OzoneClientStub
- objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(clientStub);
- objectEndpoint.setOzoneConfiguration(config);
- objectEndpoint.setRequestIdentifier(new RequestIdentifier());
+ objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(clientStub)
+ .setConfig(config)
+ .setHeaders(headers)
+ .build();
- HttpHeaders headers = mock(HttpHeaders.class);
+
ByteArrayInputStream body =
new ByteArrayInputStream("".getBytes(UTF_8));
- objectEndpoint.setHeaders(headers);
objectEndpoint.put(BUCKET_NAME, KEY_NAME, 0, 1, null, null, null, body);
}
@@ -169,12 +170,13 @@ public void testPutObjectTaggingNotImplemented() throws
Exception {
when(mockObjectStore.getS3Volume()).thenReturn(mockVolume);
when(mockVolume.getBucket("fsoBucket")).thenReturn(mockBucket);
- ObjectEndpoint endpoint = new ObjectEndpoint();
+ ObjectEndpoint endpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(mockClient)
+ .build();
Map<String, String> twoTagsMap = new HashMap<>();
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 67d414f22c..aa74292a45 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
@@ -21,14 +21,12 @@
package org.apache.hadoop.ozone.s3.endpoint;
import org.apache.commons.io.IOUtils;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
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.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.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
@@ -65,11 +63,11 @@
*/
public class TestPartUpload {
- private static final ObjectEndpoint REST = new ObjectEndpoint();
- private static OzoneClient client;
+ private ObjectEndpoint rest;
+ private OzoneClient client;
- @BeforeAll
- public static void setUp() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
@@ -79,17 +77,17 @@ public static void setUp() throws Exception {
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
"STANDARD");
- REST.setHeaders(headers);
- REST.setClient(client);
- REST.setOzoneConfiguration(new OzoneConfiguration());
- REST.setRequestIdentifier(new RequestIdentifier());
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
}
@Test
public void testPartUpload() throws Exception {
- Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+ Response response = rest.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
OzoneConsts.KEY);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
@@ -101,7 +99,7 @@ public void testPartUpload() throws Exception {
String content = "Multipart Upload";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -111,7 +109,7 @@ public void testPartUpload() throws Exception {
@Test
public void testPartUploadWithOverride() throws Exception {
- Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+ Response response = rest.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
OzoneConsts.KEY);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
@@ -123,7 +121,7 @@ public void testPartUploadWithOverride() throws Exception {
String content = "Multipart Upload";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -132,7 +130,7 @@ public void testPartUploadWithOverride() throws Exception {
// Upload part again with same part Number, the ETag should be changed.
content = "Multipart Upload Changed";
- response = REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
+ response = rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
assertNotEquals(eTag, response.getHeaderString(OzoneConsts.ETAG));
@@ -146,7 +144,7 @@ public void testPartUploadWithIncorrectUploadID() throws
Exception {
String content = "Multipart Upload With Incorrect uploadID";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- REST.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, content.length(), 1,
+ rest.put(OzoneConsts.S3_BUCKET, OzoneConsts.KEY, content.length(), 1,
"random", null, null, body);
});
assertEquals("NoSuchUpload", ex.getCode());
@@ -157,11 +155,10 @@ public void testPartUploadWithIncorrectUploadID() throws
Exception {
public void testPartUploadStreamContentLength()
throws IOException, OS3Exception {
HttpHeaders headers = mock(HttpHeaders.class);
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setClient(client);
- objectEndpoint.setOzoneConfiguration(new OzoneConfiguration());
- objectEndpoint.setRequestIdentifier(new RequestIdentifier());
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .build();
String keyName = UUID.randomUUID().toString();
String chunkedContent = "0a;chunk-signature=signature\r\n"
@@ -193,7 +190,7 @@ public void testPartUploadContentLength() throws
IOException, OS3Exception {
// the actual length of the data written.
String keyName = UUID.randomUUID().toString();
- Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+ Response response = rest.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
keyName);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
@@ -204,7 +201,7 @@ public void testPartUploadContentLength() throws
IOException, OS3Exception {
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- REST.put(OzoneConsts.S3_BUCKET, keyName,
+ rest.put(OzoneConsts.S3_BUCKET, keyName,
contentLength, 1, uploadID, null, null, body);
assertContentLength(uploadID, keyName, content.length());
}
@@ -219,12 +216,12 @@ public void
testPartUploadMessageDigestResetDuringException() throws IOException
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
"STANDARD");
- ObjectEndpoint objectEndpoint = spy(new ObjectEndpoint());
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(clientStub)
+ .build();
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setClient(clientStub);
- objectEndpoint.setOzoneConfiguration(new OzoneConfiguration());
- objectEndpoint.setRequestIdentifier(new RequestIdentifier());
+ objectEndpoint = spy(objectEndpoint);
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 30b4823ff8..28ed0086a1 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,10 +25,9 @@
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;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import javax.ws.rs.core.HttpHeaders;
@@ -51,13 +50,13 @@
*/
public class TestPartUploadWithStream {
- private static final ObjectEndpoint REST = new ObjectEndpoint();
+ private ObjectEndpoint rest;
private static final String S3BUCKET = "streampartb1";
private static final String S3KEY = "testkey";
- @BeforeAll
- public static void setUp() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
OzoneClient client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(S3BUCKET);
@@ -65,26 +64,29 @@ public static void setUp() throws Exception {
HttpHeaders headers = mock(HttpHeaders.class);
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn("STANDARD");
- REST.setHeaders(headers);
- REST.setClient(client);
- REST.setRequestIdentifier(new RequestIdentifier());
OzoneConfiguration conf = new OzoneConfiguration();
conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATASTREAM_ENABLED,
true);
- REST.setOzoneConfiguration(conf);
- REST.init();
+
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setHeaders(headers)
+ .setClient(client)
+ .setConfig(conf)
+ .build();
+
+ rest.init();
}
@Test
public void testEnableStream() {
- assertTrue(REST.isDatastreamEnabled());
+ assertTrue(rest.isDatastreamEnabled());
}
@Test
public void testPartUpload() throws Exception {
- Response response = REST.initializeMultipartUpload(S3BUCKET, S3KEY);
+ Response response = rest.initializeMultipartUpload(S3BUCKET, S3KEY);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
assertNotNull(multipartUploadInitiateResponse.getUploadID());
@@ -95,7 +97,7 @@ public void testPartUpload() throws Exception {
String content = "Multipart Upload";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- response = REST.put(S3BUCKET, S3KEY,
+ response = rest.put(S3BUCKET, S3KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -105,7 +107,7 @@ public void testPartUpload() throws Exception {
@Test
public void testPartUploadWithOverride() throws Exception {
- Response response = REST.initializeMultipartUpload(S3BUCKET, S3KEY);
+ Response response = rest.initializeMultipartUpload(S3BUCKET, S3KEY);
MultipartUploadInitiateResponse multipartUploadInitiateResponse =
(MultipartUploadInitiateResponse) response.getEntity();
assertNotNull(multipartUploadInitiateResponse.getUploadID());
@@ -116,7 +118,7 @@ public void testPartUploadWithOverride() throws Exception {
String content = "Multipart Upload";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- response = REST.put(S3BUCKET, S3KEY,
+ response = rest.put(S3BUCKET, S3KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -125,7 +127,7 @@ public void testPartUploadWithOverride() throws Exception {
// Upload part again with same part Number, the ETag should be changed.
content = "Multipart Upload Changed";
- response = REST.put(S3BUCKET, S3KEY,
+ response = rest.put(S3BUCKET, S3KEY,
content.length(), 1, uploadID, null, null, body);
assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
assertNotEquals(eTag, response.getHeaderString(OzoneConsts.ETAG));
@@ -138,7 +140,7 @@ public void testPartUploadWithIncorrectUploadID() throws
Exception {
String content = "Multipart Upload With Incorrect uploadID";
ByteArrayInputStream body =
new ByteArrayInputStream(content.getBytes(UTF_8));
- REST.put(S3BUCKET, S3KEY, content.length(), 1,
+ rest.put(S3BUCKET, S3KEY, content.length(), 1,
"random", null, null, body);
});
assertEquals("NoSuchUpload", ex.getCode());
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 886ce311ac..fc828e101b 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,7 +28,6 @@
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;
@@ -74,7 +73,6 @@ public class TestPermissionCheck {
private OzoneVolume volume;
private OMException exception;
private HttpHeaders headers;
- private RequestIdentifier requestIdentifier;
@BeforeEach
public void setup() {
@@ -94,7 +92,6 @@ public void setup() {
clientProtocol = mock(ClientProtocol.class);
S3GatewayMetrics.create(conf);
when(client.getProxy()).thenReturn(clientProtocol);
- requestIdentifier = new RequestIdentifier();
}
/**
@@ -103,9 +100,9 @@ public void setup() {
@Test
public void testListS3Buckets() throws IOException {
doThrow(exception).when(objectStore).getS3Volume();
- RootEndpoint rootEndpoint = new RootEndpoint();
- rootEndpoint.setClient(client);
- rootEndpoint.setRequestIdentifier(requestIdentifier);
+ RootEndpoint rootEndpoint = EndpointBuilder.newRootEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
rootEndpoint.get());
assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
}
@@ -116,9 +113,9 @@ public void testListS3Buckets() throws IOException {
@Test
public void testGetBucket() throws IOException {
doThrow(exception).when(objectStore).getS3Bucket(anyString());
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
bucketEndpoint.head("bucketName"));
assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -128,9 +125,9 @@ public void testGetBucket() throws IOException {
public void testCreateBucket() throws IOException {
when(objectStore.getVolume(anyString())).thenReturn(volume);
doThrow(exception).when(objectStore).createS3Bucket(anyString());
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
bucketEndpoint.put("bucketName", null, null, null));
assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -139,9 +136,9 @@ public void testCreateBucket() throws IOException {
@Test
public void testDeleteBucket() throws IOException {
doThrow(exception).when(objectStore).deleteS3Bucket(anyString());
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
bucketEndpoint.delete("bucketName"));
assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -150,9 +147,9 @@ public void testDeleteBucket() throws IOException {
public void testListMultiUpload() throws IOException {
when(objectStore.getS3Bucket(anyString())).thenReturn(bucket);
doThrow(exception).when(bucket).listMultipartUploads(anyString());
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
bucketEndpoint.listMultipartUploads("bucketName", "prefix"));
assertEquals(HTTP_FORBIDDEN, e.getHttpCode());
@@ -164,9 +161,9 @@ public void testListKey() throws IOException {
when(objectStore.getS3Bucket(anyString())).thenReturn(bucket);
doThrow(exception).when(bucket).listKeys(anyString(), isNull(),
anyBoolean());
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () -> bucketEndpoint.get(
"bucketName", null, null, null, 1000,
null, null, null, null, null, null));
@@ -181,9 +178,9 @@ public void testDeleteKeys() throws IOException,
OS3Exception {
deleteErrors.put("deleteKeyName", new ErrorInfo("ACCESS_DENIED", "ACL
check failed"));
when(bucket.deleteKeys(any(), anyBoolean())).thenReturn(deleteErrors);
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
MultiDeleteRequest request = new MultiDeleteRequest();
List<MultiDeleteRequest.DeleteObject> objectList = new ArrayList<>();
objectList.add(new MultiDeleteRequest.DeleteObject("deleteKeyName"));
@@ -209,9 +206,9 @@ public void testGetAcl() throws Exception {
when(parameterMap.containsKey("acl")).thenReturn(true);
when(headers.getHeaderString(S3Acl.GRANT_READ))
.thenReturn(S3Acl.ACLIdentityType.USER.getHeaderType() + "=root");
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () -> bucketEndpoint.get(
"bucketName", null, null, null, 1000, null, null, null, null, "acl",
null), "Expected OS3Exception with FORBIDDEN http code.");
@@ -231,9 +228,9 @@ public void testSetAcl() throws Exception {
when(parameterMap.containsKey("acl")).thenReturn(true);
when(headers.getHeaderString(S3Acl.GRANT_READ))
.thenReturn(S3Acl.ACLIdentityType.USER.getHeaderType() + "=root");
- BucketEndpoint bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(client);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
+ BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(client)
+ .build();
try {
bucketEndpoint.put("bucketName", "acl", headers, null);
} catch (Exception e) {
@@ -250,11 +247,11 @@ public void testGetKey() throws IOException {
when(client.getProxy()).thenReturn(clientProtocol);
doThrow(exception).when(clientProtocol)
.getS3KeyDetails(anyString(), anyString());
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(client);
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setOzoneConfiguration(conf);
- objectEndpoint.setRequestIdentifier(requestIdentifier);
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .setConfig(conf)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () -> objectEndpoint.get(
"bucketName", "keyPath", 0, null, 1000, "marker", null));
@@ -267,11 +264,11 @@ public void testPutKey() throws IOException {
when(volume.getBucket("bucketName")).thenReturn(bucket);
doThrow(exception).when(clientProtocol).createKey(
anyString(), anyString(), anyString(), anyLong(), any(), anyMap(),
anyMap());
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(client);
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setOzoneConfiguration(conf);
- objectEndpoint.setRequestIdentifier(requestIdentifier);
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .setConfig(conf)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () -> objectEndpoint.put(
"bucketName", "keyPath", 1024, 0, null, null, null,
@@ -284,11 +281,11 @@ public void testDeleteKey() throws IOException {
when(objectStore.getS3Volume()).thenReturn(volume);
doThrow(exception).when(clientProtocol).deleteKey(anyString(), anyString(),
anyString(), anyBoolean());
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(client);
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setOzoneConfiguration(conf);
- objectEndpoint.setRequestIdentifier(requestIdentifier);
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .setConfig(conf)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
objectEndpoint.delete("bucketName", "keyPath", null, null));
@@ -299,11 +296,11 @@ public void testDeleteKey() throws IOException {
public void testMultiUploadKey() throws IOException {
when(objectStore.getS3Bucket(anyString())).thenReturn(bucket);
doThrow(exception).when(bucket).initiateMultipartUpload(anyString(),
any(), anyMap(), anyMap());
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(client);
- objectEndpoint.setHeaders(headers);
- objectEndpoint.setOzoneConfiguration(conf);
- objectEndpoint.setRequestIdentifier(requestIdentifier);
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .setConfig(conf)
+ .build();
OS3Exception e = assertThrows(OS3Exception.class, () ->
objectEndpoint.initializeMultipartUpload("bucketName", "keyPath"));
@@ -320,9 +317,9 @@ public void testObjectTagging() throws Exception {
doThrow(exception).when(bucket).putObjectTagging(anyString(), anyMap());
doThrow(exception).when(bucket).deleteObjectTagging(anyString());
- ObjectEndpoint objectEndpoint = new ObjectEndpoint();
- objectEndpoint.setClient(client);
- objectEndpoint.setRequestIdentifier(requestIdentifier);
+ ObjectEndpoint objectEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .build();
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 dd7282a88c..c829e9df1d 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,7 +22,6 @@
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;
@@ -44,9 +43,9 @@ public void setup() throws Exception {
clientStub = new OzoneClientStub();
// Create HeadBucket and setClient to OzoneClientStub
- rootEndpoint = new RootEndpoint();
- rootEndpoint.setClient(clientStub);
- rootEndpoint.setRequestIdentifier(new RequestIdentifier());
+ rootEndpoint = EndpointBuilder.newRootEndpointBuilder()
+ .setClient(clientStub)
+ .build();
}
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 27f35f835d..f3af90be64 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,8 +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.BeforeEach;
import org.junit.jupiter.api.Test;
import javax.ws.rs.container.ContainerRequestContext;
@@ -57,50 +56,49 @@
*/
public class TestUploadWithStream {
- private static final ObjectEndpoint REST = new ObjectEndpoint();
-
private static final String S3BUCKET = "streamb1";
private static final String S3KEY = "testkey";
private static final String S3_COPY_EXISTING_KEY = "test_copy_existing_key";
private static final String S3_COPY_EXISTING_KEY_CONTENT =
"test_copy_existing_key_content";
- private static OzoneClient client;
- private static final HttpHeaders HEADERS;
- private static ContainerRequestContext context;
- static {
- HEADERS = mock(HttpHeaders.class);
- when(HEADERS.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn("STANDARD");
- }
+ private ObjectEndpoint rest;
+
+ private OzoneClient client;
+ private ContainerRequestContext context;
- @BeforeAll
- public static void setUp() throws Exception {
+ @BeforeEach
+ public void setUp() throws Exception {
client = new OzoneClientStub();
client.getObjectStore().createS3Bucket(S3BUCKET);
- REST.setHeaders(HEADERS);
- REST.setClient(client);
- REST.setRequestIdentifier(new RequestIdentifier());
+ HttpHeaders headers = mock(HttpHeaders.class);
+ when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn("STANDARD");
OzoneConfiguration conf = new OzoneConfiguration();
conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATASTREAM_ENABLED,
true);
conf.setStorageSize(OZONE_FS_DATASTREAM_AUTO_THRESHOLD, 1,
StorageUnit.BYTES);
- REST.setOzoneConfiguration(conf);
context = mock(ContainerRequestContext.class);
when(context.getUriInfo()).thenReturn(mock(UriInfo.class));
when(context.getUriInfo().getQueryParameters())
.thenReturn(new MultivaluedHashMap<>());
- REST.setContext(context);
- REST.init();
+ rest = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(client)
+ .setHeaders(headers)
+ .setConfig(conf)
+ .setContext(context)
+ .build();
+
+ rest.init();
}
@Test
public void testEnableStream() {
- assertTrue(REST.isDatastreamEnabled());
+ assertTrue(rest.isDatastreamEnabled());
}
@Test
@@ -108,7 +106,7 @@ public void testUpload() throws Exception {
byte[] keyContent = S3_COPY_EXISTING_KEY_CONTENT.getBytes(UTF_8);
ByteArrayInputStream body =
new ByteArrayInputStream(keyContent);
- Response response = REST.put(S3BUCKET, S3KEY, 0, 0, null, null, null,
body);
+ Response response = rest.put(S3BUCKET, S3KEY, 0, 0, null, null, null,
body);
assertEquals(200, response.getStatus());
}
@@ -140,9 +138,9 @@ public void testUploadWithCopy() throws Exception {
additionalHeaders
.forEach((k, v) -> when(headers.getHeaderString(k)).thenReturn(v));
- REST.setHeaders(headers);
+ rest.setHeaders(headers);
- Response response = REST.put(S3BUCKET, S3KEY, 0, 0, null, null, null,
null);
+ Response response = rest.put(S3BUCKET, S3KEY, 0, 0, null, null, null,
null);
assertEquals(200, response.getStatus());
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 e3287e539f..6e40eca6cf 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
@@ -19,18 +19,17 @@
*/
package org.apache.hadoop.ozone.s3.metrics;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.ozone.OzoneConsts;
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;
import org.apache.hadoop.ozone.s3.endpoint.TestBucketAcl;
import org.apache.hadoop.ozone.s3.endpoint.MultipartUploadInitiateResponse;
import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadRequest;
+import org.apache.hadoop.ozone.s3.endpoint.EndpointBuilder;
import org.apache.hadoop.ozone.s3.exception.OS3Exception;
import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
@@ -88,20 +87,17 @@ public void setup() throws Exception {
clientStub.getObjectStore().createS3Bucket(bucketName);
bucket = clientStub.getObjectStore().getS3Bucket(bucketName);
- RequestIdentifier requestIdentifier = new RequestIdentifier();
+ bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+ .setClient(clientStub)
+ .build();
- bucketEndpoint = new BucketEndpoint();
- bucketEndpoint.setClient(clientStub);
- bucketEndpoint.setRequestIdentifier(requestIdentifier);
-
- rootEndpoint = new RootEndpoint();
- rootEndpoint.setClient(clientStub);
- rootEndpoint.setRequestIdentifier(requestIdentifier);
+ rootEndpoint = EndpointBuilder.newRootEndpointBuilder()
+ .setClient(clientStub)
+ .build();
- keyEndpoint = new ObjectEndpoint();
- keyEndpoint.setClient(clientStub);
- keyEndpoint.setOzoneConfiguration(new OzoneConfiguration());
- keyEndpoint.setRequestIdentifier(requestIdentifier);
+ keyEndpoint = EndpointBuilder.newObjectEndpointBuilder()
+ .setClient(clientStub)
+ .build();
headers = mock(HttpHeaders.class);
when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]