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]

Reply via email to