This is an automated email from the ASF dual-hosted git repository.
ljain 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 9f716b8 HDDS-6482. Refactor Ratis Rpc and TLS config code. (#3222)
9f716b8 is described below
commit 9f716b8aa7f6c5a2e886209cf83b83dc23dc639a
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Thu Mar 24 18:14:22 2022 +0800
HDDS-6482. Refactor Ratis Rpc and TLS config code. (#3222)
---
.../org/apache/hadoop/hdds/ratis/RatisHelper.java | 66 ++++++++++++++++++----
.../CreatePipelineCommandHandler.java | 13 ++++-
.../transport/server/ratis/XceiverServerRatis.java | 12 +---
.../TestCreatePipelineCommandHandler.java | 36 ++----------
.../apache/hadoop/hdds/scm/ha/HASecurityUtils.java | 37 ++----------
.../org/apache/hadoop/hdds/scm/ha/RatisUtil.java | 4 +-
.../hadoop/hdds/scm/ha/SCMRatisServerImpl.java | 4 +-
.../org/apache/hadoop/ozone/RatisTestHelper.java | 5 +-
.../ozone/om/ratis/OzoneManagerRatisServer.java | 15 ++---
9 files changed, 88 insertions(+), 104 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/RatisHelper.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/RatisHelper.java
index c1cd865..8a6193d 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/RatisHelper.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/ratis/RatisHelper.java
@@ -26,6 +26,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.function.BiFunction;
import java.util.stream.Collectors;
import org.apache.hadoop.hdds.StringUtils;
@@ -182,9 +183,9 @@ public final class RatisHelper {
ScmConfigKeys.DFS_CONTAINER_RATIS_RPC_TYPE_DEFAULT));
}
- public static RaftClient newRaftClient(RaftPeer leader,
- ConfigurationSource conf, GrpcTlsConfig tlsConfig) {
- return newRaftClient(getRpcType(conf), leader,
+ public static BiFunction<RaftPeer, GrpcTlsConfig, RaftClient> newRaftClient(
+ ConfigurationSource conf) {
+ return (leader, tlsConfig) -> newRaftClient(getRpcType(conf), leader,
RatisHelper.createRetryPolicy(conf), tlsConfig, conf);
}
@@ -212,27 +213,72 @@ public final class RatisHelper {
LOG.trace("newRaftClient: {}, leader={}, group={}",
rpcType, leader, group);
}
- final RaftProperties properties = new RaftProperties();
-
- RaftConfigKeys.Rpc.setType(properties, rpcType);
+ final RaftProperties properties = newRaftProperties(rpcType);
// Set the ratis client headers which are matching with regex.
createRaftClientProperties(ozoneConfiguration, properties);
- RaftClient.Builder builder = RaftClient.newBuilder()
+ return RaftClient.newBuilder()
.setRaftGroup(group)
.setLeaderId(leader)
.setProperties(properties)
- .setRetryPolicy(retryPolicy);
+ .setParameters(setClientTlsConf(rpcType, tlsConfig))
+ .setRetryPolicy(retryPolicy)
+ .build();
+ }
+ public static Parameters setClientTlsConf(RpcType rpcType,
+ GrpcTlsConfig tlsConfig) {
// TODO: GRPC TLS only for now, netty/hadoop RPC TLS support later.
if (tlsConfig != null && rpcType == SupportedRpcType.GRPC) {
Parameters parameters = new Parameters();
+ setAdminTlsConf(parameters, tlsConfig);
+ setClientTlsConf(parameters, tlsConfig);
+ return parameters;
+ }
+ return null;
+ }
+
+ private static void setAdminTlsConf(Parameters parameters,
+ GrpcTlsConfig tlsConfig) {
+ if (tlsConfig != null) {
GrpcConfigKeys.Admin.setTlsConf(parameters, tlsConfig);
+ }
+ }
+
+ private static void setClientTlsConf(Parameters parameters,
+ GrpcTlsConfig tlsConfig) {
+ if (tlsConfig != null) {
GrpcConfigKeys.Client.setTlsConf(parameters, tlsConfig);
- builder.setParameters(parameters);
}
- return builder.build();
+ }
+
+ public static Parameters setServerTlsConf(
+ GrpcTlsConfig serverConf, GrpcTlsConfig clientConf) {
+ final Parameters parameters = new Parameters();
+ if (serverConf != null) {
+ GrpcConfigKeys.Server.setTlsConf(parameters, serverConf);
+ GrpcConfigKeys.TLS.setConf(parameters, serverConf);
+ setAdminTlsConf(parameters, serverConf);
+ }
+ setClientTlsConf(parameters, clientConf);
+ return parameters;
+ }
+
+ public static Parameters setServerTlsConf(GrpcTlsConfig tlsConf) {
+ return setServerTlsConf(tlsConf, tlsConf);
+ }
+
+ public static RaftProperties newRaftProperties(RpcType rpcType) {
+ final RaftProperties properties = new RaftProperties();
+ setRpcType(properties, rpcType);
+ return properties;
+ }
+
+ public static RaftProperties setRpcType(RaftProperties properties,
+ RpcType rpcType) {
+ RaftConfigKeys.Rpc.setType(properties, rpcType);
+ return properties;
}
/**
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/CreatePipelineCommandHandler.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/CreatePipelineCommandHandler.java
index 687b6be..202edea 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/CreatePipelineCommandHandler.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/CreatePipelineCommandHandler.java
@@ -19,6 +19,7 @@ package
org.apache.hadoop.ozone.container.common.statemachine.commandhandler;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicLong;
import java.util.List;
+import java.util.function.BiFunction;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
@@ -35,6 +36,7 @@ import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
import org.apache.hadoop.util.Time;
import org.apache.ratis.client.RaftClient;
+import org.apache.ratis.grpc.GrpcTlsConfig;
import org.apache.ratis.protocol.exceptions.AlreadyExistsException;
import org.apache.ratis.protocol.RaftGroup;
import org.apache.ratis.protocol.RaftGroupId;
@@ -51,7 +53,7 @@ public class CreatePipelineCommandHandler implements
CommandHandler {
LoggerFactory.getLogger(CreatePipelineCommandHandler.class);
private final AtomicLong invocationCount = new AtomicLong(0);
- private final ConfigurationSource conf;
+ private final BiFunction<RaftPeer, GrpcTlsConfig, RaftClient> newRaftClient;
private long totalTime;
@@ -59,7 +61,12 @@ public class CreatePipelineCommandHandler implements
CommandHandler {
* Constructs a createPipelineCommand handler.
*/
public CreatePipelineCommandHandler(ConfigurationSource conf) {
- this.conf = conf;
+ this(RatisHelper.newRaftClient(conf));
+ }
+
+ CreatePipelineCommandHandler(
+ BiFunction<RaftPeer, GrpcTlsConfig, RaftClient> newRaftClient) {
+ this.newRaftClient = newRaftClient;
}
/**
@@ -94,7 +101,7 @@ public class CreatePipelineCommandHandler implements
CommandHandler {
d -> !d.getUuid().equals(dn.getUuid()))
.forEach(d -> {
final RaftPeer peer = RatisHelper.toRaftPeer(d);
- try (RaftClient client = RatisHelper.newRaftClient(peer, conf,
+ try (RaftClient client = newRaftClient.apply(peer,
ozoneContainer.getTlsClientConfig())) {
client.getGroupManagementApi(peer.getId()).add(group);
} catch (AlreadyExistsException ae) {
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
index aad9342..c8d715c 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
@@ -77,7 +77,6 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import io.opentracing.Scope;
import io.opentracing.Span;
import io.opentracing.util.GlobalTracer;
-import org.apache.ratis.RaftConfigKeys;
import org.apache.ratis.conf.Parameters;
import org.apache.ratis.conf.RaftProperties;
import org.apache.ratis.grpc.GrpcConfigKeys;
@@ -426,7 +425,7 @@ public final class XceiverServerRatis implements
XceiverServerSpi {
OzoneConfigKeys.DFS_CONTAINER_RATIS_RPC_TYPE_KEY,
OzoneConfigKeys.DFS_CONTAINER_RATIS_RPC_TYPE_DEFAULT);
final RpcType rpc = SupportedRpcType.valueOfIgnoreCase(rpcType);
- RaftConfigKeys.Rpc.setType(properties, rpc);
+ RatisHelper.setRpcType(properties, rpc);
return rpc;
}
@@ -461,24 +460,19 @@ public final class XceiverServerRatis implements
XceiverServerSpi {
// configuration for both.
private static Parameters createTlsParameters(SecurityConfig conf,
CertificateClient caClient) throws IOException {
- Parameters parameters = new Parameters();
-
if (conf.isSecurityEnabled() && conf.isGrpcTlsEnabled()) {
List<X509Certificate> caList = HAUtils.buildCAX509List(caClient,
conf.getConfiguration());
GrpcTlsConfig serverConfig = new GrpcTlsConfig(
caClient.getPrivateKey(), caClient.getCertificate(),
caList, true);
- GrpcConfigKeys.Server.setTlsConf(parameters, serverConfig);
- GrpcConfigKeys.Admin.setTlsConf(parameters, serverConfig);
-
GrpcTlsConfig clientConfig = new GrpcTlsConfig(
caClient.getPrivateKey(), caClient.getCertificate(),
caList, false);
- GrpcConfigKeys.Client.setTlsConf(parameters, clientConfig);
+ return RatisHelper.setServerTlsConf(serverConfig, clientConfig);
}
- return parameters;
+ return null;
}
@Override
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCreatePipelineCommandHandler.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCreatePipelineCommandHandler.java
index d23f1c4..8f45118 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCreatePipelineCommandHandler.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCreatePipelineCommandHandler.java
@@ -21,30 +21,23 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
-import org.apache.hadoop.hdds.protocol.proto
- .StorageContainerDatanodeProtocolProtos.CreatePipelineCommandProto;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.CreatePipelineCommandProto;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import
org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine;
-import org.apache.hadoop.ozone.container.common.statemachine
- .SCMConnectionManager;
+import
org.apache.hadoop.ozone.container.common.statemachine.SCMConnectionManager;
import org.apache.hadoop.ozone.container.common.statemachine.StateContext;
-import org.apache.hadoop.ozone.container.common.transport.server
- .XceiverServerSpi;
+import
org.apache.hadoop.ozone.container.common.transport.server.XceiverServerSpi;
import org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer;
import org.apache.hadoop.ozone.protocol.commands.CreatePipelineCommand;
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
import org.apache.ratis.client.RaftClient;
import org.apache.ratis.client.api.GroupManagementApi;
-import org.apache.ratis.conf.RaftProperties;
-import org.apache.ratis.protocol.ClientId;
import org.apache.ratis.protocol.RaftGroup;
import org.apache.ratis.protocol.RaftPeerId;
-import org.apache.ratis.retry.RetryPolicy;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
-import org.mockito.stubbing.Answer;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@@ -75,30 +68,9 @@ public class TestCreatePipelineCommandHandler {
connectionManager = Mockito.mock(SCMConnectionManager.class);
raftClient = Mockito.mock(RaftClient.class);
raftClientGroupManager = Mockito.mock(GroupManagementApi.class);
- final RaftClient.Builder builder = mockRaftClientBuilder();
- Mockito.when(builder.build()).thenReturn(raftClient);
Mockito.when(raftClient.getGroupManagementApi(
Mockito.any(RaftPeerId.class))).thenReturn(raftClientGroupManager);
PowerMockito.mockStatic(RaftClient.class);
- // Work around for mockito bug:
- // https://github.com/powermock/powermock/issues/992
- PowerMockito.when(RaftClient.newBuilder()).thenAnswer(
- (Answer<RaftClient.Builder>) invocation -> builder);
- }
-
- private RaftClient.Builder mockRaftClientBuilder() {
- final RaftClient.Builder builder = Mockito.mock(RaftClient.Builder.class);
- Mockito.when(builder.setClientId(Mockito.any(ClientId.class)))
- .thenReturn(builder);
- Mockito.when(builder.setRaftGroup(Mockito.any(RaftGroup.class)))
- .thenReturn(builder);
- Mockito.when(builder.setLeaderId(Mockito.any(RaftPeerId.class)))
- .thenReturn(builder);
- Mockito.when(builder.setProperties(Mockito.any(RaftProperties.class)))
- .thenReturn(builder);
- Mockito.when(builder.setRetryPolicy(Mockito.any(RetryPolicy.class)))
- .thenReturn(builder);
- return builder;
}
@Test
@@ -120,7 +92,7 @@ public class TestCreatePipelineCommandHandler {
.thenReturn(false);
final CreatePipelineCommandHandler commandHandler =
- new CreatePipelineCommandHandler(new OzoneConfiguration());
+ new CreatePipelineCommandHandler((leader, tls) -> raftClient);
commandHandler.handle(command, ozoneContainer, stateContext,
connectionManager);
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
index edea681..2ae3a08 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
@@ -20,6 +20,7 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ScmNodeDetailsProto;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertResponseProto;
import
org.apache.hadoop.hdds.protocolPB.SCMSecurityProtocolClientSideTranslatorPB;
+import org.apache.hadoop.hdds.ratis.RatisHelper;
import org.apache.hadoop.hdds.scm.server.SCMStorageConfig;
import org.apache.hadoop.hdds.security.x509.SecurityConfig;
import
org.apache.hadoop.hdds.security.x509.certificate.authority.CertificateServer;
@@ -33,17 +34,14 @@ import
org.apache.hadoop.hdds.security.x509.certificate.client.SCMCertificateCli
import org.apache.hadoop.hdds.security.x509.certificate.utils.CertificateCodec;
import
org.apache.hadoop.hdds.security.x509.certificates.utils.CertificateSignRequest;
import org.apache.hadoop.hdds.utils.HddsServerUtil;
-import org.apache.ratis.RaftConfigKeys;
import org.apache.ratis.client.RaftClient;
-import org.apache.ratis.conf.Parameters;
import org.apache.ratis.conf.RaftProperties;
-import org.apache.ratis.grpc.GrpcConfigKeys;
import org.apache.ratis.grpc.GrpcTlsConfig;
import org.apache.ratis.protocol.Message;
import org.apache.ratis.protocol.RaftClientReply;
import org.apache.ratis.protocol.RaftGroup;
import org.apache.ratis.retry.RetryPolicies;
-import org.apache.ratis.rpc.RpcType;
+import org.apache.ratis.rpc.SupportedRpcType;
import org.apache.ratis.util.TimeDuration;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
@@ -301,25 +299,6 @@ public final class HASecurityUtils {
}
/**
- * Create Server TLS parameters required for Ratis Server.
-
- * @return Parameter map set with TLS config.
- */
- public static Parameters createSCMServerTlsParameters(
- GrpcTlsConfig grpcTlsConfig) {
- Parameters parameters = new Parameters();
-
- if (grpcTlsConfig != null) {
- GrpcConfigKeys.Server.setTlsConf(parameters, grpcTlsConfig);
- GrpcConfigKeys.Admin.setTlsConf(parameters, grpcTlsConfig);
- GrpcConfigKeys.Client.setTlsConf(parameters, grpcTlsConfig);
- GrpcConfigKeys.TLS.setConf(parameters, grpcTlsConfig);
- }
-
- return parameters;
- }
-
- /**
* Create GrpcTlsConfig.
* @param conf
* @param certificateClient
@@ -345,10 +324,10 @@ public final class HASecurityUtils {
*/
public static SCMRatisResponse submitScmCertsToRatis(RaftGroup raftGroup,
GrpcTlsConfig tlsConfig, Message message) throws Exception {
- final RaftProperties properties = new RaftProperties();
// TODO: GRPC TLS only for now, netty/hadoop RPC TLS support later.
- RaftConfigKeys.Rpc.setType(properties, RpcType.valueOf("GRPC"));
+ final SupportedRpcType rpc = SupportedRpcType.GRPC;
+ final RaftProperties properties = RatisHelper.newRaftProperties(rpc);
// For now not making anything configurable, RaftClient is only used
@@ -357,16 +336,10 @@ public final class HASecurityUtils {
.setRaftGroup(raftGroup)
.setLeaderId(null)
.setProperties(properties)
+ .setParameters(RatisHelper.setClientTlsConf(rpc, tlsConfig))
.setRetryPolicy(
RetryPolicies.retryUpToMaximumCountWithFixedSleep(120,
TimeDuration.valueOf(500, TimeUnit.MILLISECONDS)));
-
- if (tlsConfig != null) {
- Parameters parameters = new Parameters();
- GrpcConfigKeys.Client.setTlsConf(parameters, tlsConfig);
- builder.setParameters(parameters);
- }
-
RaftClient raftClient = builder.build();
CompletableFuture<RaftClientReply> future =
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/RatisUtil.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/RatisUtil.java
index b99b6f6..92cf7a9 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/RatisUtil.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/RatisUtil.java
@@ -22,11 +22,11 @@ import com.google.common.base.Strings;
import com.google.protobuf.ServiceException;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.conf.StorageUnit;
+import org.apache.hadoop.hdds.ratis.RatisHelper;
import org.apache.hadoop.hdds.ratis.ServerNotLeaderException;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.security.exception.SCMSecurityException;
import org.apache.hadoop.hdds.server.ServerUtils;
-import org.apache.ratis.RaftConfigKeys;
import org.apache.ratis.conf.RaftProperties;
import org.apache.ratis.grpc.GrpcConfigKeys;
import org.apache.ratis.protocol.exceptions.NotLeaderException;
@@ -106,7 +106,7 @@ public final class RatisUtil {
*/
private static void setRaftRpcProperties(final RaftProperties properties,
ConfigurationSource ozoneConf) {
- RaftConfigKeys.Rpc.setType(properties,
+ RatisHelper.setRpcType(properties,
RpcType.valueOf(ozoneConf.get(ScmConfigKeys.OZONE_SCM_HA_RATIS_RPC_TYPE,
ScmConfigKeys.OZONE_SCM_HA_RATIS_RPC_TYPE_DEFAULT)));
GrpcConfigKeys.Server.setPort(properties, ozoneConf
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java
index b48dfb6..3a68ad1 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMRatisServerImpl.java
@@ -33,6 +33,7 @@ import org.apache.hadoop.hdds.HddsUtils;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.SCMRatisProtocol.RequestType;
+import org.apache.hadoop.hdds.ratis.RatisHelper;
import org.apache.hadoop.hdds.scm.AddSCMRequest;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
@@ -59,7 +60,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static
org.apache.hadoop.hdds.scm.ha.HASecurityUtils.createSCMRatisTLSConfig;
-import static
org.apache.hadoop.hdds.scm.ha.HASecurityUtils.createSCMServerTlsParameters;
/**
* TODO.
@@ -97,7 +97,7 @@ public class SCMRatisServerImpl implements SCMRatisServer {
grpcTlsConfig = createSCMRatisTLSConfig(new SecurityConfig(conf),
scm.getScmCertificateClient());
- Parameters parameters = createSCMServerTlsParameters(grpcTlsConfig);
+ final Parameters parameters = RatisHelper.setServerTlsConf(grpcTlsConfig);
this.server = newRaftServer(scm.getScmId(), conf)
.setStateMachineRegistry((gId) -> new SCMStateMachine(scm, buffer))
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
index c3531cb..4d00055 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/RatisTestHelper.java
@@ -31,7 +31,6 @@ import org.apache.hadoop.ozone.client.protocol.ClientProtocol;
import org.apache.hadoop.ozone.client.rpc.RpcClient;
import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_CONTAINER_REPORT_INTERVAL;
-import static org.apache.hadoop.hdds.ratis.RatisHelper.newRaftClient;
import static
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_STALENODE_INTERVAL;
import
org.apache.hadoop.ozone.container.common.transport.server.ratis.XceiverServerRatis;
@@ -124,8 +123,8 @@ public interface RatisTestHelper {
RpcType rpc, DatanodeDetails dd, Pipeline pipeline) throws IOException {
final RaftPeer p = RatisHelper.toRaftPeer(dd);
final OzoneConfiguration conf = new OzoneConfiguration();
- final RaftClient client =
- newRaftClient(rpc, p, RatisHelper.createRetryPolicy(conf), conf);
+ final RaftClient client = RatisHelper.newRaftClient(
+ rpc, p, RatisHelper.createRetryPolicy(conf), conf);
client.getGroupManagementApi(p.getId())
.add(RatisHelper.newRaftGroup(pipeline));
}
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
index ba7bd47..5305ce3 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
@@ -41,6 +41,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.hadoop.hdds.conf.ConfigurationSource;
import org.apache.hadoop.hdds.conf.StorageUnit;
+import org.apache.hadoop.hdds.ratis.RatisHelper;
import org.apache.hadoop.hdds.security.x509.SecurityConfig;
import
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient;
import org.apache.hadoop.hdds.tracing.TracingUtil;
@@ -59,7 +60,6 @@ import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMReque
import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse;
import
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Status;
-import org.apache.ratis.RaftConfigKeys;
import org.apache.ratis.conf.Parameters;
import org.apache.ratis.conf.RaftProperties;
import org.apache.ratis.grpc.GrpcConfigKeys;
@@ -568,14 +568,12 @@ public final class OzoneManagerRatisServer {
//TODO simplify it to make it shorter
@SuppressWarnings("methodlength")
private RaftProperties newRaftProperties(ConfigurationSource conf) {
- final RaftProperties properties = new RaftProperties();
-
// Set RPC type
final String rpcType = conf.get(
OMConfigKeys.OZONE_OM_RATIS_RPC_TYPE_KEY,
OMConfigKeys.OZONE_OM_RATIS_RPC_TYPE_DEFAULT);
final RpcType rpc = SupportedRpcType.valueOfIgnoreCase(rpcType);
- RaftConfigKeys.Rpc.setType(properties, rpc);
+ final RaftProperties properties = RatisHelper.newRaftProperties(rpc);
// Set the ratis port number
if (rpc == SupportedRpcType.GRPC) {
@@ -813,21 +811,16 @@ public final class OzoneManagerRatisServer {
private static Parameters createServerTlsParameters(SecurityConfig conf,
CertificateClient caClient) throws IOException {
- Parameters parameters = new Parameters();
-
if (conf.isSecurityEnabled() && conf.isGrpcTlsEnabled()) {
List<X509Certificate> caList = HAUtils.buildCAX509List(caClient,
conf.getConfiguration());
GrpcTlsConfig config = new GrpcTlsConfig(
caClient.getPrivateKey(), caClient.getCertificate(),
caList, true);
- GrpcConfigKeys.Server.setTlsConf(parameters, config);
- GrpcConfigKeys.Admin.setTlsConf(parameters, config);
- GrpcConfigKeys.Client.setTlsConf(parameters, config);
- GrpcConfigKeys.TLS.setConf(parameters, config);
+ return RatisHelper.setServerTlsConf(config);
}
- return parameters;
+ return null;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]