This is an automated email from the ASF dual-hosted git repository.
rakeshr pushed a commit to branch HDDS-2939
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/HDDS-2939 by this push:
new 974136d HDDS-4923. [FSO]S3Multipart: Run S3 acceptance test with
prefix layout (#2208)
974136d is described below
commit 974136d78231dce54f34057add7d79d2f2e9de01
Author: Rakesh Radhakrishnan <[email protected]>
AuthorDate: Fri May 14 12:32:22 2021 +0530
HDDS-4923. [FSO]S3Multipart: Run S3 acceptance test with prefix layout
(#2208)
---
hadoop-ozone/dist/src/main/compose/ozone/test.sh | 10 ++++++++--
.../s3/multipart/S3MultipartUploadAbortRequest.java | 14 +++++++++++---
.../apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java | 5 +++++
3 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/hadoop-ozone/dist/src/main/compose/ozone/test.sh
b/hadoop-ozone/dist/src/main/compose/ozone/test.sh
index eb6067e..2b55188 100755
--- a/hadoop-ozone/dist/src/main/compose/ozone/test.sh
+++ b/hadoop-ozone/dist/src/main/compose/ozone/test.sh
@@ -58,13 +58,19 @@ export OZONE_KEEP_RESULTS=true
stop_docker_env
## Restarting the cluster with prefix-layout enabled (FSO)
-OZONE_OM_METADATA_LAYOUT=PREFIX
-OZONE_OM_ENABLE_FILESYSTEM_PATHS=true
+export OZONE_OM_METADATA_LAYOUT=PREFIX
+export OZONE_OM_ENABLE_FILESYSTEM_PATHS=true
start_docker_env
execute_robot_test scm -v SCHEME:ofs -v BUCKET_TYPE:link -N
ozonefs-prefix-ofs-link ozonefs/ozonefs.robot
execute_robot_test scm -v SCHEME:o3fs -v BUCKET_TYPE:bucket -N
ozonefs-prefix-o3fs-bucket ozonefs/ozonefs.robot
+execute_robot_test scm -v BUCKET:${bucket} -N
s3-${bucket}-prefix-layout-objectputget s3/objectputget.robot
+execute_robot_test scm -v BUCKET:${bucket} -N
s3-${bucket}-prefix-layout-objectdelete s3/objectdelete.robot
+execute_robot_test scm -v BUCKET:${bucket} -N
s3-${bucket}-prefix-layout-objectcopy s3/objectcopy.robot
+execute_robot_test scm -v BUCKET:${bucket} -N
s3-${bucket}-prefix-layout-objectmultidelete s3/objectmultidelete.robot
+execute_robot_test scm -v BUCKET:${bucket} -N
s3-${bucket}-prefix-layout-MultipartUpload s3/MultipartUpload.robot
+
stop_docker_env
generate_report
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadAbortRequest.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadAbortRequest.java
index 5b4bdfc..7241fbc 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadAbortRequest.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadAbortRequest.java
@@ -126,9 +126,17 @@ public class S3MultipartUploadAbortRequest extends
OMKeyRequest {
multipartKey = omMetadataManager.getMultipartKey(
volumeName, bucketName, keyName, keyArgs.getMultipartUploadID());
- String multipartOpenKey =
- getMultipartOpenKey(keyArgs.getMultipartUploadID(), volumeName,
- bucketName, keyName, omMetadataManager);
+ String multipartOpenKey;
+ try {
+ multipartOpenKey =
+ getMultipartOpenKey(keyArgs.getMultipartUploadID(), volumeName,
+ bucketName, keyName, omMetadataManager);
+ } catch (OMException ome) {
+ throw new OMException(
+ "Abort Multipart Upload Failed: volume: " + requestedVolume
+ + ", bucket: " + requestedBucket + ", key: " + keyName, ome,
+ OMException.ResultCodes.NO_SUCH_MULTIPART_UPLOAD_ERROR);
+ }
OmKeyInfo omKeyInfo =
omMetadataManager.getOpenKeyTable().get(multipartOpenKey);
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java
index 623ddad..f44afe4 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java
@@ -438,6 +438,11 @@ public class ObjectEndpoint extends EndpointBase {
} else if (ex.getResult() == ResultCodes.KEY_NOT_FOUND) {
//NOT_FOUND is not a problem, AWS doesn't throw exception for missing
// keys. Just return 204
+ } else if (ex.getResult() == ResultCodes.DIRECTORY_NOT_EMPTY) {
+ // With PREFIX metadata layout, a dir deletion without recursive flag
+ // to true will throw DIRECTORY_NOT_EMPTY error for a non-empty dir.
+ // NOT_FOUND is not a problem, AWS doesn't throw exception for missing
+ // keys. Just return 204
} else if (ex.getResult() == ResultCodes.PERMISSION_DENIED) {
throw S3ErrorTable.newError(S3ErrorTable.ACCESS_DENIED, keyPath);
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]