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]

Reply via email to