This is an automated email from the ASF dual-hosted git repository.
sodonnell 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 b405f84621 HDDS-7542. Refactor DefaultReplicationConfig (#4005)
b405f84621 is described below
commit b405f84621dc18a56ab2598ac2a00aea129f5f2e
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Jan 17 15:30:31 2023 +0100
HDDS-7542. Refactor DefaultReplicationConfig (#4005)
---
.../hdds/client/DefaultReplicationConfig.java | 94 +++++++---------------
.../apache/hadoop/ozone/client/OzoneBucket.java | 7 +-
.../hadoop/ozone/client/MockOmTransport.java | 22 ++---
.../hadoop/ozone/client/TestOzoneECClient.java | 11 ++-
.../hadoop/ozone/om/helpers/OmBucketArgs.java | 4 +-
.../hadoop/ozone/om/helpers/OmBucketInfo.java | 18 +----
.../apache/hadoop/ozone/protocolPB/OMPBHelper.java | 54 -------------
.../hadoop/ozone/om/helpers/TestOmBucketArgs.java | 2 +-
.../hadoop/ozone/om/helpers/TestOmBucketInfo.java | 11 ++-
.../hadoop/fs/ozone/TestOzoneFSInputStream.java | 3 +-
.../hadoop/fs/ozone/TestOzoneFileChecksum.java | 2 +-
.../hadoop/fs/ozone/TestRootedOzoneFileSystem.java | 8 +-
.../ozone/client/rpc/TestECKeyOutputStream.java | 5 +-
.../rpc/TestOzoneClientMultipartUploadWithFSO.java | 2 +-
.../client/rpc/TestOzoneRpcClientWithRatis.java | 3 +-
.../ozone/container/TestECContainerRecovery.java | 3 +-
.../apache/hadoop/ozone/om/OzoneConfigUtil.java | 25 ++----
.../hadoop/ozone/om/TestOzoneConfigUtil.java | 14 ++--
.../bucket/TestOMBucketSetPropertyRequest.java | 13 ++-
19 files changed, 81 insertions(+), 220 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/client/DefaultReplicationConfig.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/client/DefaultReplicationConfig.java
index 18d0326bbd..3e3990b8b4 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/client/DefaultReplicationConfig.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/client/DefaultReplicationConfig.java
@@ -26,88 +26,53 @@ import java.util.Objects;
*/
public class DefaultReplicationConfig {
- private ReplicationType type;
- private ReplicationFactor factor;
- private ECReplicationConfig ecReplicationConfig;
-
- public DefaultReplicationConfig(ReplicationType type,
- ReplicationFactor factor) {
- this.type = type;
- this.factor = factor;
- this.ecReplicationConfig = null;
- }
+ private final ECReplicationConfig ecReplicationConfig;
+ private final ReplicationConfig replicationConfig;
public DefaultReplicationConfig(ReplicationConfig replicationConfig) {
- this.type =
- ReplicationType.fromProto(replicationConfig.getReplicationType());
+ this.replicationConfig = replicationConfig;
if (replicationConfig instanceof ECReplicationConfig) {
- this.ecReplicationConfig = (ECReplicationConfig) replicationConfig;
+ ecReplicationConfig = (ECReplicationConfig) replicationConfig;
} else {
- this.factor =
- ReplicationFactor.valueOf(replicationConfig.getRequiredNodes());
+ ecReplicationConfig = null;
}
}
- public DefaultReplicationConfig(ReplicationType type,
- ECReplicationConfig ecReplicationConfig) {
- this.type = type;
- this.factor = null;
- this.ecReplicationConfig = ecReplicationConfig;
- }
-
- public DefaultReplicationConfig(ReplicationType type,
- ReplicationFactor factor, ECReplicationConfig ecReplicationConfig) {
- this.type = type;
- this.factor = factor;
- this.ecReplicationConfig = ecReplicationConfig;
- }
-
- public DefaultReplicationConfig(
- org.apache.hadoop.hdds.protocol.proto.HddsProtos.DefaultReplicationConfig
- defaultReplicationConfig) {
- this.type = ReplicationType.fromProto(defaultReplicationConfig.getType());
- if (defaultReplicationConfig.hasEcReplicationConfig()) {
- this.ecReplicationConfig = new ECReplicationConfig(
- defaultReplicationConfig.getEcReplicationConfig());
- } else {
- this.factor =
- ReplicationFactor.fromProto(defaultReplicationConfig.getFactor());
+ public static DefaultReplicationConfig fromProto(
+ HddsProtos.DefaultReplicationConfig proto) {
+ if (proto == null) {
+ throw new IllegalArgumentException(
+ "Invalid argument: default replication config is null");
}
+ ReplicationConfig config = proto.hasEcReplicationConfig()
+ ? new ECReplicationConfig(proto.getEcReplicationConfig())
+ : ReplicationConfig.fromProtoTypeAndFactor(
+ proto.getType(), proto.getFactor());
+ return new DefaultReplicationConfig(config);
}
public ReplicationType getType() {
- return this.type;
- }
-
- public ReplicationFactor getFactor() {
- return this.factor;
+ return ReplicationType.fromProto(replicationConfig.getReplicationType());
}
public DefaultReplicationConfig copy() {
- return new DefaultReplicationConfig(this.type, this.factor,
- this.ecReplicationConfig);
+ return new DefaultReplicationConfig(replicationConfig);
}
- public ECReplicationConfig getEcReplicationConfig() {
- return this.ecReplicationConfig;
- }
-
- public int getRequiredNodes() {
- if (this.type == ReplicationType.EC) {
- return ecReplicationConfig.getRequiredNodes();
- }
- return this.factor.getValue();
+ public ReplicationConfig getReplicationConfig() {
+ return replicationConfig;
}
public HddsProtos.DefaultReplicationConfig toProto() {
final HddsProtos.DefaultReplicationConfig.Builder builder =
HddsProtos.DefaultReplicationConfig.newBuilder()
- .setType(ReplicationType.toProto(this.type));
- if (this.factor != null) {
- builder.setFactor(ReplicationFactor.toProto(this.factor));
- }
+ .setType(replicationConfig.getReplicationType());
if (this.ecReplicationConfig != null) {
builder.setEcReplicationConfig(this.ecReplicationConfig.toProto());
+ } else {
+ ReplicationFactor factor =
+ ReplicationFactor.valueOf(replicationConfig.getRequiredNodes());
+ builder.setFactor(factor.toProto());
}
return builder.build();
}
@@ -121,14 +86,17 @@ public class DefaultReplicationConfig {
return false;
}
DefaultReplicationConfig that = (DefaultReplicationConfig) o;
- return Objects.equals(type, that.type) && Objects
- .equals(factor, that.factor) && Objects
- .equals(ecReplicationConfig, that.ecReplicationConfig);
+ return Objects.equals(replicationConfig, that.replicationConfig);
}
@Override
public int hashCode() {
- return Objects.hash(type, factor, ecReplicationConfig);
+ return Objects.hash(replicationConfig);
+ }
+
+ @Override
+ public String toString() {
+ return replicationConfig.toString();
}
}
diff --git
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
index b0a8e965c4..35b7465565 100644
---
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
+++
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneBucket.java
@@ -247,12 +247,7 @@ public class OzoneBucket extends WithMetadata {
quotaInNamespace, bucketLayout, owner);
this.bucketLayout = bucketLayout;
if (defaultReplicationConfig != null) {
- this.defaultReplication =
- defaultReplicationConfig.getType() == ReplicationType.EC ?
- defaultReplicationConfig.getEcReplicationConfig() :
- ReplicationConfig
- .fromTypeAndFactor(defaultReplicationConfig.getType(),
- defaultReplicationConfig.getFactor());
+ defaultReplication = defaultReplicationConfig.getReplicationConfig();
} else {
// Bucket level replication is not configured by default.
this.defaultReplication = null;
diff --git
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
index 3eae9d1d7d..e91a71a856 100644
---
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
+++
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/MockOmTransport.java
@@ -18,10 +18,7 @@
package org.apache.hadoop.ozone.client;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
-import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
-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.proto.HddsProtos;
import org.apache.hadoop.hdds.scm.container.common.helpers.ExcludeList;
@@ -285,20 +282,11 @@ public class MockOmTransport implements OmTransport {
BucketInfo bucketInfo = buckets.get(infoBucketRequest.getVolumeName())
.get(infoBucketRequest.getBucketName());
if (!bucketInfo.hasDefaultReplicationConfig()) {
- final ReplicationConfig replicationConfig = ReplicationConfig
- .getDefault(new OzoneConfiguration());
-
- bucketInfo = bucketInfo.toBuilder().setDefaultReplicationConfig(
- new DefaultReplicationConfig(
-
ReplicationType.fromProto(replicationConfig.getReplicationType()),
- replicationConfig
- .getReplicationType() != HddsProtos.ReplicationType.EC ?
- ReplicationFactor
- .valueOf(replicationConfig.getRequiredNodes()) :
- null, replicationConfig
- .getReplicationType() == HddsProtos.ReplicationType.EC ?
- (ECReplicationConfig) replicationConfig :
- null).toProto()).build();
+ bucketInfo = bucketInfo.toBuilder()
+ .setDefaultReplicationConfig(new DefaultReplicationConfig(
+ ReplicationConfig.getDefault(new OzoneConfiguration())).toProto()
+ )
+ .build();
}
return InfoBucketResponse.newBuilder()
.setBucketInfo(bucketInfo)
diff --git
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
index 237ed34e5b..e86e70d70e 100644
---
a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
+++
b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/TestOzoneECClient.java
@@ -22,7 +22,6 @@ import org.apache.hadoop.conf.StorageUnit;
import org.apache.hadoop.hdds.client.BlockID;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
-import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
@@ -217,7 +216,7 @@ public class TestOzoneECClient {
public void testCreateBucketWithDefaultReplicationConfig()
throws IOException {
final OzoneBucket bucket = writeIntoECKey(inputChunks, keyName,
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(dataBlocks, parityBlocks,
ECReplicationConfig.EcCodec.RS, chunkSize)));
@@ -286,7 +285,7 @@ public class TestOzoneECClient {
String.valueOf(i % 9).getBytes(UTF_8)[0]);
}
final OzoneBucket bucket = writeIntoECKey(offset, numChunks * chunkSize,
- inputData, keyName, new
DefaultReplicationConfig(ReplicationType.EC,
+ inputData, keyName, new DefaultReplicationConfig(
new ECReplicationConfig(dataBlocks, parityBlocks,
ECReplicationConfig.EcCodec.RS, chunkSize)));
OzoneKey key = bucket.getKey(keyName);
@@ -320,7 +319,7 @@ public class TestOzoneECClient {
Byte.parseByte("1"));
writeIntoECKey(firstSmallChunk, keyName,
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(dataBlocks, parityBlocks,
ECReplicationConfig.EcCodec.RS, chunkSize)));
OzoneManagerProtocolProtos.KeyLocationList blockList =
@@ -447,7 +446,7 @@ public class TestOzoneECClient {
Arrays.fill(inputData, (numFullChunks * chunkSize),
((numFullChunks * chunkSize)) + partialChunkLen - 1, (byte) 1);
final OzoneBucket bucket = writeIntoECKey(inputData, keyName,
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(dataBlocks, parityBlocks,
ECReplicationConfig.EcCodec.RS, chunkSize)));
OzoneKey key = bucket.getKey(keyName);
@@ -458,7 +457,7 @@ public class TestOzoneECClient {
public void testCommitKeyInfo()
throws IOException {
final OzoneBucket bucket = writeIntoECKey(inputChunks, keyName,
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(dataBlocks, parityBlocks,
ECReplicationConfig.EcCodec.RS, chunkSize)));
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketArgs.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketArgs.java
index f5a4c1930c..f8c752aab2 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketArgs.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketArgs.java
@@ -344,9 +344,11 @@ public final class OmBucketArgs extends WithMetadata
implements Auditable {
// OmBucketArgs ctor already has more arguments, so setting the default
// replication config separately.
if (bucketArgs.hasDefaultReplicationConfig()) {
- omBucketArgs.setDefaultReplicationConfig(new DefaultReplicationConfig(
+ omBucketArgs.setDefaultReplicationConfig(
+ DefaultReplicationConfig.fromProto(
bucketArgs.getDefaultReplicationConfig()));
}
+
if (bucketArgs.hasQuotaInBytes()) {
omBucketArgs.setQuotaInBytes(bucketArgs.getQuotaInBytes());
}
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
index 846b71cc33..1b6b007ae7 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmBucketInfo.java
@@ -28,12 +28,8 @@ import java.util.Objects;
import java.util.stream.Collectors;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
-import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
-import org.apache.hadoop.hdds.client.ReplicationFactor;
-import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.protocol.StorageType;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.ozone.OzoneAcl;
import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.audit.Auditable;
@@ -415,16 +411,7 @@ public final class OmBucketInfo extends WithObjectID
implements Auditable {
}
public void setDefaultReplicationConfig(ReplicationConfig replicationConfig)
{
- this.defaultReplicationConfig = new DefaultReplicationConfig(
- ReplicationType.fromProto(replicationConfig.getReplicationType()),
- replicationConfig
- .getReplicationType() == HddsProtos.ReplicationType.EC ?
- null :
- ReplicationFactor.valueOf(replicationConfig.getRequiredNodes()),
- replicationConfig
- .getReplicationType() == HddsProtos.ReplicationType.EC ?
- ((ECReplicationConfig) replicationConfig) :
- null);
+ defaultReplicationConfig = new DefaultReplicationConfig(replicationConfig);
}
/**
@@ -681,7 +668,8 @@ public final class OmBucketInfo extends WithObjectID
implements Auditable {
}
if (bucketInfo.hasDefaultReplicationConfig()) {
obib.setDefaultReplicationConfig(
- OMPBHelper.convert(bucketInfo.getDefaultReplicationConfig()));
+ DefaultReplicationConfig.fromProto(
+ bucketInfo.getDefaultReplicationConfig()));
}
if (bucketInfo.hasObjectID()) {
obib.setObjectID(bucketInfo.getObjectID());
diff --git
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/protocolPB/OMPBHelper.java
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/protocolPB/OMPBHelper.java
index 78d3d46782..2b6a897cd4 100644
---
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/protocolPB/OMPBHelper.java
+++
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/protocolPB/OMPBHelper.java
@@ -27,11 +27,6 @@ import
org.apache.hadoop.fs.MD5MD5CRC32CastagnoliFileChecksum;
import org.apache.hadoop.fs.MD5MD5CRC32FileChecksum;
import org.apache.hadoop.fs.MD5MD5CRC32GzipFileChecksum;
import org.apache.hadoop.fs.Options;
-import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
-import org.apache.hadoop.hdds.client.ECReplicationConfig;
-import org.apache.hadoop.hdds.client.ReplicationFactor;
-import org.apache.hadoop.hdds.client.ReplicationType;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.io.DataInputBuffer;
import org.apache.hadoop.io.DataOutputBuffer;
import org.apache.hadoop.io.MD5Hash;
@@ -169,55 +164,6 @@ public final class OMPBHelper {
ezKeyVersionName);
}
- public static DefaultReplicationConfig convert(
- HddsProtos.DefaultReplicationConfig defaultReplicationConfig) {
- if (defaultReplicationConfig == null) {
- throw new IllegalArgumentException(
- "Invalid argument: default replication config" + " is null");
- }
-
- final ReplicationType type =
- ReplicationType.fromProto(defaultReplicationConfig.getType());
- DefaultReplicationConfig defaultReplicationConfigObj = null;
- switch (type) {
- case EC:
- defaultReplicationConfigObj = new DefaultReplicationConfig(type,
- new ECReplicationConfig(
- defaultReplicationConfig.getEcReplicationConfig()));
- break;
- default:
- final ReplicationFactor factor =
- ReplicationFactor.fromProto(defaultReplicationConfig.getFactor());
- defaultReplicationConfigObj = new DefaultReplicationConfig(type, factor);
- }
- return defaultReplicationConfigObj;
- }
-
- public static HddsProtos.DefaultReplicationConfig convert(
- DefaultReplicationConfig defaultReplicationConfig) {
- if (defaultReplicationConfig == null) {
- throw new IllegalArgumentException(
- "Invalid argument: default replication config" + " is null");
- }
-
- final HddsProtos.DefaultReplicationConfig.Builder builder =
- HddsProtos.DefaultReplicationConfig.newBuilder();
- builder.setType(ReplicationType.toProto(
- defaultReplicationConfig.getType()));
-
- if (defaultReplicationConfig.getFactor() != null) {
- builder.setFactor(ReplicationFactor.toProto(
- defaultReplicationConfig.getFactor()));
- }
-
- if (defaultReplicationConfig.getEcReplicationConfig() != null) {
- builder.setEcReplicationConfig(
- defaultReplicationConfig.getEcReplicationConfig().toProto());
- }
-
- return builder.build();
- }
-
public static FileChecksum convert(FileChecksumProto proto)
throws IOException {
if (proto == null) {
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketArgs.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketArgs.java
index 251033ac27..509714aaf0 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketArgs.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketArgs.java
@@ -79,7 +79,7 @@ public class TestOmBucketArgs {
.setBucketName("bucket")
.setVolumeName("volume")
.setDefaultReplicationConfig(new DefaultReplicationConfig(
- EC, new ECReplicationConfig(3, 2)))
+ new ECReplicationConfig(3, 2)))
.build();
argsFromProto = OmBucketArgs.getFromProtobuf(
diff --git
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
index aa64fd2278..17dc6eb9e7 100644
---
a/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
+++
b/hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/om/helpers/TestOmBucketInfo.java
@@ -19,6 +19,7 @@ package org.apache.hadoop.ozone.om.helpers;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
+import org.apache.hadoop.hdds.client.ReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.protocol.StorageType;
@@ -145,7 +146,7 @@ public class TestOmBucketInfo {
"defaultUser", IAccessAuthorizer.ACLType.WRITE_ACL,
OzoneAcl.AclScope.ACCESS)))
.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2))).build();
protobuf = omBucketInfo.getProtobuf();
@@ -161,10 +162,8 @@ public class TestOmBucketInfo {
recovered = OmBucketInfo.getFromProtobuf(protobuf);
Assert.assertEquals(ReplicationType.EC,
recovered.getDefaultReplicationConfig().getType());
- ECReplicationConfig config =
- recovered.getDefaultReplicationConfig().getEcReplicationConfig();
- Assert.assertNotNull(config);
- Assert.assertEquals(3, config.getData());
- Assert.assertEquals(2, config.getParity());
+ ReplicationConfig config =
+ recovered.getDefaultReplicationConfig().getReplicationConfig();
+ Assert.assertEquals(new ECReplicationConfig(3, 2), config);
}
}
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSInputStream.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSInputStream.java
index df699aff6e..46c14bd9de 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSInputStream.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFSInputStream.java
@@ -34,7 +34,6 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
-import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.StorageType;
import org.apache.hadoop.io.IOUtils;
@@ -115,7 +114,7 @@ public class TestOzoneFSInputStream {
builder.setStorageType(StorageType.DISK);
builder.setBucketLayout(BucketLayout.FILE_SYSTEM_OPTIMIZED);
builder.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2, ECReplicationConfig.EcCodec.RS,
1024)));
BucketArgs omBucketArgs = builder.build();
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileChecksum.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileChecksum.java
index 25d0529c78..67d3684e84 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileChecksum.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileChecksum.java
@@ -132,7 +132,7 @@ public class TestOzoneFileChecksum {
.setStorageType(StorageType.DISK)
.setBucketLayout(BucketLayout.LEGACY)
.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig("RS-3-2-1024k")))
.build();
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestRootedOzoneFileSystem.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestRootedOzoneFileSystem.java
index 9f34eb89ac..4aefd48fb2 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestRootedOzoneFileSystem.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestRootedOzoneFileSystem.java
@@ -39,8 +39,8 @@ import org.apache.hadoop.fs.permission.FsPermission;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
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.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.StorageType;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -2022,8 +2022,8 @@ public class TestRootedOzoneFileSystem {
builder.setStorageType(StorageType.DISK);
builder.setBucketLayout(BucketLayout.LEGACY);
builder.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.STAND_ALONE,
- ReplicationFactor.ONE));
+ new DefaultReplicationConfig(StandaloneReplicationConfig.getInstance(
+ HddsProtos.ReplicationFactor.ONE)));
BucketArgs omBucketArgs = builder.build();
String vol = UUID.randomUUID().toString();
String buck = UUID.randomUUID().toString();
@@ -2053,7 +2053,7 @@ public class TestRootedOzoneFileSystem {
builder.setStorageType(StorageType.DISK);
builder.setBucketLayout(BucketLayout.LEGACY);
builder.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig("RS-3-2-1024")));
BucketArgs omBucketArgs = builder.build();
String vol = UUID.randomUUID().toString();
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestECKeyOutputStream.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestECKeyOutputStream.java
index 068bdc7212..2766871be6 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestECKeyOutputStream.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestECKeyOutputStream.java
@@ -22,7 +22,6 @@ import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
-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.datanode.proto.ContainerProtos;
@@ -169,7 +168,7 @@ public class TestECKeyOutputStream {
OzoneVolume volume = objectStore.getVolume(volumeName);
final BucketArgs.Builder bucketArgs = BucketArgs.newBuilder();
bucketArgs.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2, ECReplicationConfig.EcCodec.RS,
chunkSize)));
@@ -366,7 +365,7 @@ public class TestECKeyOutputStream {
OzoneVolume volume = objectStore.getVolume(volumeName);
final BucketArgs.Builder bucketArgs = BucketArgs.newBuilder();
bucketArgs.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2, ECReplicationConfig.EcCodec.RS,
chunkSize)));
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneClientMultipartUploadWithFSO.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneClientMultipartUploadWithFSO.java
index d268024971..2a34d5c5bb 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneClientMultipartUploadWithFSO.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneClientMultipartUploadWithFSO.java
@@ -330,7 +330,7 @@ public class TestOzoneClientMultipartUploadWithFSO {
throws IOException {
final BucketArgs.Builder bucketArgs = BucketArgs.newBuilder();
bucketArgs.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2, ECReplicationConfig.EcCodec.RS,
1024)));
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
index ca26ca177c..c84f6f3141 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestOzoneRpcClientWithRatis.java
@@ -244,7 +244,8 @@ public class TestOzoneRpcClientWithRatis extends
TestOzoneRpcClientAbstract {
final String bucketName = "buck-" + UUID.randomUUID();
final BucketArgs bucketArgs = BucketArgs.newBuilder()
.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.RATIS, THREE))
+ new DefaultReplicationConfig(ReplicationConfig.fromTypeAndFactor(
+ ReplicationType.RATIS, THREE)))
.build();
volume.createBucket(bucketName, bucketArgs);
final OzoneBucket bucket = volume.getBucket(bucketName);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestECContainerRecovery.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestECContainerRecovery.java
index 1f08d0e101..75b426fec3 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestECContainerRecovery.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/TestECContainerRecovery.java
@@ -20,7 +20,6 @@ import org.apache.hadoop.conf.StorageUnit;
import org.apache.hadoop.hdds.HddsConfigKeys;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
-import org.apache.hadoop.hdds.client.ReplicationType;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -169,7 +168,7 @@ public class TestECContainerRecovery {
OzoneVolume volume = objectStore.getVolume(volumeName);
final BucketArgs.Builder bucketArgs = BucketArgs.newBuilder();
bucketArgs.setDefaultReplicationConfig(
- new DefaultReplicationConfig(ReplicationType.EC,
+ new DefaultReplicationConfig(
new ECReplicationConfig(3, 2, ECReplicationConfig.EcCodec.RS,
chunkSize)));
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneConfigUtil.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneConfigUtil.java
index ab24303e9e..b73a3b7173 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneConfigUtil.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneConfigUtil.java
@@ -19,8 +19,6 @@ package org.apache.hadoop.ozone.om;
import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
-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.proto.HddsProtos;
import org.apache.hadoop.security.UserGroupInformation;
@@ -106,25 +104,12 @@ public final class OzoneConfigUtil {
// Client passed the replication config, so let's use it.
replicationConfig = ReplicationConfig
.fromProto(clientType, clientFactor, clientECReplicationConfig);
- } else {
+ } else if (bucketDefaultReplicationConfig != null) {
// type is NONE, so, let's look for the bucket defaults.
- if (bucketDefaultReplicationConfig != null) {
- boolean hasECReplicationConfig = bucketDefaultReplicationConfig
- .getType() == ReplicationType.EC && bucketDefaultReplicationConfig
- .getEcReplicationConfig() != null;
- // Since Bucket defaults are available, let's inherit
- replicationConfig = ReplicationConfig.fromProto(
- ReplicationType.toProto(bucketDefaultReplicationConfig.getType()),
- ReplicationFactor
- .toProto(bucketDefaultReplicationConfig.getFactor()),
- hasECReplicationConfig ?
- bucketDefaultReplicationConfig.getEcReplicationConfig()
- .toProto() :
- null);
- } else {
- // if bucket defaults also not available, then use server defaults.
- replicationConfig = omDefaultReplicationConfig;
- }
+ replicationConfig =
bucketDefaultReplicationConfig.getReplicationConfig();
+ } else {
+ // if bucket defaults also not available, then use server defaults.
+ replicationConfig = omDefaultReplicationConfig;
}
return replicationConfig;
}
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOzoneConfigUtil.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOzoneConfigUtil.java
index 697041cc58..48a6f69676 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOzoneConfigUtil.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOzoneConfigUtil.java
@@ -20,8 +20,6 @@ import org.apache.hadoop.hdds.client.DefaultReplicationConfig;
import org.apache.hadoop.hdds.client.ECReplicationConfig;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.client.ReplicationConfig;
-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.proto.HddsProtos;
import org.apache.hadoop.ozone.OzoneConfigKeys;
@@ -55,7 +53,7 @@ public class TestOzoneConfigUtil {
.resolveReplicationConfigPreference(noneType, zeroFactor,
clientECReplicationConfig, bucketECConfig,
ratis3ReplicationConfig);
// Client has no preference, so we should bucket defaults as we passed.
- Assert.assertEquals(bucketECConfig.getEcReplicationConfig(),
+ Assert.assertEquals(bucketECConfig.getReplicationConfig(),
replicationConfig);
}
@@ -92,19 +90,17 @@ public class TestOzoneConfigUtil {
*/
@Test
public void testResolveClientSideRepConfigWhenBucketHasEC3() {
+ ReplicationConfig ratisReplicationConfig =
+ RatisReplicationConfig.getInstance(HddsProtos.ReplicationFactor.THREE);
DefaultReplicationConfig ratisBucketDefaults =
- new DefaultReplicationConfig(ReplicationType.RATIS,
- ReplicationFactor.THREE);
+ new DefaultReplicationConfig(ratisReplicationConfig);
ReplicationConfig replicationConfig = OzoneConfigUtil
.resolveReplicationConfigPreference(noneType, zeroFactor,
clientECReplicationConfig, ratisBucketDefaults,
ratis3ReplicationConfig);
// Client has no preference of type and bucket has ratis defaults, so it
// should return ratis.
- Assert.assertEquals(ratisBucketDefaults.getType().name(),
- replicationConfig.getReplicationType().name());
- Assert.assertEquals(ratisBucketDefaults.getFactor(),
- ReplicationFactor.valueOf(replicationConfig.getRequiredNodes()));
+ Assert.assertEquals(ratisReplicationConfig, replicationConfig);
}
@Test
diff --git
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
index 2d96aa9571..a96b92a7b4 100644
---
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
+++
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
@@ -261,7 +261,7 @@ public class TestOMBucketSetPropertyRequest extends
TestBucketRequest {
BucketArgs bucketArgs = OmBucketArgs.newBuilder()
.setDefaultReplicationConfig(new DefaultReplicationConfig(
- EC, new ECReplicationConfig(3, 2)))
+ new ECReplicationConfig(3, 2)))
.setBucketName(bucketName)
.setVolumeName(volumeName)
.setIsVersionEnabled(true)
@@ -309,7 +309,7 @@ public class TestOMBucketSetPropertyRequest extends
TestBucketRequest {
BucketArgs bucketArgs = OmBucketArgs.newBuilder()
.setDefaultReplicationConfig(new DefaultReplicationConfig(
- EC, new ECReplicationConfig(3, 2)))
+ new ECReplicationConfig(3, 2)))
.setBucketName(bucketName)
.setVolumeName(volumeName)
.setIsVersionEnabled(true)
@@ -493,7 +493,7 @@ public class TestOMBucketSetPropertyRequest extends
TestBucketRequest {
.setVolumeName(volumeName2)
.setBucketName(bucketName2)
.setDefaultReplicationConfig(new DefaultReplicationConfig(
- EC, new ECReplicationConfig(3, 2)));
+ new ECReplicationConfig(3, 2)));
OMRequestTestUtils.addVolumeToDB(volumeName2, omMetadataManager);
OMRequestTestUtils.addBucketToDB(omMetadataManager, bucketInfo);
@@ -522,11 +522,8 @@ public class TestOMBucketSetPropertyRequest extends
TestBucketRequest {
Assert.assertEquals(EC,
dbBucketInfoAfter.getDefaultReplicationConfig().getType());
Assert.assertEquals(
- dbBucketInfoBefore.getDefaultReplicationConfig().getType(),
- dbBucketInfoAfter.getDefaultReplicationConfig().getType());
- Assert.assertEquals(
- dbBucketInfoBefore.getDefaultReplicationConfig().getFactor(),
- dbBucketInfoAfter.getDefaultReplicationConfig().getFactor());
+ dbBucketInfoBefore.getDefaultReplicationConfig(),
+ dbBucketInfoAfter.getDefaultReplicationConfig());
Assert.assertEquals(20 * GB,
dbBucketInfoAfter.getQuotaInBytes());
Assert.assertEquals(1000L,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]