public RaftClientReply sendRequest()

in ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/client/HadoopClientRpc.java [41:71]


  public RaftClientReply sendRequest(RaftClientRequest request)
      throws IOException {
    final RaftPeerId serverId = request.getServerId();
    final CombinedClientProtocolClientSideTranslatorPB proxy =
        getProxies().getProxy(serverId);
    try {
      if (request instanceof GroupManagementRequest) {
        return proxy.groupManagement((GroupManagementRequest) request);
      } else if (request instanceof SetConfigurationRequest) {
        return proxy.setConfiguration((SetConfigurationRequest) request);
      } else if (request instanceof GroupListRequest) {
        return proxy.getGroupList((GroupListRequest) request);
      } else if (request instanceof GroupInfoRequest) {
        return proxy.getGroupInfo((GroupInfoRequest) request);
      } else if (request instanceof TransferLeadershipRequest) {
        return proxy.transferLeadership((TransferLeadershipRequest) request);
      } else if (request instanceof SnapshotManagementRequest) {
        return proxy.snapshotManagement((SnapshotManagementRequest) request);
      } else {
        return proxy.submitClientRequest(request);
      }
    } catch (RemoteException e) {
      throw e.unwrapRemoteException(
          StateMachineException.class,
          ReconfigurationTimeoutException.class,
          ReconfigurationInProgressException.class,
          RaftException.class,
          LeaderNotReadyException.class,
          GroupMismatchException.class);
    }
  }