You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by um...@apache.org on 2021/06/04 15:48:13 UTC
[ozone] branch master updated: HDDS-5168. Use ReplicationConfig in
OmKeyArgs (#2287). Contributed by elek.
This is an automated email from the ASF dual-hosted git repository.
umamahesh 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 405925f HDDS-5168. Use ReplicationConfig in OmKeyArgs (#2287). Contributed by elek.
405925f is described below
commit 405925f7ee278117aa5dbdf09916d93899450ef7
Author: Elek, Márton <el...@users.noreply.github.com>
AuthorDate: Fri Jun 4 17:47:45 2021 +0200
HDDS-5168. Use ReplicationConfig in OmKeyArgs (#2287). Contributed by elek.
---
.../java/org/apache/hadoop/ozone/OzoneConsts.java | 1 +
.../org/apache/hadoop/ozone/client/OzoneKey.java | 41 +++++++----
.../hadoop/ozone/client/OzoneKeyDetails.java | 20 ++++++
.../hadoop/ozone/client/OzoneMultipartUpload.java | 34 +++++++--
.../client/OzoneMultipartUploadPartListParts.java | 34 ++++++---
.../client/io/BlockOutputStreamEntryPool.java | 7 +-
.../hadoop/ozone/client/io/KeyOutputStream.java | 30 ++++----
.../apache/hadoop/ozone/client/rpc/RpcClient.java | 34 ++++-----
.../apache/hadoop/ozone/om/helpers/OmKeyArgs.java | 46 +++++-------
.../apache/hadoop/ozone/om/helpers/OmKeyInfo.java | 50 +++++--------
.../ozone/om/helpers/OmMultipartKeyInfo.java | 53 ++++++--------
.../hadoop/ozone/om/helpers/OmMultipartUpload.java | 32 +++------
.../om/helpers/OmMultipartUploadListParts.java | 25 ++-----
...OzoneManagerProtocolClientSideTranslatorPB.java | 71 +++++++++++--------
.../hadoop/ozone/om/helpers/TestOmKeyInfo.java | 10 +--
.../ozone/om/helpers/TestOmMultipartKeyInfo.java | 5 +-
.../hadoop/fs/ozone/TestOzoneFileSystem.java | 3 +
.../apache/hadoop/ozone/client/rpc/TestBCSID.java | 7 +-
.../rpc/TestCloseContainerHandlingByClient.java | 39 +++++++----
.../client/rpc/TestDeleteWithSlowFollower.java | 8 +--
.../client/rpc/TestFailureHandlingByClient.java | 28 +++++---
.../rpc/TestFailureHandlingByClientFlushDelay.java | 7 +-
.../rpc/TestMultiBlockWritesWithDnFailures.java | 13 ++--
.../ozone/client/rpc/read/TestKeyInputStream.java | 6 +-
.../ozone/container/TestContainerReplication.java | 6 +-
.../commandhandler/TestBlockDeletion.java | 9 +--
.../TestCloseContainerByPipeline.java | 21 +++---
.../commandhandler/TestCloseContainerHandler.java | 7 +-
.../commandhandler/TestDeleteContainerHandler.java | 6 +-
.../hadoop/ozone/container/package-info.java | 22 ++++++
.../ozone/om/TestContainerReportWithKeys.java | 6 +-
.../apache/hadoop/ozone/om/TestKeyManagerImpl.java | 31 +++++----
.../hadoop/ozone/om/TestOmBlockVersioning.java | 4 ++
.../ozone/recon/TestReconWithOzoneManager.java | 5 +-
.../ozone/scm/TestStorageContainerManagerHA.java | 7 +-
.../hadoop/ozone/om/codec/TestOmKeyInfoCodec.java | 5 +-
.../om/codec/TestOmMultipartKeyInfoCodec.java | 5 +-
.../ozone/om/codec/TestRepeatedOmKeyInfoCodec.java | 5 +-
.../org/apache/hadoop/ozone/om/KeyManagerImpl.java | 81 +++++++++-------------
.../hadoop/ozone/om/TrashOzoneFileSystem.java | 2 +-
.../om/request/file/OMDirectoryCreateRequest.java | 6 +-
.../ozone/om/request/file/OMFileCreateRequest.java | 2 +-
.../om/request/key/OMAllocateBlockRequest.java | 2 +-
.../ozone/om/request/key/OMKeyCommitRequest.java | 2 +-
.../ozone/om/request/key/OMKeyCreateRequest.java | 2 +-
.../hadoop/ozone/om/request/key/OMKeyRequest.java | 27 ++++----
.../S3InitiateMultipartUploadRequest.java | 12 ++--
.../multipart/S3MultipartUploadAbortRequest.java | 2 +-
.../S3MultipartUploadCommitPartRequest.java | 2 +-
.../S3MultipartUploadCompleteRequest.java | 4 +-
.../protocolPB/OzoneManagerRequestHandler.java | 16 +++--
.../hadoop/ozone/om/TestBucketManagerImpl.java | 10 +--
.../hadoop/ozone/om/TestKeyDeletingService.java | 4 ++
.../apache/hadoop/ozone/om/TestKeyManagerUnit.java | 19 +++--
.../apache/hadoop/ozone/om/TestTrashService.java | 4 ++
.../ozone/om/request/TestOMRequestUtils.java | 8 +--
.../s3/multipart/TestS3MultipartResponse.java | 9 +--
.../security/acl/TestOzoneNativeAuthorizer.java | 5 +-
.../hadoop/ozone/security/acl/TestVolumeOwner.java | 8 ++-
.../fs/ozone/BasicOzoneClientAdapterImpl.java | 3 +-
.../ozone/BasicRootedOzoneClientAdapterImpl.java | 3 +-
.../ozone/recon/OMMetadataManagerTestUtils.java | 7 +-
.../recovery/TestReconOmMetadataManagerImpl.java | 9 +--
.../recon/tasks/TestContainerKeyMapperTask.java | 5 +-
.../ozone/recon/tasks/TestOMDBUpdatesHandler.java | 5 +-
.../apache/hadoop/ozone/freon/OmKeyGenerator.java | 5 +-
.../freon/containergenerator/GeneratorOm.java | 11 ++-
.../ozone/genesis/BenchMarkOMKeyAllocation.java | 6 +-
.../ozone/genesis/BenchMarkOzoneManager.java | 13 ++--
69 files changed, 562 insertions(+), 475 deletions(-)
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java
index 47bafe0..953d02e 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java
@@ -316,6 +316,7 @@ public final class OzoneConsts {
public static final String DATA_SIZE = "dataSize";
public static final String REPLICATION_TYPE = "replicationType";
public static final String REPLICATION_FACTOR = "replicationFactor";
+ public static final String REPLICATION_CONFIG = "replicationConfig";
public static final String KEY_LOCATION_INFO = "keyLocationInfo";
public static final String MULTIPART_LIST = "multipartList";
public static final String UPLOAD_ID = "uploadID";
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKey.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKey.java
index c04055a..7be377c 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKey.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKey.java
@@ -18,6 +18,8 @@
package org.apache.hadoop.ozone.client;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
import java.time.Instant;
@@ -52,15 +54,14 @@ public class OzoneKey {
*/
private Instant modificationTime;
- private ReplicationType replicationType;
-
- private int replicationFactor;
+ private ReplicationConfig replicationConfig;
/**
* Constructs OzoneKey from OmKeyInfo.
*
*/
@SuppressWarnings("parameternumber")
+ @Deprecated
public OzoneKey(String volumeName, String bucketName,
String keyName, long size, long creationTime,
long modificationTime, ReplicationType type,
@@ -71,8 +72,25 @@ public class OzoneKey {
this.dataSize = size;
this.creationTime = Instant.ofEpochMilli(creationTime);
this.modificationTime = Instant.ofEpochMilli(modificationTime);
- this.replicationType = type;
- this.replicationFactor = replicationFactor;
+ this.replicationConfig = ReplicationConfig.fromTypeAndFactor(type,
+ ReplicationFactor.valueOf(replicationFactor));
+ }
+
+ /**
+ * Constructs OzoneKey from OmKeyInfo.
+ *
+ */
+ @SuppressWarnings("parameternumber")
+ public OzoneKey(String volumeName, String bucketName,
+ String keyName, long size, long creationTime,
+ long modificationTime, ReplicationConfig replicationConfig) {
+ this.volumeName = volumeName;
+ this.bucketName = bucketName;
+ this.name = keyName;
+ this.dataSize = size;
+ this.creationTime = Instant.ofEpochMilli(creationTime);
+ this.modificationTime = Instant.ofEpochMilli(modificationTime);
+ this.replicationConfig = replicationConfig;
}
/**
@@ -134,17 +152,16 @@ public class OzoneKey {
*
* @return replicationType
*/
+
+ @Deprecated
public ReplicationType getReplicationType() {
- return replicationType;
+ return ReplicationType
+ .fromProto(replicationConfig.getReplicationType());
}
- /**
- * Returns the replication factor of the key.
- *
- * @return replicationFactor
- */
+ @Deprecated
public int getReplicationFactor() {
- return replicationFactor;
+ return replicationConfig.getRequiredNodes();
}
}
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyDetails.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyDetails.java
index a57b663..7dc8008 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyDetails.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyDetails.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.client;
import org.apache.hadoop.fs.FileEncryptionInfo;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
import java.util.List;
@@ -42,6 +43,7 @@ public class OzoneKeyDetails extends OzoneKey {
* Constructs OzoneKeyDetails from OmKeyInfo.
*/
@SuppressWarnings("parameternumber")
+ @Deprecated
public OzoneKeyDetails(String volumeName, String bucketName, String keyName,
long size, long creationTime, long modificationTime,
List<OzoneKeyLocation> ozoneKeyLocations,
@@ -54,6 +56,24 @@ public class OzoneKeyDetails extends OzoneKey {
this.feInfo = feInfo;
}
+
+ /**
+ * Constructs OzoneKeyDetails from OmKeyInfo.
+ */
+ @SuppressWarnings("parameternumber")
+ public OzoneKeyDetails(String volumeName, String bucketName, String keyName,
+ long size, long creationTime, long modificationTime,
+ List<OzoneKeyLocation> ozoneKeyLocations,
+ ReplicationConfig replicationConfig,
+ Map<String, String> metadata,
+ FileEncryptionInfo feInfo) {
+ super(volumeName, bucketName, keyName, size, creationTime,
+ modificationTime, replicationConfig);
+ this.ozoneKeyLocations = ozoneKeyLocations;
+ this.metadata = metadata;
+ this.feInfo = feInfo;
+ }
+
/**
* Returns the location detail information of the specific Key.
*/
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUpload.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUpload.java
index 6eb76c4..f3a013f 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUpload.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUpload.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.ozone.client;
import java.time.Instant;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
@@ -38,10 +39,9 @@ public class OzoneMultipartUpload {
private Instant creationTime;
- private ReplicationType replicationType;
-
- private ReplicationFactor replicationFactor;
+ private ReplicationConfig replicationConfig;
+ @Deprecated
public OzoneMultipartUpload(String volumeName, String bucketName,
String keyName, String uploadId, Instant creationTime,
ReplicationType replicationType,
@@ -51,8 +51,20 @@ public class OzoneMultipartUpload {
this.keyName = keyName;
this.uploadId = uploadId;
this.creationTime = creationTime;
- this.replicationType = replicationType;
- this.replicationFactor = replicationFactor;
+ this.replicationConfig =
+ ReplicationConfig
+ .fromTypeAndFactor(replicationType, replicationFactor);
+ }
+
+ public OzoneMultipartUpload(String volumeName, String bucketName,
+ String keyName, String uploadId, Instant creationTime,
+ ReplicationConfig replicationConfig) {
+ this.volumeName = volumeName;
+ this.bucketName = bucketName;
+ this.keyName = keyName;
+ this.uploadId = uploadId;
+ this.creationTime = creationTime;
+ this.replicationConfig = replicationConfig;
}
public String getVolumeName() {
@@ -79,11 +91,19 @@ public class OzoneMultipartUpload {
this.creationTime = creationTime;
}
+ @Deprecated
public ReplicationType getReplicationType() {
- return replicationType;
+ return ReplicationType
+ .fromProto(replicationConfig.getReplicationType());
}
+ @Deprecated
public ReplicationFactor getReplicationFactor() {
- return replicationFactor;
+ return ReplicationFactor
+ .fromProto(ReplicationConfig.getLegacyFactor(replicationConfig));
+ }
+
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
}
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUploadPartListParts.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUploadPartListParts.java
index 7ce3148..c1902cd 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUploadPartListParts.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneMultipartUploadPartListParts.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.client;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
@@ -29,9 +30,7 @@ import java.util.List;
*/
public class OzoneMultipartUploadPartListParts {
- private ReplicationType replicationType;
-
- private ReplicationFactor replicationFactor;
+ private ReplicationConfig replicationConfig;
//When a list is truncated, this element specifies the last part in the list,
// as well as the value to use for the part-number-marker request parameter
@@ -44,13 +43,20 @@ public class OzoneMultipartUploadPartListParts {
private boolean truncated;
private List<PartInfo> partInfoList = new ArrayList<>();
+ @Deprecated
public OzoneMultipartUploadPartListParts(ReplicationType type,
ReplicationFactor factor,
int nextMarker, boolean truncate) {
- this.replicationType = type;
this.nextPartNumberMarker = nextMarker;
this.truncated = truncate;
- this.replicationFactor = factor;
+ this.replicationConfig = ReplicationConfig.fromTypeAndFactor(type, factor);
+ }
+
+ public OzoneMultipartUploadPartListParts(ReplicationConfig replicationConfig,
+ int nextMarker, boolean truncate) {
+ this.nextPartNumberMarker = nextMarker;
+ this.truncated = truncate;
+ this.replicationConfig = replicationConfig;
}
public void addAllParts(List<PartInfo> partInfos) {
@@ -61,10 +67,6 @@ public class OzoneMultipartUploadPartListParts {
this.partInfoList.add(partInfo);
}
- public ReplicationType getReplicationType() {
- return replicationType;
- }
-
public int getNextPartNumberMarker() {
return nextPartNumberMarker;
}
@@ -77,8 +79,20 @@ public class OzoneMultipartUploadPartListParts {
return partInfoList;
}
+ @Deprecated
+ public ReplicationType getReplicationType() {
+ return ReplicationType
+ .fromProto(replicationConfig.getReplicationType());
+ }
+
+ @Deprecated
public ReplicationFactor getReplicationFactor() {
- return replicationFactor;
+ return ReplicationFactor
+ .fromProto(ReplicationConfig.getLegacyFactor(replicationConfig));
+ }
+
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
/**
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockOutputStreamEntryPool.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockOutputStreamEntryPool.java
index ea7c3bb..e9147a8 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockOutputStreamEntryPool.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/BlockOutputStreamEntryPool.java
@@ -23,8 +23,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.ByteStringConversion;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
import org.apache.hadoop.hdds.scm.XceiverClientFactory;
@@ -68,8 +68,7 @@ public class BlockOutputStreamEntryPool {
public BlockOutputStreamEntryPool(
OzoneClientConfig config,
OzoneManagerProtocol omClient,
- String requestId, HddsProtos.ReplicationFactor factor,
- HddsProtos.ReplicationType type,
+ String requestId, ReplicationConfig replicationConfig,
String uploadID, int partNumber,
boolean isMultipart, OmKeyInfo info,
boolean unsafeByteBufferConversion,
@@ -82,7 +81,7 @@ public class BlockOutputStreamEntryPool {
this.omClient = omClient;
this.keyArgs = new OmKeyArgs.Builder().setVolumeName(info.getVolumeName())
.setBucketName(info.getBucketName()).setKeyName(info.getKeyName())
- .setType(type).setFactor(factor).setDataSize(info.getDataSize())
+ .setReplicationConfig(replicationConfig).setDataSize(info.getDataSize())
.setIsMultipartKey(isMultipart).setMultipartUploadID(uploadID)
.setMultipartUploadPartNumber(partNumber).build();
this.requestID = requestId;
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java
index dde35e3..48a27aa 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/io/KeyOutputStream.java
@@ -28,9 +28,8 @@ import java.util.stream.Collectors;
import org.apache.hadoop.fs.FSExceptionMessages;
import org.apache.hadoop.fs.FileEncryptionInfo;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
import org.apache.hadoop.hdds.scm.XceiverClientFactory;
import org.apache.hadoop.hdds.scm.client.HddsClientUtils;
@@ -132,7 +131,7 @@ public class KeyOutputStream extends OutputStream {
OpenKeySession handler,
XceiverClientFactory xceiverClientManager,
OzoneManagerProtocol omClient, int chunkSize,
- String requestId, ReplicationFactor factor, ReplicationType type,
+ String requestId, ReplicationConfig replicationConfig,
String uploadID, int partNumber, boolean isMultipart,
boolean unsafeByteBufferConversion
) {
@@ -142,7 +141,7 @@ public class KeyOutputStream extends OutputStream {
new BlockOutputStreamEntryPool(
config,
omClient,
- requestId, factor, type,
+ requestId, replicationConfig,
uploadID, partNumber,
isMultipart, info,
unsafeByteBufferConversion,
@@ -552,13 +551,12 @@ public class KeyOutputStream extends OutputStream {
private OzoneManagerProtocol omClient;
private int chunkSize;
private String requestID;
- private ReplicationType type;
- private ReplicationFactor factor;
private String multipartUploadID;
private int multipartNumber;
private boolean isMultipartKey;
private boolean unsafeByteBufferConversion;
private OzoneClientConfig clientConfig;
+ private ReplicationConfig replicationConfig;
public Builder setMultipartUploadID(String uploadID) {
this.multipartUploadID = uploadID;
@@ -595,16 +593,6 @@ public class KeyOutputStream extends OutputStream {
return this;
}
- public Builder setType(ReplicationType replicationType) {
- this.type = replicationType;
- return this;
- }
-
- public Builder setFactor(ReplicationFactor replicationFactor) {
- this.factor = replicationFactor;
- return this;
- }
-
public Builder setIsMultipartKey(boolean isMultipart) {
this.isMultipartKey = isMultipart;
return this;
@@ -620,6 +608,12 @@ public class KeyOutputStream extends OutputStream {
return this;
}
+
+ public Builder setReplicationConfig(ReplicationConfig replConfig) {
+ this.replicationConfig = replConfig;
+ return this;
+ }
+
public KeyOutputStream build() {
return new KeyOutputStream(
clientConfig,
@@ -628,13 +622,13 @@ public class KeyOutputStream extends OutputStream {
omClient,
chunkSize,
requestID,
- factor,
- type,
+ replicationConfig,
multipartUploadID,
multipartNumber,
isMultipartKey,
unsafeByteBufferConversion);
}
+
}
/**
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
index 0d6f3c8..904c552 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
@@ -771,9 +771,7 @@ public class RpcClient implements ClientProtocol {
.setBucketName(bucketName)
.setKeyName(keyName)
.setDataSize(size)
- .setType(HddsProtos.ReplicationType
- .valueOf(replicationConfig.getReplicationType().toString()))
- .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
+ .setReplicationConfig(replicationConfig)
.addAllMetadata(metadata)
.setAcls(getAclList());
@@ -894,8 +892,7 @@ public class RpcClient implements ClientProtocol {
key.getDataSize(),
key.getCreationTime(),
key.getModificationTime(),
- ReplicationType.valueOf(key.getType().toString()),
- key.getFactor().getNumber()))
+ key.getReplicationConfig()))
.collect(Collectors.toList());
}
@@ -946,9 +943,9 @@ public class RpcClient implements ClientProtocol {
}
return new OzoneKeyDetails(keyInfo.getVolumeName(), keyInfo.getBucketName(),
keyInfo.getKeyName(), keyInfo.getDataSize(), keyInfo.getCreationTime(),
- keyInfo.getModificationTime(), ozoneKeyLocations, ReplicationType
- .valueOf(keyInfo.getType().toString()), keyInfo.getMetadata(),
- keyInfo.getFileEncryptionInfo(), keyInfo.getFactor().getNumber());
+ keyInfo.getModificationTime(), ozoneKeyLocations,
+ keyInfo.getReplicationConfig(), keyInfo.getMetadata(),
+ keyInfo.getFileEncryptionInfo());
}
@Override
@@ -979,8 +976,7 @@ public class RpcClient implements ClientProtocol {
.setVolumeName(volumeName)
.setBucketName(bucketName)
.setKeyName(keyName)
- .setType(replicationConfig.getReplicationType())
- .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
+ .setReplicationConfig(replicationConfig)
.setAcls(getAclList())
.build();
OmMultipartInfo multipartInfo = ozoneManagerClient
@@ -1025,8 +1021,7 @@ public class RpcClient implements ClientProtocol {
.setXceiverClientManager(xceiverClientManager)
.setOmClient(ozoneManagerClient)
.setRequestID(requestId)
- .setType(openKey.getKeyInfo().getType())
- .setFactor(openKey.getKeyInfo().getFactor())
+ .setReplicationConfig(openKey.getKeyInfo().getReplicationConfig())
.setMultipartNumber(partNumber)
.setMultipartUploadID(uploadID)
.setIsMultipartKey(true)
@@ -1109,10 +1104,8 @@ public class RpcClient implements ClientProtocol {
uploadID, partNumberMarker, maxParts);
OzoneMultipartUploadPartListParts ozoneMultipartUploadPartListParts =
- new OzoneMultipartUploadPartListParts(ReplicationType
- .fromProto(omMultipartUploadListParts.getReplicationType()),
- ReplicationFactor
- .fromProto(omMultipartUploadListParts.getReplicationFactor()),
+ new OzoneMultipartUploadPartListParts(
+ omMultipartUploadListParts.getReplicationConfig(),
omMultipartUploadListParts.getNextPartNumberMarker(),
omMultipartUploadListParts.isTruncated());
@@ -1139,8 +1132,7 @@ public class RpcClient implements ClientProtocol {
upload.getKeyName(),
upload.getUploadId(),
upload.getCreationTime(),
- ReplicationType.fromProto(upload.getReplicationType()),
- ReplicationFactor.fromProto(upload.getReplicationFactor())))
+ upload.getReplicationConfig()))
.collect(Collectors.toList());
OzoneMultipartUploadList result = new OzoneMultipartUploadList(uploads);
return result;
@@ -1228,8 +1220,7 @@ public class RpcClient implements ClientProtocol {
.setBucketName(bucketName)
.setKeyName(keyName)
.setDataSize(size)
- .setType(replicationConfig.getReplicationType())
- .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
+ .setReplicationConfig(replicationConfig)
.setAcls(getAclList())
.build();
OpenKeySession keySession =
@@ -1369,8 +1360,7 @@ public class RpcClient implements ClientProtocol {
.setXceiverClientManager(xceiverClientManager)
.setOmClient(ozoneManagerClient)
.setRequestID(requestId)
- .setType(replicationConfig.getReplicationType())
- .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
+ .setReplicationConfig(replicationConfig)
.enableUnsafeByteBufferConversion(unsafeByteBufferConversion)
.setConfig(clientConfig)
.build();
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
index c08c988..dff74e3 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
@@ -17,8 +17,7 @@
*/
package org.apache.hadoop.ozone.om.helpers;
import com.google.common.annotations.VisibleForTesting;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.Auditable;
@@ -38,8 +37,7 @@ public final class OmKeyArgs implements Auditable {
private final String bucketName;
private final String keyName;
private long dataSize;
- private final ReplicationType type;
- private final ReplicationFactor factor;
+ private final ReplicationConfig replicationConfig;
private List<OmKeyLocationInfo> locationInfoList;
private final boolean isMultipartKey;
private final String multipartUploadID;
@@ -51,7 +49,7 @@ public final class OmKeyArgs implements Auditable {
@SuppressWarnings("parameternumber")
private OmKeyArgs(String volumeName, String bucketName, String keyName,
- long dataSize, ReplicationType type, ReplicationFactor factor,
+ long dataSize, ReplicationConfig replicationConfig,
List<OmKeyLocationInfo> locationInfoList, boolean isMultipart,
String uploadID, int partNumber,
Map<String, String> metadataMap, boolean refreshPipeline,
@@ -60,8 +58,7 @@ public final class OmKeyArgs implements Auditable {
this.bucketName = bucketName;
this.keyName = keyName;
this.dataSize = dataSize;
- this.type = type;
- this.factor = factor;
+ this.replicationConfig = replicationConfig;
this.locationInfoList = locationInfoList;
this.isMultipartKey = isMultipart;
this.multipartUploadID = uploadID;
@@ -84,12 +81,8 @@ public final class OmKeyArgs implements Auditable {
return multipartUploadPartNumber;
}
- public ReplicationType getType() {
- return type;
- }
-
- public ReplicationFactor getFactor() {
- return factor;
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
public List<OzoneAcl> getAcls() {
@@ -147,10 +140,9 @@ public final class OmKeyArgs implements Auditable {
auditMap.put(OzoneConsts.BUCKET, this.bucketName);
auditMap.put(OzoneConsts.KEY, this.keyName);
auditMap.put(OzoneConsts.DATA_SIZE, String.valueOf(this.dataSize));
- auditMap.put(OzoneConsts.REPLICATION_TYPE,
- (this.type != null) ? this.type.name() : null);
- auditMap.put(OzoneConsts.REPLICATION_FACTOR,
- (this.factor != null) ? this.factor.name() : null);
+ auditMap.put(OzoneConsts.REPLICATION_CONFIG,
+ (this.replicationConfig != null) ?
+ this.replicationConfig.toString() : null);
return auditMap;
}
@@ -168,8 +160,7 @@ public final class OmKeyArgs implements Auditable {
.setBucketName(bucketName)
.setKeyName(keyName)
.setDataSize(dataSize)
- .setType(type)
- .setFactor(factor)
+ .setReplicationConfig(replicationConfig)
.setLocationInfoList(locationInfoList)
.setIsMultipartKey(isMultipartKey)
.setMultipartUploadID(multipartUploadID)
@@ -188,8 +179,7 @@ public final class OmKeyArgs implements Auditable {
private String bucketName;
private String keyName;
private long dataSize;
- private ReplicationType type;
- private ReplicationFactor factor;
+ private ReplicationConfig replicationConfig;
private List<OmKeyLocationInfo> locationInfoList;
private boolean isMultipartKey;
private String multipartUploadID;
@@ -219,13 +209,8 @@ public final class OmKeyArgs implements Auditable {
return this;
}
- public Builder setType(ReplicationType replicationType) {
- this.type = replicationType;
- return this;
- }
-
- public Builder setFactor(ReplicationFactor replicationFactor) {
- this.factor = replicationFactor;
+ public Builder setReplicationConfig(ReplicationConfig replConfig) {
+ this.replicationConfig = replConfig;
return this;
}
@@ -275,8 +260,9 @@ public final class OmKeyArgs implements Auditable {
}
public OmKeyArgs build() {
- return new OmKeyArgs(volumeName, bucketName, keyName, dataSize, type,
- factor, locationInfoList, isMultipartKey, multipartUploadID,
+ return new OmKeyArgs(volumeName, bucketName, keyName, dataSize,
+ replicationConfig, locationInfoList, isMultipartKey,
+ multipartUploadID,
multipartUploadPartNumber, metadata, refreshPipeline, acls,
sortDatanodesInPipeline);
}
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
index 12aab5a..c47b05b 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyInfo.java
@@ -28,7 +28,7 @@ import java.util.Objects;
import org.apache.hadoop.fs.FileEncryptionInfo;
import org.apache.hadoop.hdds.client.BlockID;
import org.apache.hadoop.hdds.client.ContainerBlockID;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyInfo;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyLocationList;
@@ -54,8 +54,7 @@ public final class OmKeyInfo extends WithObjectID {
private List<OmKeyLocationInfoGroup> keyLocationVersions;
private final long creationTime;
private long modificationTime;
- private HddsProtos.ReplicationType type;
- private HddsProtos.ReplicationFactor factor;
+ private ReplicationConfig replicationConfig;
private FileEncryptionInfo encInfo;
/**
@@ -67,8 +66,7 @@ public final class OmKeyInfo extends WithObjectID {
OmKeyInfo(String volumeName, String bucketName, String keyName,
List<OmKeyLocationInfoGroup> versions, long dataSize,
long creationTime, long modificationTime,
- HddsProtos.ReplicationType type,
- HddsProtos.ReplicationFactor factor,
+ ReplicationConfig replicationConfig,
Map<String, String> metadata,
FileEncryptionInfo encInfo, List<OzoneAcl> acls,
long objectID, long updateID) {
@@ -90,8 +88,7 @@ public final class OmKeyInfo extends WithObjectID {
this.keyLocationVersions = versions;
this.creationTime = creationTime;
this.modificationTime = modificationTime;
- this.factor = factor;
- this.type = type;
+ this.replicationConfig = replicationConfig;
this.metadata = metadata;
this.encInfo = encInfo;
this.acls = acls;
@@ -107,12 +104,8 @@ public final class OmKeyInfo extends WithObjectID {
return bucketName;
}
- public HddsProtos.ReplicationType getType() {
- return type;
- }
-
- public HddsProtos.ReplicationFactor getFactor() {
- return factor;
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
public String getKeyName() {
@@ -320,8 +313,7 @@ public final class OmKeyInfo extends WithObjectID {
new ArrayList<>();
private long creationTime;
private long modificationTime;
- private HddsProtos.ReplicationType type;
- private HddsProtos.ReplicationFactor factor;
+ private ReplicationConfig replicationConfig;
private Map<String, String> metadata;
private FileEncryptionInfo encInfo;
private List<OzoneAcl> acls;
@@ -380,13 +372,8 @@ public final class OmKeyInfo extends WithObjectID {
return this;
}
- public Builder setReplicationFactor(HddsProtos.ReplicationFactor replFact) {
- this.factor = replFact;
- return this;
- }
-
- public Builder setReplicationType(HddsProtos.ReplicationType replType) {
- this.type = replType;
+ public Builder setReplicationConfig(ReplicationConfig replConfig) {
+ this.replicationConfig = replConfig;
return this;
}
@@ -432,7 +419,7 @@ public final class OmKeyInfo extends WithObjectID {
public OmKeyInfo build() {
return new OmKeyInfo(
volumeName, bucketName, keyName, omKeyLocationInfoGroups,
- dataSize, creationTime, modificationTime, type, factor, metadata,
+ dataSize, creationTime, modificationTime, replicationConfig, metadata,
encInfo, acls, objectID, updateID);
}
}
@@ -465,8 +452,8 @@ public final class OmKeyInfo extends WithObjectID {
.setBucketName(bucketName)
.setKeyName(keyName)
.setDataSize(dataSize)
- .setFactor(factor)
- .setType(type)
+ .setType(replicationConfig.getReplicationType())
+ .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
.setLatestVersion(latestVersion)
.addAllKeyLocationList(keyLocations)
.setCreationTime(creationTime)
@@ -500,8 +487,8 @@ public final class OmKeyInfo extends WithObjectID {
.setDataSize(keyInfo.getDataSize())
.setCreationTime(keyInfo.getCreationTime())
.setModificationTime(keyInfo.getModificationTime())
- .setReplicationType(keyInfo.getType())
- .setReplicationFactor(keyInfo.getFactor())
+ .setReplicationConfig(ReplicationConfig
+ .fromTypeAndFactor(keyInfo.getType(), keyInfo.getFactor()))
.addAllMetadata(KeyValueUtil.getFromProtobuf(keyInfo.getMetadataList()))
.setFileEncryptionInfo(keyInfo.hasFileEncryptionInfo() ?
OMPBHelper.convert(keyInfo.getFileEncryptionInfo()) : null)
@@ -523,8 +510,7 @@ public final class OmKeyInfo extends WithObjectID {
", key='" + keyName + '\'' +
", dataSize='" + dataSize + '\'' +
", creationTime='" + creationTime + '\'' +
- ", type='" + type + '\'' +
- ", factor='" + factor + '\'' +
+ ", replication='" + replicationConfig +
'}';
}
@@ -545,8 +531,7 @@ public final class OmKeyInfo extends WithObjectID {
keyName.equals(omKeyInfo.keyName) &&
Objects
.equals(keyLocationVersions, omKeyInfo.keyLocationVersions) &&
- type == omKeyInfo.type &&
- factor == omKeyInfo.factor &&
+ replicationConfig.equals(omKeyInfo.replicationConfig) &&
Objects.equals(metadata, omKeyInfo.metadata) &&
Objects.equals(acls, omKeyInfo.acls) &&
objectID == omKeyInfo.objectID &&
@@ -569,8 +554,7 @@ public final class OmKeyInfo extends WithObjectID {
.setCreationTime(creationTime)
.setModificationTime(modificationTime)
.setDataSize(dataSize)
- .setReplicationType(type)
- .setReplicationFactor(factor)
+ .setReplicationConfig(replicationConfig)
.setFileEncryptionInfo(encInfo)
.setObjectID(objectID).setUpdateID(updateID);
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java
index df8751c..51fd5f6 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartKeyInfo.java
@@ -16,8 +16,7 @@
*/
package org.apache.hadoop.ozone.om.helpers;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.MultipartKeyInfo;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.PartKeyInfo;
@@ -32,8 +31,7 @@ import java.util.TreeMap;
public class OmMultipartKeyInfo extends WithObjectID {
private final String uploadID;
private final long creationTime;
- private final ReplicationType replicationType;
- private final ReplicationFactor replicationFactor;
+ private final ReplicationConfig replicationConfig;
private TreeMap<Integer, PartKeyInfo> partKeyInfoList;
/**
@@ -41,12 +39,11 @@ public class OmMultipartKeyInfo extends WithObjectID {
* information for a key.
*/
public OmMultipartKeyInfo(String id, long creationTime,
- ReplicationType replicationType, ReplicationFactor replicationFactor,
+ ReplicationConfig replicationConfig,
Map<Integer, PartKeyInfo> list, long objectID, long updateID) {
this.uploadID = id;
this.creationTime = creationTime;
- this.replicationType = replicationType;
- this.replicationFactor = replicationFactor;
+ this.replicationConfig = replicationConfig;
this.partKeyInfoList = new TreeMap<>(list);
this.objectID = objectID;
this.updateID = updateID;
@@ -76,12 +73,8 @@ public class OmMultipartKeyInfo extends WithObjectID {
return partKeyInfoList.get(partNumber);
}
- public ReplicationType getReplicationType() {
- return replicationType;
- }
-
- public ReplicationFactor getReplicationFactor() {
- return replicationFactor;
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
/**
@@ -90,8 +83,7 @@ public class OmMultipartKeyInfo extends WithObjectID {
public static class Builder {
private String uploadID;
private long creationTime;
- private ReplicationType replicationType;
- private ReplicationFactor replicationFactor;
+ private ReplicationConfig replicationConfig;
private TreeMap<Integer, PartKeyInfo> partKeyInfoList;
private long objectID;
private long updateID;
@@ -110,13 +102,8 @@ public class OmMultipartKeyInfo extends WithObjectID {
return this;
}
- public Builder setReplicationType(ReplicationType replType) {
- this.replicationType = replType;
- return this;
- }
-
- public Builder setReplicationFactor(ReplicationFactor replFactor) {
- this.replicationFactor = replFactor;
+ public Builder setReplicationConfig(ReplicationConfig replConfig) {
+ this.replicationConfig = replConfig;
return this;
}
@@ -145,8 +132,8 @@ public class OmMultipartKeyInfo extends WithObjectID {
}
public OmMultipartKeyInfo build() {
- return new OmMultipartKeyInfo(uploadID, creationTime, replicationType,
- replicationFactor, partKeyInfoList, objectID, updateID);
+ return new OmMultipartKeyInfo(uploadID, creationTime, replicationConfig,
+ partKeyInfoList, objectID, updateID);
}
}
@@ -160,9 +147,15 @@ public class OmMultipartKeyInfo extends WithObjectID {
Map<Integer, PartKeyInfo> list = new HashMap<>();
multipartKeyInfo.getPartKeyInfoListList().forEach(partKeyInfo ->
list.put(partKeyInfo.getPartNumber(), partKeyInfo));
+
+ final ReplicationConfig replicationConfig = ReplicationConfig
+ .fromTypeAndFactor(
+ multipartKeyInfo.getType(),
+ multipartKeyInfo.getFactor());
+
return new OmMultipartKeyInfo(multipartKeyInfo.getUploadID(),
- multipartKeyInfo.getCreationTime(), multipartKeyInfo.getType(),
- multipartKeyInfo.getFactor(), list, multipartKeyInfo.getObjectID(),
+ multipartKeyInfo.getCreationTime(), replicationConfig,
+ list, multipartKeyInfo.getObjectID(),
multipartKeyInfo.getUpdateID());
}
@@ -174,8 +167,8 @@ public class OmMultipartKeyInfo extends WithObjectID {
MultipartKeyInfo.Builder builder = MultipartKeyInfo.newBuilder()
.setUploadID(uploadID)
.setCreationTime(creationTime)
- .setType(replicationType)
- .setFactor(replicationFactor)
+ .setType(replicationConfig.getReplicationType())
+ .setFactor(ReplicationConfig.getLegacyFactor(replicationConfig))
.setObjectID(objectID)
.setUpdateID(updateID);
partKeyInfoList.forEach((key, value) -> builder.addPartKeyInfoList(value));
@@ -204,8 +197,8 @@ public class OmMultipartKeyInfo extends WithObjectID {
public OmMultipartKeyInfo copyObject() {
// For partKeyInfoList we can do shallow copy here, as the PartKeyInfo is
// immutable here.
- return new OmMultipartKeyInfo(uploadID, creationTime, replicationType,
- replicationFactor, new TreeMap<>(partKeyInfoList), objectID, updateID);
+ return new OmMultipartKeyInfo(uploadID, creationTime, replicationConfig,
+ new TreeMap<>(partKeyInfoList), objectID, updateID);
}
}
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUpload.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUpload.java
index 9d2d2ae..9bdc90c 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUpload.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUpload.java
@@ -20,9 +20,7 @@ package org.apache.hadoop.ozone.om.helpers;
import java.time.Instant;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
@@ -41,9 +39,7 @@ public class OmMultipartUpload {
private Instant creationTime;
- private HddsProtos.ReplicationType replicationType;
-
- private HddsProtos.ReplicationFactor replicationFactor;
+ private ReplicationConfig replicationConfig;
public OmMultipartUpload(String volumeName, String bucketName,
String keyName, String uploadId) {
@@ -64,15 +60,13 @@ public class OmMultipartUpload {
public OmMultipartUpload(String volumeName, String bucketName,
String keyName, String uploadId, Instant creationTime,
- ReplicationType replicationType,
- ReplicationFactor replicationFactor) {
+ ReplicationConfig replicationConfig) {
this.volumeName = volumeName;
this.bucketName = bucketName;
this.keyName = keyName;
this.uploadId = uploadId;
this.creationTime = creationTime;
- this.replicationType = replicationType;
- this.replicationFactor = replicationFactor;
+ this.replicationConfig = replicationConfig;
}
public static OmMultipartUpload from(String key) {
@@ -129,21 +123,11 @@ public class OmMultipartUpload {
this.creationTime = creationTime;
}
- public ReplicationType getReplicationType() {
- return replicationType;
- }
-
- public void setReplicationType(
- ReplicationType replicationType) {
- this.replicationType = replicationType;
- }
-
- public ReplicationFactor getReplicationFactor() {
- return replicationFactor;
+ public void setReplicationConfig(ReplicationConfig replicationConfig) {
+ this.replicationConfig = replicationConfig;
}
- public void setReplicationFactor(
- ReplicationFactor replicationFactor) {
- this.replicationFactor = replicationFactor;
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
}
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUploadListParts.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUploadListParts.java
index ba0cd42..fbf519c 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUploadListParts.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmMultipartUploadListParts.java
@@ -18,8 +18,7 @@
package org.apache.hadoop.ozone.om.helpers;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos
.PartInfo;
@@ -31,9 +30,7 @@ import java.util.List;
*/
public class OmMultipartUploadListParts {
- private HddsProtos.ReplicationType replicationType;
-
- private HddsProtos.ReplicationFactor replicationFactor;
+ private ReplicationConfig replicationConfig;
//When a list is truncated, this element specifies the last part in the list,
// as well as the value to use for the part-number-marker request parameter
@@ -47,11 +44,9 @@ public class OmMultipartUploadListParts {
private final List<OmPartInfo> partInfoList = new ArrayList<>();
- public OmMultipartUploadListParts(HddsProtos.ReplicationType type,
- HddsProtos.ReplicationFactor factor,
+ public OmMultipartUploadListParts(ReplicationConfig replicationConfig,
int nextMarker, boolean truncate) {
- this.replicationType = type;
- this.replicationFactor = factor;
+ this.replicationConfig = replicationConfig;
this.nextPartNumberMarker = nextMarker;
this.truncated = truncate;
@@ -61,10 +56,6 @@ public class OmMultipartUploadListParts {
partInfoList.add(partInfo);
}
- public HddsProtos.ReplicationType getReplicationType() {
- return replicationType;
- }
-
public int getNextPartNumberMarker() {
return nextPartNumberMarker;
}
@@ -73,16 +64,12 @@ public class OmMultipartUploadListParts {
return truncated;
}
- public void setReplicationType(HddsProtos.ReplicationType replicationType) {
- this.replicationType = replicationType;
- }
-
public List<OmPartInfo> getPartInfoList() {
return partInfoList;
}
- public ReplicationFactor getReplicationFactor() {
- return replicationFactor;
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
public void addPartList(List<OmPartInfo> partInfos) {
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
index b3d3514..e3de0b7 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
@@ -25,6 +25,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.apache.hadoop.hdds.annotation.InterfaceAudience;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.tracing.TracingUtil;
import org.apache.hadoop.io.Text;
@@ -558,13 +559,12 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
OzoneAcl.toProtobuf(a)).collect(Collectors.toList()));
}
- if (args.getFactor() != null) {
- keyArgs.setFactor(args.getFactor());
+ if (args.getReplicationConfig() != null) {
+ keyArgs.setFactor(
+ ReplicationConfig.getLegacyFactor(args.getReplicationConfig()));
+ keyArgs.setType(args.getReplicationConfig().getReplicationType());
}
- if (args.getType() != null) {
- keyArgs.setType(args.getType());
- }
if (args.getDataSize() > 0) {
keyArgs.setDataSize(args.getDataSize());
@@ -617,12 +617,10 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
.setKeyName(args.getKeyName())
.setDataSize(args.getDataSize());
- if (args.getFactor() != null) {
- keyArgs.setFactor(args.getFactor());
- }
-
- if (args.getType() != null) {
- keyArgs.setType(args.getType());
+ if (args.getReplicationConfig() != null) {
+ keyArgs.setFactor(
+ ReplicationConfig.getLegacyFactor(args.getReplicationConfig()));
+ keyArgs.setType(args.getReplicationConfig().getReplicationType());
}
req.setKeyArgs(keyArgs);
@@ -644,20 +642,26 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
CommitKeyRequest.Builder req = CommitKeyRequest.newBuilder();
List<OmKeyLocationInfo> locationInfoList = args.getLocationInfoList();
Preconditions.checkNotNull(locationInfoList);
- KeyArgs keyArgs = KeyArgs.newBuilder()
+ KeyArgs.Builder keyArgsBuilder = KeyArgs.newBuilder()
.setVolumeName(args.getVolumeName())
.setBucketName(args.getBucketName())
.setKeyName(args.getKeyName())
.setDataSize(args.getDataSize())
- .setType(args.getType())
- .setFactor(args.getFactor())
.addAllKeyLocations(locationInfoList.stream()
// TODO use OM version?
.map(info -> info.getProtobuf(CURRENT_VERSION))
- .collect(Collectors.toList())).build();
- req.setKeyArgs(keyArgs);
+ .collect(Collectors.toList()));
+
+ if (args.getReplicationConfig() != null) {
+ keyArgsBuilder.setFactor(
+ ReplicationConfig.getLegacyFactor(args.getReplicationConfig()));
+ keyArgsBuilder.setType(args.getReplicationConfig().getReplicationType());
+ }
+
+ req.setKeyArgs(keyArgsBuilder.build());
req.setClientID(clientId);
+
OMRequest omRequest = createOMRequest(Type.CommitKey)
.setCommitKeyRequest(req)
.build();
@@ -878,10 +882,16 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
.setVolumeName(omKeyArgs.getVolumeName())
.setBucketName(omKeyArgs.getBucketName())
.setKeyName(omKeyArgs.getKeyName())
- .setFactor(omKeyArgs.getFactor())
.addAllAcls(omKeyArgs.getAcls().stream().map(a ->
- OzoneAcl.toProtobuf(a)).collect(Collectors.toList()))
- .setType(omKeyArgs.getType());
+ OzoneAcl.toProtobuf(a)).collect(Collectors.toList()));
+
+ if (omKeyArgs.getReplicationConfig() != null) {
+ keyArgs.setFactor(
+ ReplicationConfig
+ .getLegacyFactor(omKeyArgs.getReplicationConfig()));
+ keyArgs.setType(omKeyArgs.getReplicationConfig().getReplicationType());
+ }
+
multipartInfoInitiateRequest.setKeyArgs(keyArgs.build());
OMRequest omRequest = createOMRequest(
@@ -1012,7 +1022,9 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
OmMultipartUploadListParts omMultipartUploadListParts =
- new OmMultipartUploadListParts(response.getType(), response.getFactor(),
+ new OmMultipartUploadListParts(
+ ReplicationConfig.fromTypeAndFactor(response.getType(),
+ response.getFactor()),
response.getNextPartNumberMarker(), response.getIsTruncated());
omMultipartUploadListParts.addProtoPartList(response.getPartsListList());
@@ -1047,8 +1059,8 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
proto.getKeyName(),
proto.getUploadId(),
Instant.ofEpochMilli(proto.getCreationTime()),
- proto.getType(),
- proto.getFactor()
+ ReplicationConfig.fromTypeAndFactor(proto.getType(),
+ proto.getFactor())
))
.collect(Collectors.toList());
@@ -1384,18 +1396,21 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
@Override
public OpenKeySession createFile(OmKeyArgs args,
boolean overWrite, boolean recursive) throws IOException {
- KeyArgs keyArgs = KeyArgs.newBuilder()
+ KeyArgs.Builder keyArgsBuilder = KeyArgs.newBuilder()
.setVolumeName(args.getVolumeName())
.setBucketName(args.getBucketName())
.setKeyName(args.getKeyName())
.setDataSize(args.getDataSize())
- .setType(args.getType())
- .setFactor(args.getFactor())
.addAllAcls(args.getAcls().stream().map(a ->
- OzoneAcl.toProtobuf(a)).collect(Collectors.toList()))
- .build();
+ OzoneAcl.toProtobuf(a)).collect(Collectors.toList()));
+ if (args.getReplicationConfig() != null) {
+ keyArgsBuilder.setFactor(
+ ReplicationConfig
+ .getLegacyFactor(args.getReplicationConfig()));
+ keyArgsBuilder.setType(args.getReplicationConfig().getReplicationType());
+ }
CreateFileRequest createFileRequest = CreateFileRequest.newBuilder()
- .setKeyArgs(keyArgs)
+ .setKeyArgs(keyArgsBuilder.build())
.setIsOverwrite(overWrite)
.setIsRecursive(recursive)
.build();
diff --git a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
index 9e74fe2..eaf83d9 100644
--- a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
+++ b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmKeyInfo.java
@@ -18,9 +18,9 @@
package org.apache.hadoop.ozone.om.helpers;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.ozone.OzoneAcl;
@@ -52,8 +52,8 @@ public class TestOmKeyInfo {
.setCreationTime(123L)
.setModificationTime(123L)
.setDataSize(123L)
- .setReplicationFactor(ReplicationFactor.THREE)
- .setReplicationType(ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.addMetadata("key1", "value1")
.addMetadata("key2", "value2")
.build();
@@ -73,8 +73,8 @@ public class TestOmKeyInfo {
.setCreationTime(Time.now())
.setModificationTime(Time.now())
.setDataSize(100L)
- .setReplicationFactor(ReplicationFactor.THREE)
- .setReplicationType(ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.addMetadata("key1", "value1")
.addMetadata("key2", "value2")
.setOmKeyLocationInfos(
diff --git a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java
index 599a563..b498f83 100644
--- a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java
+++ b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmMultipartKeyInfo.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.om.helpers;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyInfo;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.PartKeyInfo;
@@ -37,8 +38,8 @@ public class TestOmMultipartKeyInfo {
OmMultipartKeyInfo omMultipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(UUID.randomUUID().toString())
.setCreationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.build();
OmMultipartKeyInfo cloneMultipartKeyInfo = omMultipartKeyInfo.copyObject();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
index 6bbee8f..9f22165 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.Trash;
import org.apache.hadoop.fs.TrashPolicy;
import org.apache.hadoop.fs.contract.ContractTestUtils;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.OzoneConsts;
@@ -57,6 +58,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.FS_TRASH_INTERVAL_KEY;
import static org.apache.hadoop.fs.FileSystem.TRASH_PREFIX;
import static org.apache.hadoop.fs.ozone.Constants.LISTING_PAGE_SIZE;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_ACL_ENABLED;
import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_ITERATE_BATCH_SIZE;
import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_DELIMITER;
@@ -487,6 +489,7 @@ public class TestOzoneFileSystem {
.setBucketName(bucketName)
.setKeyName(keyName)
.setAcls(Collections.emptyList())
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
.setLocationInfoList(new ArrayList<>())
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBCSID.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBCSID.java
index a3485ed..12a5807 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBCSID.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBCSID.java
@@ -17,6 +17,7 @@
package org.apache.hadoop.ozone.client.rpc;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -127,8 +128,10 @@ public class TestBCSID {
// get the name of a valid container.
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName).
- setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName("ratis")
+ setBucketName(bucketName)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.ONE))
+ .setKeyName("ratis")
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestCloseContainerHandlingByClient.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestCloseContainerHandlingByClient.java
index 76019c5..007800c 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestCloseContainerHandlingByClient.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestCloseContainerHandlingByClient.java
@@ -24,10 +24,11 @@ import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.apache.hadoop.conf.StorageUnit;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ChecksumType;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.ozone.MiniOzoneCluster;
@@ -48,6 +49,8 @@ import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_SCM_WATCHER_TIMEOUT;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_STALENODE_INTERVAL;
import org.junit.AfterClass;
@@ -139,8 +142,9 @@ public class TestCloseContainerHandlingByClient {
Assert.assertTrue(key.getOutputStream() instanceof KeyOutputStream);
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -173,8 +177,8 @@ public class TestCloseContainerHandlingByClient {
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
.setBucketName(bucketName)
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -207,8 +211,9 @@ public class TestCloseContainerHandlingByClient {
Assert.assertTrue(key.getOutputStream() instanceof KeyOutputStream);
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -267,8 +272,9 @@ public class TestCloseContainerHandlingByClient {
key.write(dataString4.getBytes(UTF_8));
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -311,8 +317,9 @@ public class TestCloseContainerHandlingByClient {
Assert.assertTrue(key.getOutputStream() instanceof KeyOutputStream);
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -373,8 +380,9 @@ public class TestCloseContainerHandlingByClient {
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName).
- setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
@@ -407,8 +415,9 @@ public class TestCloseContainerHandlingByClient {
Assert.assertTrue(key.getOutputStream() instanceof KeyOutputStream);
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestDeleteWithSlowFollower.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestDeleteWithSlowFollower.java
index 82fe3ce..cb42ceb 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestDeleteWithSlowFollower.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestDeleteWithSlowFollower.java
@@ -258,8 +258,10 @@ public class TestDeleteWithSlowFollower {
(ContainerStateMachine) RatisTestHelper
.getStateMachine(leader, pipeline);
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName).
- setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ setBucketName(bucketName)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
+ .setKeyName(keyName)
.build();
OmKeyInfo info = cluster.getOzoneManager().lookupKey(keyArgs);
BlockID blockID =
@@ -309,7 +311,6 @@ public class TestDeleteWithSlowFollower {
}
} catch (IOException ioe) {
Assert.fail("Exception should not be thrown.");
-
}
long numReadStateMachineOps =
stateMachine.getMetrics().getNumReadStateMachineOps();
@@ -346,6 +347,5 @@ public class TestDeleteWithSlowFollower {
== ContainerProtos.Result.UNABLE_TO_FIND_CHUNK);
}
}
-
}
}
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClient.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClient.java
index a303dcd..e1358eb 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClient.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClient.java
@@ -28,11 +28,11 @@ import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.DatanodeRatisServerConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.ratis.conf.RatisClientConfig;
import org.apache.hadoop.hdds.scm.OzoneClientConfig;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
@@ -58,6 +58,7 @@ import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.NET_TOPOLOGY_NODE_SWITCH_MAPPING_IMPL_KEY;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_STALENODE_INTERVAL;
import org.junit.After;
import org.junit.Assert;
@@ -194,8 +195,9 @@ public class TestFailureHandlingByClient {
key.close();
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
@@ -234,8 +236,9 @@ public class TestFailureHandlingByClient {
// this will throw AlreadyClosedException and and current stream
// will be discarded and write a new block
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
@@ -295,8 +298,9 @@ public class TestFailureHandlingByClient {
// The close will just write to the buffer
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
@@ -359,8 +363,9 @@ public class TestFailureHandlingByClient {
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
@@ -422,8 +427,9 @@ public class TestFailureHandlingByClient {
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClientFlushDelay.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClientFlushDelay.java
index e23f0d4..7563003 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClientFlushDelay.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestFailureHandlingByClientFlushDelay.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.ozone.client.rpc;
import org.apache.hadoop.conf.StorageUnit;
import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.DatanodeRatisServerConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -208,8 +209,10 @@ public class TestFailureHandlingByClientFlushDelay {
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestMultiBlockWritesWithDnFailures.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestMultiBlockWritesWithDnFailures.java
index 1ae0e33..5bc1de2 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestMultiBlockWritesWithDnFailures.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestMultiBlockWritesWithDnFailures.java
@@ -17,6 +17,7 @@
package org.apache.hadoop.ozone.client.rpc;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.DatanodeRatisServerConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -173,8 +174,10 @@ public class TestMultiBlockWritesWithDnFailures {
key.write(data.getBytes(UTF_8));
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
@@ -223,8 +226,10 @@ public class TestMultiBlockWritesWithDnFailures {
key.write(data.getBytes(UTF_8));
key.close();
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
+ .setKeyName(keyName)
.setRefreshPipeline(true)
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
index 47963f8..f93caf9 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
@@ -24,6 +24,8 @@ import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeoutException;
+
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -45,6 +47,7 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.ozone.container.TestHelper.countReplicas;
import static org.junit.Assert.fail;
@@ -300,8 +303,7 @@ public class TestKeyInputStream extends TestInputStreamBase {
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(getVolumeName())
.setBucketName(getBucketName())
.setKeyName(keyName)
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
.build();
OmKeyInfo keyInfo = getCluster().getOzoneManager().lookupKey(keyArgs);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
index 5755d85..8562554 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestContainerReplication.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.container;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_DEADNODE_INTERVAL;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_STALENODE_INTERVAL;
import static org.apache.hadoop.ozone.container.TestHelper.waitForContainerClose;
@@ -31,8 +32,8 @@ import java.time.Duration;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.ReplicationManager.ReplicationManagerConfiguration;
import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.client.ObjectStore;
@@ -132,8 +133,7 @@ public class TestContainerReplication {
.setVolumeName(VOLUME)
.setBucketName(BUCKET)
.setKeyName(KEY)
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
.build();
OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
OmKeyLocationInfoGroup locations = keyInfo.getLatestVersionLocations();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
index 11f6f46..5ff95ce 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestBlockDeletion.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.ozone.container.common.statemachine.commandhandler;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -180,8 +181,8 @@ public class TestBlockDeletion {
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
.setBucketName(bucketName).setKeyName(keyName).setDataSize(0)
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.setRefreshPipeline(true)
.build();
List<OmKeyLocationInfoGroup> omKeyLocationInfoGroupList =
@@ -262,8 +263,8 @@ public class TestBlockDeletion {
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
.setBucketName(bucketName).setKeyName(keyName).setDataSize(0)
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.setRefreshPipeline(true)
.build();
List<OmKeyLocationInfoGroup> omKeyLocationInfoGroupList =
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerByPipeline.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerByPipeline.java
index 915a9bc..3382180 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerByPipeline.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerByPipeline.java
@@ -17,11 +17,11 @@
package org.apache.hadoop.ozone.container.common.statemachine.commandhandler;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.hadoop.hdds.scm.container.ContainerInfo;
@@ -55,6 +55,8 @@ import java.util.List;
import java.util.concurrent.TimeoutException;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_DATANODE_PIPELINE_LIMIT;
/**
@@ -115,8 +117,8 @@ public class TestCloseContainerByPipeline {
//get the name of a valid container
OmKeyArgs keyArgs =
new OmKeyArgs.Builder().setVolumeName("test").setBucketName("test")
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setDataSize(1024)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setDataSize(1024)
.setKeyName(keyName).setRefreshPipeline(true).build();
OmKeyLocationInfo omKeyLocationInfo =
cluster.getOzoneManager().lookupKey(keyArgs).getKeyLocationVersions()
@@ -172,8 +174,8 @@ public class TestCloseContainerByPipeline {
//get the name of a valid container
OmKeyArgs keyArgs =
new OmKeyArgs.Builder().setVolumeName("test").setBucketName("test")
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setDataSize(1024)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setDataSize(1024)
.setKeyName("standalone")
.setRefreshPipeline(true)
.build();
@@ -230,8 +232,9 @@ public class TestCloseContainerByPipeline {
//get the name of a valid container
OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName("test").
- setBucketName("test").setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.THREE).setDataSize(1024)
+ setBucketName("test")
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
+ .setDataSize(1024)
.setKeyName("ratis").setRefreshPipeline(true).build();
OmKeyLocationInfo omKeyLocationInfo =
@@ -294,8 +297,8 @@ public class TestCloseContainerByPipeline {
OmKeyArgs keyArgs =
new OmKeyArgs.Builder().setVolumeName("test").setBucketName("test")
- .setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setDataSize(1024)
+ .setReplicationConfig(new RatisReplicationConfig(ONE))
+ .setDataSize(1024)
.setKeyName(keyName)
.setRefreshPipeline(true)
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerHandler.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerHandler.java
index e59b8eb..11efaf1 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerHandler.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerHandler.java
@@ -22,9 +22,9 @@ import java.util.HashMap;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.hadoop.hdds.scm.container.ContainerInfo;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
@@ -41,6 +41,7 @@ import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
import org.apache.ozone.test.GenericTestUtils;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE;
import org.junit.After;
@@ -99,8 +100,8 @@ public class TestCloseContainerHandler {
//get the name of a valid container
OmKeyArgs keyArgs =
new OmKeyArgs.Builder().setVolumeName("test").setBucketName("test")
- .setType(HddsProtos.ReplicationType.STAND_ALONE)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setDataSize(1024)
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
+ .setDataSize(1024)
.setKeyName("test")
.setRefreshPipeline(true)
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestDeleteContainerHandler.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestDeleteContainerHandler.java
index aec02f0..b28efd2 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestDeleteContainerHandler.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestDeleteContainerHandler.java
@@ -20,9 +20,9 @@ package org.apache.hadoop.ozone.container.common.statemachine.commandhandler;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.hadoop.hdds.scm.container.ContainerInfo;
import org.apache.hadoop.hdds.scm.node.NodeManager;
@@ -54,6 +54,7 @@ import org.junit.Rule;
import org.junit.rules.Timeout;
import static java.nio.charset.StandardCharsets.UTF_8;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_SIZE;
/**
@@ -254,8 +255,7 @@ public class TestDeleteContainerHandler {
OmKeyArgs keyArgs =
new OmKeyArgs.Builder().setVolumeName(volumeName)
.setBucketName(bucketName)
- .setType(HddsProtos.ReplicationType.STAND_ALONE)
- .setFactor(HddsProtos.ReplicationFactor.ONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
.setKeyName(keyName)
.setRefreshPipeline(true)
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/package-info.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/package-info.java
new file mode 100644
index 0000000..cfc6004
--- /dev/null
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+/**
+ * Test container related classes.
+ */
+package org.apache.hadoop.ozone.container;
\ No newline at end of file
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestContainerReportWithKeys.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestContainerReportWithKeys.java
index 89c1cbe..4678176 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestContainerReportWithKeys.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestContainerReportWithKeys.java
@@ -20,6 +20,7 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.hadoop.hdds.client.ReplicationFactor;
import org.apache.hadoop.hdds.client.ReplicationType;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.ContainerID;
@@ -116,8 +117,9 @@ public class TestContainerReportWithKeys {
.setVolumeName(volumeName)
.setBucketName(bucketName)
.setKeyName(keyName)
- .setType(HddsProtos.ReplicationType.STAND_ALONE)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setDataSize(keySize)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(HddsProtos.ReplicationFactor.ONE))
+ .setDataSize(keySize)
.setRefreshPipeline(true)
.build();
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
index 4f9d631..e27afa7 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerImpl.java
@@ -38,6 +38,8 @@ import org.apache.hadoop.conf.StorageUnit;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.BlockID;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -96,6 +98,9 @@ import com.google.common.base.Optional;
import com.google.common.collect.Sets;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomStringUtils;
+
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.THREE;
import static org.apache.hadoop.hdds.scm.net.NetConstants.LEAF_SCHEMA;
import static org.apache.hadoop.hdds.scm.net.NetConstants.RACK_SCHEMA;
import static org.apache.hadoop.hdds.scm.net.NetConstants.ROOT_SCHEMA;
@@ -192,10 +197,10 @@ public class TestKeyManagerImpl {
Mockito.when(mockScmBlockLocationProtocol
.allocateBlock(Mockito.anyLong(), Mockito.anyInt(),
- Mockito.any(ReplicationType.class),
- Mockito.any(ReplicationFactor.class), Mockito.anyString(),
+ Mockito.any(ReplicationConfig.class),
+ Mockito.anyString(),
Mockito.any(ExcludeList.class))).thenThrow(
- new SCMException("SafeModePrecheck failed for allocateBlock",
+ new SCMException("SafeModePrecheck failed for allocateBlock",
ResultCodes.SAFE_MODE_EXCEPTION));
createVolume(VOLUME_NAME);
createBucket(VOLUME_NAME, BUCKET_NAME);
@@ -265,8 +270,7 @@ public class TestKeyManagerImpl {
.setCreationTime(Time.now())
.setModificationTime(Time.now())
.setDataSize(0)
- .setReplicationType(keyArgs.getType())
- .setReplicationFactor(keyArgs.getFactor())
+ .setReplicationConfig(keyArgs.getReplicationConfig())
.setFileEncryptionInfo(null).build();
metadataManager.getOpenKeyTable().put(
metadataManager.getOpenKey(VOLUME_NAME, BUCKET_NAME, KEY_NAME, 1L),
@@ -286,6 +290,7 @@ public class TestKeyManagerImpl {
OmKeyArgs keyArgs = createBuilder()
.setKeyName(KEY_NAME)
.setDataSize(1000)
+ .setReplicationConfig(new RatisReplicationConfig(THREE))
.setAcls(OzoneAclUtil.getAclList(ugi.getUserName(), ugi.getGroupNames(),
ALL, ALL))
.build();
@@ -825,11 +830,11 @@ public class TestKeyManagerImpl {
TestOMRequestUtils.addKeyToTable(false,
VOLUME_NAME, BUCKET_NAME, prefixKeyInDB + i,
1000L, HddsProtos.ReplicationType.RATIS,
- HddsProtos.ReplicationFactor.ONE, metadataManager);
+ ONE, metadataManager);
} else { // Add to TableCache
TestOMRequestUtils.addKeyToTableCache(
VOLUME_NAME, BUCKET_NAME, prefixKeyInCache + i,
- HddsProtos.ReplicationType.RATIS, HddsProtos.ReplicationFactor.ONE,
+ HddsProtos.ReplicationType.RATIS, ONE,
metadataManager);
}
}
@@ -896,12 +901,12 @@ public class TestKeyManagerImpl {
VOLUME_NAME, BUCKET_NAME,
keyNameDir1Subdir1 + OZONE_URI_DELIMITER + prefixKeyInDB + i,
1000L, HddsProtos.ReplicationType.RATIS,
- HddsProtos.ReplicationFactor.ONE, metadataManager);
+ ONE, metadataManager);
} else { // Add to TableCache
TestOMRequestUtils.addKeyToTableCache(
VOLUME_NAME, BUCKET_NAME,
keyNameDir1Subdir1 + OZONE_URI_DELIMITER + prefixKeyInCache + i,
- HddsProtos.ReplicationType.RATIS, HddsProtos.ReplicationFactor.ONE,
+ HddsProtos.ReplicationType.RATIS, ONE,
metadataManager);
}
}
@@ -939,12 +944,12 @@ public class TestKeyManagerImpl {
TestOMRequestUtils.addKeyToTable(false,
VOLUME_NAME, BUCKET_NAME, prefixKey + i,
1000L, HddsProtos.ReplicationType.RATIS,
- HddsProtos.ReplicationFactor.ONE, metadataManager);
+ ONE, metadataManager);
existKeySet.add(prefixKey + i);
} else {
TestOMRequestUtils.addKeyToTableCache(
VOLUME_NAME, BUCKET_NAME, prefixKey + i,
- HddsProtos.ReplicationType.RATIS, HddsProtos.ReplicationFactor.ONE,
+ HddsProtos.ReplicationType.RATIS, ONE,
metadataManager);
String key = metadataManager.getOzoneKey(
@@ -1371,9 +1376,9 @@ public class TestKeyManagerImpl {
UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
return new OmKeyArgs.Builder()
.setBucketName(BUCKET_NAME)
- .setFactor(ReplicationFactor.ONE)
.setDataSize(0)
- .setType(ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(ONE))
.setAcls(OzoneAclUtil.getAclList(ugi.getUserName(), ugi.getGroupNames(),
ALL, ALL))
.setVolumeName(VOLUME_NAME);
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmBlockVersioning.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmBlockVersioning.java
index 01df34a..4350773 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmBlockVersioning.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmBlockVersioning.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.ozone.MiniOzoneCluster;
@@ -34,6 +35,8 @@ import org.apache.hadoop.ozone.om.helpers.OpenKeySession;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.AfterClass;
import org.junit.Assert;
+
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor.ONE;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.BeforeClass;
@@ -99,6 +102,7 @@ public class TestOmBlockVersioning {
.setDataSize(1000)
.setRefreshPipeline(true)
.setAcls(new ArrayList<>())
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
.build();
// 1st update, version 0
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/recon/TestReconWithOzoneManager.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/recon/TestReconWithOzoneManager.java
index bcca21e..c2b5f9c 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/recon/TestReconWithOzoneManager.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/recon/TestReconWithOzoneManager.java
@@ -38,6 +38,7 @@ import java.util.Optional;
import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.TestUtils;
@@ -389,8 +390,8 @@ public class TestReconWithOzoneManager {
.setBucketName(bucket)
.setVolumeName(volume)
.setKeyName(key)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.setOmKeyLocationInfos(omKeyLocationInfoGroupList)
.build());
}
diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/TestStorageContainerManagerHA.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/TestStorageContainerManagerHA.java
index 6efa41b..995949f 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/TestStorageContainerManagerHA.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/scm/TestStorageContainerManagerHA.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.scm;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.container.ContainerID;
@@ -167,8 +168,10 @@ public class TestStorageContainerManagerHA {
Assert.assertFalse(key.getModificationTime().isBefore(testStartTime));
is.close();
final OmKeyArgs keyArgs = new OmKeyArgs.Builder().setVolumeName(volumeName)
- .setBucketName(bucketName).setType(HddsProtos.ReplicationType.RATIS)
- .setFactor(HddsProtos.ReplicationFactor.ONE).setKeyName(keyName)
+ .setBucketName(bucketName)
+ .setReplicationConfig(new RatisReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
+ .setKeyName(keyName)
.setRefreshPipeline(true).build();
final OmKeyInfo keyInfo = cluster.getOzoneManager().lookupKey(keyArgs);
final List<OmKeyLocationInfo> keyLocationInfos =
diff --git a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmKeyInfoCodec.java b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmKeyInfoCodec.java
index 7e290de..1786c2a 100644
--- a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmKeyInfoCodec.java
+++ b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmKeyInfoCodec.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.om.codec;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.TestUtils;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
@@ -63,8 +64,8 @@ public class TestOmKeyInfoCodec {
return new OmKeyInfo.Builder()
.setCreationTime(Time.now())
.setModificationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.setVolumeName(VOLUME)
.setBucketName(BUCKET)
.setKeyName(KEYNAME)
diff --git a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmMultipartKeyInfoCodec.java b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmMultipartKeyInfoCodec.java
index 86968f5..6070e2e 100644
--- a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmMultipartKeyInfoCodec.java
+++ b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestOmMultipartKeyInfoCodec.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.om.codec;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.om.helpers.OmMultipartKeyInfo;
import org.apache.ozone.test.GenericTestUtils;
@@ -40,8 +41,8 @@ public class TestOmMultipartKeyInfoCodec {
OmMultipartKeyInfo omMultipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(UUID.randomUUID().toString())
.setCreationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.build();
byte[] data = new byte[0];
diff --git a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestRepeatedOmKeyInfoCodec.java b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestRepeatedOmKeyInfoCodec.java
index 95b3f4d..f89477c 100644
--- a/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestRepeatedOmKeyInfoCodec.java
+++ b/hadoop-ozone/interface-storage/src/test/java/org/apache/hadoop/ozone/om/codec/TestRepeatedOmKeyInfoCodec.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.ozone.om.codec;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.TestUtils;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
@@ -64,8 +65,8 @@ public class TestRepeatedOmKeyInfoCodec {
return new OmKeyInfo.Builder()
.setCreationTime(Time.now())
.setModificationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
.setVolumeName(VOLUME)
.setBucketName(BUCKET)
.setKeyName(KEYNAME)
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 c7a04fe..44002ed 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
@@ -45,11 +45,11 @@ import org.apache.hadoop.crypto.key.KeyProviderCryptoExtension;
import org.apache.hadoop.crypto.key.KeyProviderCryptoExtension.EncryptedKeyVersion;
import org.apache.hadoop.fs.FileEncryptionInfo;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.scm.container.common.helpers.AllocatedBlock;
import org.apache.hadoop.hdds.scm.container.common.helpers.ContainerWithPipeline;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
@@ -362,8 +362,13 @@ public class KeyManagerImpl implements KeyManager {
List<AllocatedBlock> allocatedBlocks;
try {
allocatedBlocks = scmClient.getBlockClient()
- .allocateBlock(scmBlockSize, numBlocks, keyInfo.getType(),
- keyInfo.getFactor(), omId, excludeList);
+ .allocateBlock(
+ scmBlockSize,
+ numBlocks,
+ keyInfo.getReplicationConfig(),
+ omId,
+ excludeList);
+
} catch (SCMException ex) {
if (ex.getResult()
.equals(SCMException.ResultCodes.SAFE_MODE_EXCEPTION)) {
@@ -441,16 +446,6 @@ public class KeyManagerImpl implements KeyManager {
args.getDataSize() : scmBlockSize;
final List<OmKeyLocationInfo> locations = new ArrayList<>();
- ReplicationFactor factor = args.getFactor();
- if (factor == null) {
- factor = useRatis ? ReplicationFactor.THREE : ReplicationFactor.ONE;
- }
-
- ReplicationType type = args.getType();
- if (type == null) {
- type = useRatis ? ReplicationType.RATIS : ReplicationType.STAND_ALONE;
- }
-
String dbKeyName = metadataManager.getOzoneKey(
args.getVolumeName(), args.getBucketName(), args.getKeyName());
@@ -475,8 +470,8 @@ public class KeyManagerImpl implements KeyManager {
if (keyInfo == null) {
// the key does not exist, create a new object, the new blocks are the
// version 0
- keyInfo = createKeyInfo(args, locations, factor, type, size,
- encInfo, bucketInfo);
+ keyInfo = createKeyInfo(args, locations, args.getReplicationConfig(),
+ size, encInfo, bucketInfo);
}
openVersion = keyInfo.getLatestVersionLocations().getVersion();
LOG.debug("Key {} allocated in volume {} bucket {}",
@@ -529,8 +524,6 @@ public class KeyManagerImpl implements KeyManager {
private OmKeyInfo prepareMultipartKeyInfo(OmKeyArgs args, long size,
List<OmKeyLocationInfo> locations, FileEncryptionInfo encInfo)
throws IOException {
- ReplicationFactor factor;
- ReplicationType type;
Preconditions.checkArgument(args.getMultipartUploadPartNumber() > 0,
"PartNumber Should be greater than zero");
@@ -549,13 +542,12 @@ public class KeyManagerImpl implements KeyManager {
throw new OMException("No such Multipart upload is with specified " +
"uploadId " + uploadID,
ResultCodes.NO_SUCH_MULTIPART_UPLOAD_ERROR);
- } else {
- factor = partKeyInfo.getFactor();
- type = partKeyInfo.getType();
}
+
// For this upload part we don't need to check in KeyTable. As this
// is not an actual key, it is a part of the key.
- return createKeyInfo(args, locations, factor, type, size, encInfo,
+ return createKeyInfo(args, locations,
+ partKeyInfo.getReplicationConfig(), size, encInfo,
getBucketInfo(args.getVolumeName(), args.getBucketName()));
}
@@ -563,8 +555,7 @@ public class KeyManagerImpl implements KeyManager {
* Create OmKeyInfo object.
* @param keyArgs
* @param locations
- * @param factor
- * @param type
+ * @param replicationConfig
* @param size
* @param encInfo
* @param omBucketInfo
@@ -572,8 +563,7 @@ public class KeyManagerImpl implements KeyManager {
*/
private OmKeyInfo createKeyInfo(OmKeyArgs keyArgs,
List<OmKeyLocationInfo> locations,
- ReplicationFactor factor,
- ReplicationType type, long size,
+ ReplicationConfig replicationConfig, long size,
FileEncryptionInfo encInfo,
OmBucketInfo omBucketInfo) {
OmKeyInfo.Builder builder = new OmKeyInfo.Builder()
@@ -585,8 +575,7 @@ public class KeyManagerImpl implements KeyManager {
.setCreationTime(Time.now())
.setModificationTime(Time.now())
.setDataSize(size)
- .setReplicationType(type)
- .setReplicationFactor(factor)
+ .setReplicationConfig(replicationConfig)
.setFileEncryptionInfo(encInfo)
.addAllMetadata(keyArgs.getMetadata());
builder.setAcls(getAclsForKey(keyArgs, omBucketInfo));
@@ -1010,8 +999,7 @@ public class KeyManagerImpl implements KeyManager {
OmMultipartKeyInfo multipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(multipartUploadID)
.setCreationTime(currentTime)
- .setReplicationType(keyArgs.getType())
- .setReplicationFactor(keyArgs.getFactor())
+ .setReplicationConfig(keyArgs.getReplicationConfig())
.setPartKeyInfoList(partKeyInfoMap)
.build();
Map<Long, List<OmKeyLocationInfo>> locations = new HashMap<>();
@@ -1021,8 +1009,7 @@ public class KeyManagerImpl implements KeyManager {
.setKeyName(keyArgs.getKeyName())
.setCreationTime(currentTime)
.setModificationTime(currentTime)
- .setReplicationType(keyArgs.getType())
- .setReplicationFactor(keyArgs.getFactor())
+ .setReplicationConfig(keyArgs.getReplicationConfig())
.setOmKeyLocationInfos(Collections.singletonList(
new OmKeyLocationInfoGroup(0, locations)))
.setAcls(getAclsForKey(keyArgs, bucketInfo))
@@ -1342,10 +1329,8 @@ public class KeyManagerImpl implements KeyManager {
upload.setCreationTime(
Instant.ofEpochMilli(multipartKeyInfo.getCreationTime()));
- upload.setReplicationType(
- multipartKeyInfo.getReplicationType());
- upload.setReplicationFactor(
- multipartKeyInfo.getReplicationFactor());
+ upload.setReplicationConfig(
+ multipartKeyInfo.getReplicationConfig());
} catch (IOException e) {
LOG.warn(
"Open key entry for multipart upload record can be read {}",
@@ -1397,8 +1382,7 @@ public class KeyManagerImpl implements KeyManager {
Iterator<Map.Entry<Integer, PartKeyInfo>> partKeyInfoMapIterator =
partKeyInfoMap.entrySet().iterator();
- HddsProtos.ReplicationType replicationType = null;
- HddsProtos.ReplicationFactor replicationFactor = null;
+ ReplicationConfig replicationConfig = null;
int count = 0;
List<OmPartInfo> omPartInfoList = new ArrayList<>();
@@ -1418,13 +1402,14 @@ public class KeyManagerImpl implements KeyManager {
omPartInfoList.add(omPartInfo);
//if there are parts, use replication type from one of the parts
- replicationType = partKeyInfo.getPartKeyInfo().getType();
- replicationFactor = partKeyInfo.getPartKeyInfo().getFactor();
+ replicationConfig = ReplicationConfig.fromTypeAndFactor(
+ partKeyInfo.getPartKeyInfo().getType(),
+ partKeyInfo.getPartKeyInfo().getFactor());
count++;
}
}
- if (replicationType == null) {
+ if (replicationConfig == null) {
//if there are no parts, use the replicationType from the open key.
OmKeyInfo omKeyInfo =
@@ -1435,13 +1420,10 @@ public class KeyManagerImpl implements KeyManager {
"Open key is missing for multipart upload " + multipartKey);
}
- replicationType = omKeyInfo.getType();
- replicationFactor = omKeyInfo.getFactor();
+ replicationConfig = omKeyInfo.getReplicationConfig();
}
- Preconditions.checkNotNull(replicationType,
- "Replication type can't be identified");
- Preconditions.checkNotNull(replicationFactor,
- "Replication factor can't be identified");
+ Preconditions.checkNotNull(replicationConfig,
+ "ReplicationConfig can't be identified");
if (partKeyInfoMapIterator.hasNext()) {
Map.Entry<Integer, PartKeyInfo> partKeyInfoEntry =
@@ -1452,7 +1434,7 @@ public class KeyManagerImpl implements KeyManager {
nextPartNumberMarker = 0;
}
OmMultipartUploadListParts omMultipartUploadListParts =
- new OmMultipartUploadListParts(replicationType, replicationFactor,
+ new OmMultipartUploadListParts(replicationConfig,
nextPartNumberMarker, isTruncated);
omMultipartUploadListParts.addPartList(omPartInfoList);
return omMultipartUploadListParts;
@@ -1899,8 +1881,7 @@ public class KeyManagerImpl implements KeyManager {
.setCreationTime(Time.now())
.setModificationTime(Time.now())
.setDataSize(0)
- .setReplicationType(ReplicationType.RATIS)
- .setReplicationFactor(ReplicationFactor.ONE)
+ .setReplicationConfig(new RatisReplicationConfig(ReplicationFactor.ONE))
.setFileEncryptionInfo(encInfo)
.setAcls(acls)
.build();
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
index 6d7a88a..c64df9c 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
@@ -199,7 +199,7 @@ public class TrashOzoneFileSystem extends FileSystem {
return new FileStatus(
status.getKeyInfo().getDataSize(),
status.isDirectory(),
- status.getKeyInfo().getFactor().getNumber(),
+ status.getKeyInfo().getReplicationConfig().getRequiredNodes(),
status.getBlockSize(),
status.getKeyInfo().getModificationTime(),
temp
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java
index c14ca93..ec05576 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMDirectoryCreateRequest.java
@@ -28,6 +28,7 @@ import java.util.Map;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfoGroup;
@@ -40,7 +41,6 @@ import org.apache.hadoop.ozone.security.acl.OzoneObj;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.audit.AuditLogger;
import org.apache.hadoop.ozone.audit.OMAction;
import org.apache.hadoop.ozone.om.OMMetadataManager;
@@ -355,8 +355,8 @@ public class OMDirectoryCreateRequest extends OMKeyRequest {
.setCreationTime(keyArgs.getModificationTime())
.setModificationTime(keyArgs.getModificationTime())
.setDataSize(0)
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
+ .setReplicationConfig(ReplicationConfig
+ .fromTypeAndFactor(keyArgs.getType(), keyArgs.getFactor()))
.setObjectID(objectId)
.setUpdateID(objectId);
}
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequest.java
index 0619062..d8f4df2 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/file/OMFileCreateRequest.java
@@ -282,7 +282,7 @@ public class OMFileCreateRequest extends OMKeyRequest {
// check bucket and volume quota
long preAllocatedSpace = newLocationList.size()
* ozoneManager.getScmBlockSize()
- * omKeyInfo.getFactor().getNumber();
+ * omKeyInfo.getReplicationConfig().getRequiredNodes();
checkBucketQuotaInBytes(omBucketInfo, preAllocatedSpace);
checkBucketQuotaInNamespace(omBucketInfo, 1L);
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequest.java
index 7eda1a8..18224cd 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMAllocateBlockRequest.java
@@ -201,7 +201,7 @@ public class OMAllocateBlockRequest extends OMKeyRequest {
// check bucket and volume quota
long preAllocatedSpace = newLocationList.size()
* ozoneManager.getScmBlockSize()
- * openKeyInfo.getFactor().getNumber();
+ * openKeyInfo.getReplicationConfig().getRequiredNodes();
checkBucketQuotaInBytes(omBucketInfo, preAllocatedSpace);
// Append new block
openKeyInfo.appendNewBlocks(newLocationList, false);
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequest.java
index fe72ea2..73d17c3 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCommitRequest.java
@@ -201,7 +201,7 @@ public class OMKeyCommitRequest extends OMKeyRequest {
new CacheValue<>(Optional.of(omKeyInfo), trxnLogIndex));
long scmBlockSize = ozoneManager.getScmBlockSize();
- int factor = omKeyInfo.getFactor().getNumber();
+ int factor = omKeyInfo.getReplicationConfig().getRequiredNodes();
omBucketInfo = getBucketInfo(omMetadataManager, volumeName, bucketName);
// Block was pre-requested and UsedBytes updated when createKey and
// AllocatedBlock. The space occupied by the Key shall be based on
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequest.java
index 55f4990..d974a66 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyCreateRequest.java
@@ -302,7 +302,7 @@ public class OMKeyCreateRequest extends OMKeyRequest {
// commitKey.
long preAllocatedSpace = newLocationList.size()
* ozoneManager.getScmBlockSize()
- * omKeyInfo.getFactor().getNumber();
+ * omKeyInfo.getReplicationConfig().getRequiredNodes();
// check bucket and volume quota
checkBucketQuotaInBytes(omBucketInfo, preAllocatedSpace);
checkBucketQuotaInNamespace(omBucketInfo, 1L);
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
index 4495504..df3e505 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyRequest.java
@@ -31,6 +31,7 @@ import java.util.Map;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.utils.db.cache.CacheKey;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneConsts;
@@ -246,8 +247,8 @@ public abstract class OMKeyRequest extends OMClientRequest {
@SuppressWarnings("parameterNumber")
protected OmKeyInfo createKeyInfo(@Nonnull KeyArgs keyArgs,
@Nonnull List<OmKeyLocationInfo> locations,
- @Nonnull HddsProtos.ReplicationFactor factor,
- @Nonnull HddsProtos.ReplicationType type, long size,
+ @Nonnull ReplicationConfig replicationConfig,
+ long size,
@Nullable FileEncryptionInfo encInfo,
@Nonnull PrefixManager prefixManager,
@Nullable OmBucketInfo omBucketInfo,
@@ -261,8 +262,7 @@ public abstract class OMKeyRequest extends OMClientRequest {
.setCreationTime(keyArgs.getModificationTime())
.setModificationTime(keyArgs.getModificationTime())
.setDataSize(size)
- .setReplicationType(type)
- .setReplicationFactor(factor)
+ .setReplicationConfig(replicationConfig)
.setFileEncryptionInfo(encInfo)
.setAcls(getAclsForKey(keyArgs, omBucketInfo, prefixManager))
.addAllMetadata(KeyValueUtil.getFromProtobuf(keyArgs.getMetadataList()))
@@ -349,8 +349,10 @@ public abstract class OMKeyRequest extends OMClientRequest {
// the key does not exist, create a new object.
// Blocks will be appended as version 0.
- return createKeyInfo(keyArgs, locations, keyArgs.getFactor(),
- keyArgs.getType(), keyArgs.getDataSize(), encInfo, prefixManager,
+ return createKeyInfo(keyArgs, locations,
+ ReplicationConfig.fromTypeAndFactor(
+ keyArgs.getType(), keyArgs.getFactor()),
+ keyArgs.getDataSize(), encInfo, prefixManager,
omBucketInfo, transactionLogIndex, objectID);
}
@@ -369,8 +371,7 @@ public abstract class OMKeyRequest extends OMClientRequest {
@Nullable OmBucketInfo omBucketInfo, @Nonnull long transactionLogIndex,
@Nonnull long objectId)
throws IOException {
- HddsProtos.ReplicationFactor factor;
- HddsProtos.ReplicationType type;
+
Preconditions.checkArgument(args.getMultipartNumber() > 0,
"PartNumber Should be greater than zero");
@@ -389,14 +390,12 @@ public abstract class OMKeyRequest extends OMClientRequest {
throw new OMException("No such Multipart upload is with specified " +
"uploadId " + uploadID,
OMException.ResultCodes.NO_SUCH_MULTIPART_UPLOAD_ERROR);
- } else {
- factor = partKeyInfo.getFactor();
- type = partKeyInfo.getType();
}
// For this upload part we don't need to check in KeyTable. As this
// is not an actual key, it is a part of the key.
- return createKeyInfo(args, locations, factor, type, size, encInfo,
- prefixManager, omBucketInfo, transactionLogIndex, objectId);
+ return createKeyInfo(args, locations, partKeyInfo.getReplicationConfig(),
+ size, encInfo, prefixManager, omBucketInfo, transactionLogIndex,
+ objectId);
}
/**
@@ -653,7 +652,7 @@ public abstract class OMKeyRequest extends OMClientRequest {
*/
protected static long sumBlockLengths(OmKeyInfo omKeyInfo) {
long bytesUsed = 0;
- int keyFactor = omKeyInfo.getFactor().getNumber();
+ int keyFactor = omKeyInfo.getReplicationConfig().getRequiredNodes();
OmKeyLocationInfoGroup keyLocationGroup =
omKeyInfo.getLatestVersionLocations();
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequest.java
index 4a42f5f..224c51d 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3InitiateMultipartUploadRequest.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.ozone.om.request.s3.multipart;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.ozone.audit.OMAction;
import org.apache.hadoop.ozone.om.OMMetadataManager;
import org.apache.hadoop.ozone.om.OzoneManager;
@@ -163,11 +164,15 @@ public class S3InitiateMultipartUploadRequest extends OMKeyRequest {
// also like this, even when key exists in a bucket, user can still
// initiate MPU.
+ final ReplicationConfig replicationConfig =
+ ReplicationConfig.fromTypeAndFactor(
+ keyArgs.getType(), keyArgs.getFactor());
+
multipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(keyArgs.getMultipartUploadID())
.setCreationTime(keyArgs.getModificationTime())
- .setReplicationType(keyArgs.getType())
- .setReplicationFactor(keyArgs.getFactor())
+ .setReplicationConfig(
+ replicationConfig)
.setObjectID(objectID)
.setUpdateID(transactionLogIndex)
.build();
@@ -181,8 +186,7 @@ public class S3InitiateMultipartUploadRequest extends OMKeyRequest {
.setKeyName(keyArgs.getKeyName())
.setCreationTime(keyArgs.getModificationTime())
.setModificationTime(keyArgs.getModificationTime())
- .setReplicationType(keyArgs.getType())
- .setReplicationFactor(keyArgs.getFactor())
+ .setReplicationConfig(replicationConfig)
.setOmKeyLocationInfos(Collections.singletonList(
new OmKeyLocationInfoGroup(0, new ArrayList<>())))
.setAcls(getAclsForKey(keyArgs, bucketInfo,
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 650133b..833a2a5 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
@@ -145,7 +145,7 @@ public class S3MultipartUploadAbortRequest extends OMKeyRequest {
// When abort uploaded key, we need to subtract the PartKey length from
// the volume usedBytes.
long quotaReleased = 0;
- int keyFactor = omKeyInfo.getFactor().getNumber();
+ int keyFactor = omKeyInfo.getReplicationConfig().getRequiredNodes();
Iterator iter =
multipartKeyInfo.getPartKeyInfoMap().entrySet().iterator();
while(iter.hasNext()) {
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequest.java
index 004515f..4cd4fd4 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCommitPartRequest.java
@@ -217,7 +217,7 @@ public class S3MultipartUploadCommitPartRequest extends OMKeyRequest {
new CacheValue<>(Optional.absent(), trxnLogIndex));
long scmBlockSize = ozoneManager.getScmBlockSize();
- int factor = omKeyInfo.getFactor().getNumber();
+ int factor = omKeyInfo.getReplicationConfig().getRequiredNodes();
omBucketInfo = getBucketInfo(omMetadataManager, volumeName, bucketName);
// Block was pre-requested and UsedBytes updated when createKey and
// AllocatedBlock. The space occupied by the Key shall be based on
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
index 5056045..3216bcf 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.OMAction;
@@ -265,7 +266,8 @@ public class S3MultipartUploadCompleteRequest extends OMKeyRequest {
OmKeyInfo.Builder builder =
new OmKeyInfo.Builder().setVolumeName(volumeName)
.setBucketName(bucketName).setKeyName(keyName)
- .setReplicationFactor(factor).setReplicationType(type)
+ .setReplicationConfig(
+ ReplicationConfig.fromTypeAndFactor(type, factor))
.setCreationTime(keyArgs.getModificationTime())
.setModificationTime(keyArgs.getModificationTime())
.setDataSize(dataSize)
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
index 15cfe6a..c190768 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.utils.db.SequenceNumberNotFoundException;
import org.apache.hadoop.ozone.OzoneAcl;
@@ -492,8 +493,13 @@ public class OzoneManagerRequestHandler implements RequestHandler {
omPartInfoList.forEach(partInfo -> partInfoList.add(partInfo.getProto()));
- response.setType(omMultipartUploadListParts.getReplicationType());
- response.setFactor(omMultipartUploadListParts.getReplicationFactor());
+ response.setType(
+ omMultipartUploadListParts
+ .getReplicationConfig()
+ .getReplicationType());
+ response.setFactor(
+ ReplicationConfig.getLegacyFactor(
+ omMultipartUploadListParts.getReplicationConfig()));
response.setNextPartNumberMarker(
omMultipartUploadListParts.getNextPartNumberMarker());
response.setIsTruncated(omMultipartUploadListParts.isTruncated());
@@ -519,8 +525,10 @@ public class OzoneManagerRequestHandler implements RequestHandler {
.setBucketName(upload.getBucketName())
.setKeyName(upload.getKeyName())
.setUploadId(upload.getUploadId())
- .setType(upload.getReplicationType())
- .setFactor(upload.getReplicationFactor())
+ .setType(upload.getReplicationConfig().getReplicationType())
+ .setFactor(
+ ReplicationConfig.getLegacyFactor(
+ upload.getReplicationConfig()))
.setCreationTime(upload.getCreationTime().toEpochMilli())
.build())
.collect(Collectors.toList());
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestBucketManagerImpl.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestBucketManagerImpl.java
index c151afa..7f638e2 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestBucketManagerImpl.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestBucketManagerImpl.java
@@ -21,10 +21,10 @@ import java.io.IOException;
import org.apache.hadoop.crypto.key.KeyProvider;
import org.apache.hadoop.crypto.key.KeyProviderCryptoExtension;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.StorageType;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.server.ServerUtils;
import org.apache.hadoop.ozone.om.exceptions.OMException;
import org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes;
@@ -321,16 +321,16 @@ public class TestBucketManagerImpl {
.setBucketName("bucketOne")
.setVolumeName("sampleVol")
.setKeyName("key_one")
- .setReplicationFactor(ReplicationFactor.ONE)
- .setReplicationType(ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(ReplicationFactor.ONE))
.build());
metaMgr.getKeyTable().put("/sampleVol/bucketOne/key_two",
new OmKeyInfo.Builder()
.setBucketName("bucketOne")
.setVolumeName("sampleVol")
.setKeyName("key_two")
- .setReplicationFactor(ReplicationFactor.ONE)
- .setReplicationType(ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(ReplicationFactor.ONE))
.build());
try {
bucketManager.deleteBucket("sampleVol", "bucketOne");
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyDeletingService.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyDeletingService.java
index e84ef17..7d5fb60 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyDeletingService.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyDeletingService.java
@@ -27,7 +27,9 @@ import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.server.ServerUtils;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
@@ -198,6 +200,8 @@ public class TestKeyDeletingService {
.setBucketName(bucketName)
.setKeyName(keyName)
.setAcls(Collections.emptyList())
+ .setReplicationConfig(new StandaloneReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.setLocationInfoList(new ArrayList<>())
.build();
//Open, Commit and Delete the Keys in the Key Manager.
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerUnit.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerUnit.java
index a2c2c8b..b310079 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerUnit.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestKeyManagerUnit.java
@@ -41,7 +41,6 @@ import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
import org.apache.hadoop.hdds.protocol.StorageType;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.scm.container.common.helpers.ContainerWithPipeline;
import org.apache.hadoop.hdds.scm.container.ContainerInfo;
import org.apache.hadoop.hdds.scm.pipeline.MockPipeline;
@@ -298,8 +297,8 @@ public class TestKeyManagerUnit {
.setVolumeName(volume)
.setBucketName(bucket)
.setKeyName(key)
- .setType(ReplicationType.RATIS)
- .setFactor(ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.setAcls(new ArrayList<>())
.build();
return omtest.initiateMultipartUpload(key1);
@@ -313,8 +312,8 @@ public class TestKeyManagerUnit {
OmMultipartKeyInfo multipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(uploadID)
.setCreationTime(Time.now())
- .setReplicationType(ReplicationType.RATIS)
- .setReplicationFactor(ReplicationFactor.THREE)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.setPartKeyInfoList(partKeyInfoMap)
.build();
@@ -402,9 +401,9 @@ public class TestKeyManagerUnit {
.setCreationTime(Time.now())
.setModificationTime(Time.now())
.setDataSize(256000)
- .setReplicationType(ReplicationType.RATIS)
- .setReplicationFactor(ReplicationFactor.THREE)
- .setAcls(Collections.emptyList())
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
+ .setAcls(Collections.emptyList())
.build();
TestOMRequestUtils.addKeyToOM(metadataManager, keyInfo);
@@ -472,8 +471,8 @@ public class TestKeyManagerUnit {
.setCreationTime(Time.now())
.setOmKeyLocationInfos(singletonList(
new OmKeyLocationInfoGroup(0, new ArrayList<>())))
- .setReplicationFactor(ReplicationFactor.THREE)
- .setReplicationType(ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.setKeyName(keyPrefix + i)
.setObjectID(i)
.setUpdateID(i)
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashService.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashService.java
index cf9e626..0413036 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashService.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashService.java
@@ -20,7 +20,9 @@
package org.apache.hadoop.ozone.om;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.server.ServerUtils;
import org.apache.hadoop.hdds.utils.db.DBConfigFromFile;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
@@ -113,6 +115,8 @@ public class TestTrashService {
.setKeyName(keyName)
.setAcls(Collections.emptyList())
.setLocationInfoList(new ArrayList<>())
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(HddsProtos.ReplicationFactor.ONE))
.build();
/* Create and delete key in the Key Manager. */
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/TestOMRequestUtils.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/TestOMRequestUtils.java
index 5285608..1e65ff8 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/TestOMRequestUtils.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/TestOMRequestUtils.java
@@ -264,8 +264,7 @@ public final class TestOMRequestUtils {
Pipeline pipeline = Pipeline.newBuilder()
.setState(Pipeline.PipelineState.OPEN)
.setId(PipelineID.randomId())
- .setReplicationConfig(ReplicationConfig
- .fromTypeAndFactor(keyInfo.getType(), keyInfo.getFactor()))
+ .setReplicationConfig(keyInfo.getReplicationConfig())
.setNodes(new ArrayList<>())
.build();
@@ -315,8 +314,9 @@ public final class TestOMRequestUtils {
.setCreationTime(creationTime)
.setModificationTime(Time.now())
.setDataSize(1000L)
- .setReplicationType(replicationType)
- .setReplicationFactor(replicationFactor)
+ .setReplicationConfig(
+ ReplicationConfig
+ .fromTypeAndFactor(replicationType, replicationFactor))
.setObjectID(objectID)
.setUpdateID(objectID)
.build();
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
index 4f50d9e..1231437 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/response/s3/multipart/TestS3MultipartResponse.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.UUID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.junit.After;
import org.junit.Before;
@@ -86,8 +87,8 @@ public class TestS3MultipartResponse {
OmMultipartKeyInfo multipartKeyInfo = new OmMultipartKeyInfo.Builder()
.setUploadID(multipartUploadID)
.setCreationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
+ .setReplicationConfig(new RatisReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.build();
OmKeyInfo omKeyInfo = new OmKeyInfo.Builder()
@@ -96,8 +97,8 @@ public class TestS3MultipartResponse {
.setKeyName(keyName)
.setCreationTime(Time.now())
.setModificationTime(Time.now())
- .setReplicationType(HddsProtos.ReplicationType.RATIS)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
+ .setReplicationConfig(new RatisReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.setOmKeyLocationInfos(Collections.singletonList(
new OmKeyLocationInfoGroup(0, new ArrayList<>())))
.build();
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
index 17697b3..46774fe 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestOzoneNativeAuthorizer.java
@@ -18,6 +18,7 @@ package org.apache.hadoop.ozone.security.acl;
import com.google.common.base.Optional;
import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.protocol.ScmBlockLocationProtocol;
@@ -172,9 +173,9 @@ public class TestOzoneNativeAuthorizer {
.setVolumeName(volume)
.setBucketName(bucket)
.setKeyName(keyName)
- .setFactor(HddsProtos.ReplicationFactor.ONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(HddsProtos.ReplicationFactor.ONE))
.setDataSize(0)
- .setType(HddsProtos.ReplicationType.STAND_ALONE)
.setAcls(OzoneAclUtil.getAclList(testUgi.getUserName(),
testUgi.getGroupNames(), ALL, ALL))
.build();
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestVolumeOwner.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestVolumeOwner.java
index 2174ec4..06516e9 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestVolumeOwner.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/security/acl/TestVolumeOwner.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.security.acl;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.protocol.ScmBlockLocationProtocol;
@@ -131,9 +132,10 @@ public class TestVolumeOwner {
.setVolumeName(getTestVolumeName(i))
.setBucketName(getTestBucketName(j))
.setKeyName(getTestKeyName(k))
- .setFactor(HddsProtos.ReplicationFactor.ONE)
- .setDataSize(0)
- .setType(HddsProtos.ReplicationType.STAND_ALONE);
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
+ .setDataSize(0);
if (k == 0) {
keyArgsBuilder.setAcls(OzoneAclUtil.getAclList(
testUgi.getUserName(), testUgi.getGroupNames(), ALL, ALL));
diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java
index 1327a36..fa5980c 100644
--- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java
+++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java
@@ -446,7 +446,8 @@ public class BasicOzoneClientAdapterImpl implements OzoneClientAdapter {
private FileStatusAdapter toFileStatusAdapter(OzoneFileStatus status,
String owner, URI defaultUri, Path workingDir) {
OmKeyInfo keyInfo = status.getKeyInfo();
- short replication = (short) keyInfo.getFactor().getNumber();
+ short replication = (short) keyInfo.getReplicationConfig()
+ .getRequiredNodes();
return new FileStatusAdapter(
keyInfo.getDataSize(),
new Path(OZONE_URI_DELIMITER + keyInfo.getKeyName())
diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java
index 3bf3b76..dbfa3a5 100644
--- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java
+++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java
@@ -872,7 +872,8 @@ public class BasicRootedOzoneClientAdapterImpl
private FileStatusAdapter toFileStatusAdapter(OzoneFileStatus status,
String owner, URI defaultUri, Path workingDir, String ofsPathPrefix) {
OmKeyInfo keyInfo = status.getKeyInfo();
- short replication = (short) keyInfo.getFactor().getNumber();
+ short replication = (short) keyInfo.getReplicationConfig()
+ .getRequiredNodes();
return new FileStatusAdapter(
keyInfo.getDataSize(),
new Path(ofsPathPrefix + OZONE_URI_DELIMITER + keyInfo.getKeyName())
diff --git a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/OMMetadataManagerTestUtils.java b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/OMMetadataManagerTestUtils.java
index 6916987..809bfce 100644
--- a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/OMMetadataManagerTestUtils.java
+++ b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/OMMetadataManagerTestUtils.java
@@ -33,7 +33,6 @@ import org.apache.hadoop.hdds.client.BlockID;
import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.ozone.om.OMMetadataManager;
@@ -145,8 +144,7 @@ public final class OMMetadataManagerTestUtils {
.setBucketName("bucketOne")
.setVolumeName("sampleVol")
.setKeyName(key)
- .setReplicationFactor(ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
.build());
}
@@ -170,8 +168,7 @@ public final class OMMetadataManagerTestUtils {
.setBucketName(bucket)
.setVolumeName(volume)
.setKeyName(key)
- .setReplicationFactor(ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(ONE))
.setOmKeyLocationInfos(omKeyLocationInfoGroupList)
.build());
}
diff --git a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/recovery/TestReconOmMetadataManagerImpl.java b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/recovery/TestReconOmMetadataManagerImpl.java
index a9e6aea..39c6660 100644
--- a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/recovery/TestReconOmMetadataManagerImpl.java
+++ b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/recovery/TestReconOmMetadataManagerImpl.java
@@ -25,6 +25,7 @@ import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.om.OMMetadataManager;
@@ -170,16 +171,16 @@ public class TestReconOmMetadataManagerImpl {
.setBucketName("bucketOne")
.setVolumeName("sampleVol")
.setKeyName("key_one")
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.build());
omMetadataManager.getKeyTable().put("/sampleVol/bucketOne/key_two",
new OmKeyInfo.Builder()
.setBucketName("bucketOne")
.setVolumeName("sampleVol")
.setKeyName("key_two")
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(new StandaloneReplicationConfig(
+ HddsProtos.ReplicationFactor.ONE))
.build());
return omMetadataManager;
diff --git a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
index 3626657..0f87e29 100644
--- a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
+++ b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestContainerKeyMapperTask.java
@@ -35,6 +35,7 @@ import java.util.List;
import java.util.Map;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.ozone.om.OMMetadataManager;
@@ -275,8 +276,8 @@ public class TestContainerKeyMapperTask {
.setBucketName(bucket)
.setVolumeName(volume)
.setKeyName(key)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(HddsProtos.ReplicationFactor.ONE))
.setOmKeyLocationInfos(Collections.singletonList(
omKeyLocationInfoGroup))
.build();
diff --git a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestOMDBUpdatesHandler.java b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestOMDBUpdatesHandler.java
index a90b2b7..0ef0c7a 100644
--- a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestOMDBUpdatesHandler.java
+++ b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestOMDBUpdatesHandler.java
@@ -31,6 +31,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.server.ServerUtils;
@@ -258,8 +259,8 @@ public class TestOMDBUpdatesHandler {
.setVolumeName(volumeName)
.setBucketName(bucketName)
.setKeyName(keyName)
- .setReplicationFactor(HddsProtos.ReplicationFactor.ONE)
- .setReplicationType(HddsProtos.ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(HddsProtos.ReplicationFactor.ONE))
.setDataSize(random.nextLong())
.build();
}
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/OmKeyGenerator.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/OmKeyGenerator.java
index 9cb22f6..e831468 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/OmKeyGenerator.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/OmKeyGenerator.java
@@ -20,9 +20,9 @@ import java.util.ArrayList;
import java.util.concurrent.Callable;
import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.ozone.client.OzoneClient;
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs.Builder;
@@ -107,8 +107,7 @@ public class OmKeyGenerator extends BaseFreonGenerator
OmKeyArgs keyArgs = new Builder()
.setBucketName(bucketName)
.setVolumeName(volumeName)
- .setType(ReplicationType.RATIS)
- .setFactor(factor)
+ .setReplicationConfig(new RatisReplicationConfig(factor))
.setKeyName(generateObjectName(counter))
.setLocationInfoList(new ArrayList<>())
.setAcls(OzoneAclUtil.getAclList(ugi.getUserName(), ugi.getGroupNames(),
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
index bd31c84..f161956 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
@@ -25,9 +25,10 @@ import java.util.concurrent.Callable;
import org.apache.hadoop.hdds.cli.HddsVersionProvider;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
+import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.utils.db.BatchOperation;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
@@ -205,8 +206,7 @@ public class GeneratorOm extends BaseGenerator implements
.setDataSize(0)
.setCreationTime(System.currentTimeMillis())
.setModificationTime(System.currentTimeMillis())
- .setReplicationFactor(ReplicationFactor.ONE)
- .setReplicationType(ReplicationType.RATIS)
+ .setReplicationConfig(new RatisReplicationConfig(ReplicationFactor.ONE))
.build();
omKeyTable.putWithBatch(omKeyTableBatchOperation,
"/" + volumeName + "/" + bucketName + "/" + keyName, l3DirInfo);
@@ -262,9 +262,8 @@ public class GeneratorOm extends BaseGenerator implements
.setDataSize(getKeySize())
.setCreationTime(System.currentTimeMillis())
.setModificationTime(System.currentTimeMillis())
- .setReplicationFactor(
- ReplicationFactor.valueOf(ReplicationFactor.THREE_VALUE))
- .setReplicationType(ReplicationType.STAND_ALONE)
+ .setReplicationConfig(
+ new StandaloneReplicationConfig(ReplicationFactor.THREE))
.addOmKeyLocationInfoGroup(infoGroup)
.build();
omKeyTable.putWithBatch(omKeyTableBatchOperation, keyName, keyInfo);
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOMKeyAllocation.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOMKeyAllocation.java
index fbb686a..f45b959 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOMKeyAllocation.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOMKeyAllocation.java
@@ -22,6 +22,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.hadoop.hdds.client.BlockID;
+import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.om.BucketManager;
@@ -108,8 +109,9 @@ public class BenchMarkOMKeyAllocation {
.setBucketName(bucketName)
.setKeyName(UUID.randomUUID().toString())
.setDataSize(0)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
- .setType(HddsProtos.ReplicationType.RATIS).build();
+ .setReplicationConfig(
+ new RatisReplicationConfig(HddsProtos.ReplicationFactor.THREE))
+ .build();
OpenKeySession openKeySession = keyManager.openKey(omKeyArgs);
// setting location info list
omKeyArgs.setLocationInfoList(keyLocationInfos);
diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOzoneManager.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOzoneManager.java
index b1dd1ab..6412392 100644
--- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOzoneManager.java
+++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/genesis/BenchMarkOzoneManager.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationFactor;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
import org.apache.hadoop.hdds.scm.events.SCMEvents;
@@ -129,8 +128,8 @@ public class BenchMarkOzoneManager {
.setBucketName(bucketName)
.setKeyName(key)
.setDataSize(0)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
- .setType(HddsProtos.ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.build();
OpenKeySession keySession = om.getKeyManager().openKey(omKeyArgs);
long clientID = keySession.getId();
@@ -168,8 +167,8 @@ public class BenchMarkOzoneManager {
.setBucketName(bucketName)
.setKeyName(key)
.setDataSize(50)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
- .setType(HddsProtos.ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.build();
state.om.allocateBlock(omKeyArgs, clientIDs.get(index), new ExcludeList());
}
@@ -184,8 +183,8 @@ public class BenchMarkOzoneManager {
.setBucketName(bucketName)
.setKeyName(key)
.setDataSize(50)
- .setFactor(HddsProtos.ReplicationFactor.THREE)
- .setType(HddsProtos.ReplicationType.RATIS)
+ .setReplicationConfig(
+ new RatisReplicationConfig(ReplicationFactor.THREE))
.build();
OpenKeySession openKeySession = state.om.openKey(omKeyArgs);
state.om.allocateBlock(omKeyArgs, openKeySession.getId(),
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org