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);
}
}