You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by ar...@apache.org on 2019/10/22 02:37:54 UTC

[hadoop-ozone] branch master updated: HDDS-2343. Add immutable entries in to the DoubleBuffer for Bucket requests. (#69)

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

arp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 599b0d9  HDDS-2343. Add immutable entries in to the DoubleBuffer for Bucket requests. (#69)
599b0d9 is described below

commit 599b0d9158524eb40e874b82547dda9e1c102b2e
Author: Bharat Viswanadham <bh...@apache.org>
AuthorDate: Mon Oct 21 19:37:43 2019 -0700

    HDDS-2343. Add immutable entries in to the DoubleBuffer for Bucket requests. (#69)
---
 .../hadoop/ozone/om/helpers/OmBucketInfo.java      | 25 +++++++++++++++++++++-
 .../om/request/bucket/OMBucketCreateRequest.java   |  3 ++-
 .../request/bucket/OMBucketSetPropertyRequest.java |  5 +++--
 .../om/request/bucket/acl/OMBucketAclRequest.java  |  3 ++-
 4 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
index eb10802..090b4ce 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
@@ -39,7 +39,8 @@ import com.google.common.base.Preconditions;
 /**
  * A class that encapsulates Bucket Info.
  */
-public final class OmBucketInfo extends WithMetadata implements Auditable {
+public final class OmBucketInfo extends WithMetadata implements Auditable,
+    Cloneable {
   /**
    * Name of the volume in which the bucket belongs to.
    */
@@ -214,6 +215,28 @@ public final class OmBucketInfo extends WithMetadata implements Auditable {
     return auditMap;
   }
 
+  @Override
+  public Object clone() {
+    OmBucketInfo.Builder builder = new OmBucketInfo.Builder()
+        .setVolumeName(volumeName)
+        .setBucketName(bucketName)
+        .setAcls(acls.stream().map(acl -> new OzoneAcl(acl.getType(),
+            acl.getName(), acl.getAclBitSet(), acl.getAclScope()))
+            .collect(Collectors.toList()))
+        .setStorageType(storageType)
+        .setIsVersionEnabled(isVersionEnabled)
+        .setCreationTime(creationTime)
+        .setBucketEncryptionKey(bekInfo != null ?
+            new BucketEncryptionKeyInfo(bekInfo.getVersion(),
+                bekInfo.getSuite(), bekInfo.getKeyName()) : null);
+
+    if (metadata != null) {
+      metadata.forEach((k, v) -> builder.addMetadata(k, v));
+    }
+    return builder.build();
+
+  }
+
   /**
    * Builder for OmBucketInfo.
    */
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketCreateRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketCreateRequest.java
index 33a6310..8ab8d7d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketCreateRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketCreateRequest.java
@@ -178,7 +178,8 @@ public class OMBucketCreateRequest extends OMClientRequest {
 
       omResponse.setCreateBucketResponse(
           CreateBucketResponse.newBuilder().build());
-      omClientResponse = new OMBucketCreateResponse(omBucketInfo,
+      omClientResponse =
+          new OMBucketCreateResponse((OmBucketInfo) omBucketInfo.clone(),
           omResponse.build());
     } catch (IOException ex) {
       exception = ex;
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 6c5f5fa..7351428 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
@@ -168,8 +168,9 @@ public class OMBucketSetPropertyRequest extends OMClientRequest {
 
       omResponse.setSetBucketPropertyResponse(
           SetBucketPropertyResponse.newBuilder().build());
-      omClientResponse = new OMBucketSetPropertyResponse(omBucketInfo,
-        omResponse.build());
+      omClientResponse =
+          new OMBucketSetPropertyResponse((OmBucketInfo) omBucketInfo.clone(),
+              omResponse.build());
     } catch (IOException ex) {
       exception = ex;
       omClientResponse = new OMBucketSetPropertyResponse(omBucketInfo,
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/acl/OMBucketAclRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/acl/OMBucketAclRequest.java
index 87ad600..b6eb70d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/acl/OMBucketAclRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/acl/OMBucketAclRequest.java
@@ -109,7 +109,8 @@ public abstract class OMBucketAclRequest extends OMClientRequest {
             new CacheValue<>(Optional.of(omBucketInfo), transactionLogIndex));
       }
 
-      omClientResponse = onSuccess(omResponse, omBucketInfo, operationResult);
+      omClientResponse = onSuccess(omResponse,
+          (OmBucketInfo) omBucketInfo.clone(), operationResult);
 
     } catch (IOException ex) {
       exception = ex;


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