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 <bha...@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-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-commits-h...@hadoop.apache.org