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

sumitagrawal 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 9a8158e9be HDDS-9110. Bucket owner is getting unset on setting quota 
on that bucket (#5138)
9a8158e9be is described below

commit 9a8158e9be9a4aebcd861730306686b6e12b644c
Author: Sumit Agrawal <[email protected]>
AuthorDate: Wed Aug 2 22:52:57 2023 +0530

    HDDS-9110. Bucket owner is getting unset on setting quota on that bucket 
(#5138)
---
 .../request/bucket/OMBucketSetPropertyRequest.java | 44 ++--------------------
 .../bucket/TestOMBucketSetPropertyRequest.java     | 13 ++++---
 2 files changed, 12 insertions(+), 45 deletions(-)

diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
index 912289f843..dbbd6c7ee4 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
@@ -146,15 +146,12 @@ public class OMBucketSetPropertyRequest extends 
OMClientRequest {
             OMException.ResultCodes.NOT_SUPPORTED_OPERATION);
       }
 
-      OmBucketInfo.Builder bucketInfoBuilder = OmBucketInfo.newBuilder();
-      bucketInfoBuilder.setVolumeName(dbBucketInfo.getVolumeName())
-          .setBucketName(dbBucketInfo.getBucketName())
-          .setObjectID(dbBucketInfo.getObjectID())
-          .setBucketLayout(dbBucketInfo.getBucketLayout())
-          .setBucketEncryptionKey(dbBucketInfo.getEncryptionKeyInfo())
-          .setUpdateID(transactionLogIndex);
+      OmBucketInfo.Builder bucketInfoBuilder = dbBucketInfo.toBuilder();
+      bucketInfoBuilder.setUpdateID(transactionLogIndex);
       bucketInfoBuilder.addAllMetadata(KeyValueUtil
           .getFromProtobuf(bucketArgs.getMetadataList()));
+      bucketInfoBuilder.setModificationTime(
+          setBucketPropertyRequest.getModificationTime());
 
       //Check StorageType to update
       StorageType storageType = omBucketArgs.getStorageType();
@@ -162,8 +159,6 @@ public class OMBucketSetPropertyRequest extends 
OMClientRequest {
         bucketInfoBuilder.setStorageType(storageType);
         LOG.debug("Updating bucket storage type for bucket: {} in volume: {}",
             bucketName, volumeName);
-      } else {
-        bucketInfoBuilder.setStorageType(dbBucketInfo.getStorageType());
       }
 
       //Check Versioning to update
@@ -172,9 +167,6 @@ public class OMBucketSetPropertyRequest extends 
OMClientRequest {
         bucketInfoBuilder.setIsVersionEnabled(versioning);
         LOG.debug("Updating bucket versioning for bucket: {} in volume: {}",
             bucketName, volumeName);
-      } else {
-        bucketInfoBuilder
-            .setIsVersionEnabled(dbBucketInfo.getIsVersionEnabled());
       }
 
       //Check quotaInBytes and quotaInNamespace to update
@@ -184,15 +176,10 @@ public class OMBucketSetPropertyRequest extends 
OMClientRequest {
       if (checkQuotaBytesValid(omMetadataManager, omVolumeArgs, omBucketArgs,
           dbBucketInfo)) {
         bucketInfoBuilder.setQuotaInBytes(omBucketArgs.getQuotaInBytes());
-      } else {
-        bucketInfoBuilder.setQuotaInBytes(dbBucketInfo.getQuotaInBytes());
       }
       if (checkQuotaNamespaceValid(omVolumeArgs, omBucketArgs, dbBucketInfo)) {
         bucketInfoBuilder.setQuotaInNamespace(
             omBucketArgs.getQuotaInNamespace());
-      } else {
-        bucketInfoBuilder.setQuotaInNamespace(
-            dbBucketInfo.getQuotaInNamespace());
       }
 
       DefaultReplicationConfig defaultReplicationConfig =
@@ -200,31 +187,8 @@ public class OMBucketSetPropertyRequest extends 
OMClientRequest {
       if (defaultReplicationConfig != null) {
         // Resetting the default replication config.
         
bucketInfoBuilder.setDefaultReplicationConfig(defaultReplicationConfig);
-      } else if (dbBucketInfo.getDefaultReplicationConfig() != null) {
-        // Retaining existing default replication config
-        bucketInfoBuilder.setDefaultReplicationConfig(
-                  dbBucketInfo.getDefaultReplicationConfig());
-      }
-
-      bucketInfoBuilder.setCreationTime(dbBucketInfo.getCreationTime());
-      bucketInfoBuilder.setModificationTime(
-          setBucketPropertyRequest.getModificationTime());
-      // Set acls from dbBucketInfo if it has any.
-      if (dbBucketInfo.getAcls() != null) {
-        bucketInfoBuilder.setAcls(dbBucketInfo.getAcls());
-      }
-
-      // Set the objectID to dbBucketInfo objectID, if present
-      if (dbBucketInfo.getObjectID() != 0) {
-        bucketInfoBuilder.setObjectID(dbBucketInfo.getObjectID());
       }
 
-      // Set the updateID to current transaction log index
-      bucketInfoBuilder.setUpdateID(transactionLogIndex);
-      // Quota used remains unchanged
-      bucketInfoBuilder.setUsedBytes(dbBucketInfo.getUsedBytes());
-      bucketInfoBuilder.setUsedNamespace(dbBucketInfo.getUsedNamespace());
-
       omBucketInfo = bucketInfoBuilder.build();
 
       // Update table cache.
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
index a96b92a7b4..6e5544b621 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
@@ -341,15 +341,16 @@ public class TestOMBucketSetPropertyRequest extends 
TestBucketRequest {
   }
 
   @Test
-  public void testSettingQuotaWithEncryption() throws Exception {
+  public void testSettingQuotaWithEncryptionAndOwner() throws Exception {
     String volumeName = UUID.randomUUID().toString();
     String bucketName = UUID.randomUUID().toString();
 
     OmBucketInfo.Builder bucketInfo = new OmBucketInfo.Builder()
-            .setVolumeName(volumeName)
-            .setBucketName(bucketName)
-            .setBucketEncryptionKey(new BucketEncryptionKeyInfo.Builder()
-                    .setKeyName(TEST_KEY).build());
+        .setVolumeName(volumeName)
+        .setBucketName(bucketName)
+        .setOwner("testUser")
+        .setBucketEncryptionKey(new BucketEncryptionKeyInfo.Builder()
+            .setKeyName(TEST_KEY).build());
 
     OMRequestTestUtils.addVolumeToDB(
             volumeName, omMetadataManager);
@@ -378,6 +379,8 @@ public class TestOMBucketSetPropertyRequest extends 
TestBucketRequest {
             dbBucketInfo.getQuotaInBytes());
     Assert.assertEquals(1000L,
             dbBucketInfo.getQuotaInNamespace());
+    Assert.assertEquals("testUser",
+        dbBucketInfo.getOwner());
   }
 
   @Test


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

Reply via email to