You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ae...@apache.org on 2019/02/15 05:22:21 UTC

[hadoop] branch trunk updated: HDDS-1108. Check s3bucket exists or not before MPU operations. Contributed by Bharat Viswanadham.

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

aengineer pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2d83b24  HDDS-1108. Check s3bucket exists or not before MPU operations. Contributed by Bharat Viswanadham.
2d83b24 is described below

commit 2d83b249941c2c95d3adfef54b155330b11a12c9
Author: Anu Engineer <ae...@apache.org>
AuthorDate: Thu Feb 14 18:10:18 2019 -0800

    HDDS-1108. Check s3bucket exists or not before MPU operations.
    Contributed by Bharat Viswanadham.
---
 .../org/apache/hadoop/ozone/om/KeyManagerImpl.java | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
index 087fec4..3fa46f9 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java
@@ -171,6 +171,24 @@ public class KeyManagerImpl implements KeyManager {
     }
   }
 
+  /**
+   * Check S3 bucket exists or not.
+   * @param volumeName
+   * @param bucketName
+   * @throws IOException
+   */
+  private void validateS3Bucket(String volumeName, String bucketName)
+      throws IOException {
+
+    String bucketKey = metadataManager.getBucketKey(volumeName, bucketName);
+    //Check if bucket already exists
+    if (metadataManager.getBucketTable().get(bucketKey) == null) {
+      LOG.error("bucket not found: {}/{} ", volumeName, bucketName);
+      throw new OMException("Bucket not found",
+          OMException.ResultCodes.FAILED_BUCKET_NOT_FOUND);
+    }
+  }
+
   @Override
   public OmKeyLocationInfo allocateBlock(OmKeyArgs args, long clientID)
       throws IOException {
@@ -663,6 +681,7 @@ public class KeyManagerImpl implements KeyManager {
     String keyName = omKeyArgs.getKeyName();
 
     metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
+    validateS3Bucket(volumeName, bucketName);
     try {
       long time = Time.monotonicNowNanos();
       String uploadID = UUID.randomUUID().toString() + "-" + Long.toString(
@@ -735,6 +754,7 @@ public class KeyManagerImpl implements KeyManager {
     int partNumber = omKeyArgs.getMultipartUploadPartNumber();
 
     metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
+    validateS3Bucket(volumeName, bucketName);
     String partName;
     try {
       String multipartKey = metadataManager.getMultipartKey(volumeName,
@@ -822,6 +842,7 @@ public class KeyManagerImpl implements KeyManager {
     String keyName = omKeyArgs.getKeyName();
     String uploadID = omKeyArgs.getMultipartUploadID();
     metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
+    validateS3Bucket(volumeName, bucketName);
     try {
       String multipartKey = metadataManager.getMultipartKey(volumeName,
           bucketName, keyName, uploadID);
@@ -973,6 +994,7 @@ public class KeyManagerImpl implements KeyManager {
     String keyName = omKeyArgs.getKeyName();
     String uploadID = omKeyArgs.getMultipartUploadID();
     Preconditions.checkNotNull(uploadID, "uploadID cannot be null");
+    validateS3Bucket(volumeName, bucketName);
     metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
 
     try {


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org