use of org.apache.ratis.client.impl.ClientProtoUtils in project incubator-ratis by apache.
the class GrpcClientRpc method sendRequest.
private CompletableFuture<RaftClientReply> sendRequest(RaftClientRequest request, RaftClientProtocolClient proxy) throws IOException {
final RaftClientRequestProto requestProto = toRaftClientRequestProto(request);
final CompletableFuture<RaftClientReplyProto> replyFuture = new CompletableFuture<>();
// create a new grpc stream for each non-async call.
final StreamObserver<RaftClientRequestProto> requestObserver = proxy.appendWithTimeout(new StreamObserver<RaftClientReplyProto>() {
@Override
public void onNext(RaftClientReplyProto value) {
replyFuture.complete(value);
}
@Override
public void onError(Throwable t) {
replyFuture.completeExceptionally(RaftGrpcUtil.unwrapIOException(t));
}
@Override
public void onCompleted() {
if (!replyFuture.isDone()) {
replyFuture.completeExceptionally(new IOException(clientId + ": Stream completed but no reply for request " + request));
}
}
});
requestObserver.onNext(requestProto);
requestObserver.onCompleted();
return replyFuture.thenApply(ClientProtoUtils::toRaftClientReply);
}
use of org.apache.ratis.client.impl.ClientProtoUtils in project incubator-ratis by apache.
the class AdminProtocolService method reinitialize.
@Override
public void reinitialize(ReinitializeRequestProto proto, StreamObserver<RaftClientReplyProto> responseObserver) {
final ReinitializeRequest request = ClientProtoUtils.toReinitializeRequest(proto);
RaftGrpcUtil.asyncCall(responseObserver, () -> protocol.reinitializeAsync(request), ClientProtoUtils::toRaftClientReplyProto);
}
use of org.apache.ratis.client.impl.ClientProtoUtils in project incubator-ratis by apache.
the class AdminProtocolService method serverInformation.
@Override
public void serverInformation(ServerInformationRequestProto proto, StreamObserver<ServerInformationReplyProto> responseObserver) {
final ServerInformationRequest request = ClientProtoUtils.toServerInformationRequest(proto);
RaftGrpcUtil.asyncCall(responseObserver, () -> protocol.getInfoAsync(request), ClientProtoUtils::toServerInformationReplyProto);
}
use of org.apache.ratis.client.impl.ClientProtoUtils in project incubator-ratis by apache.
the class GrpcAdminProtocolService method snapshotManagement.
@Override
public void snapshotManagement(SnapshotManagementRequestProto proto, StreamObserver<RaftClientReplyProto> responseObserver) {
final SnapshotManagementRequest request = ClientProtoUtils.toSnapshotManagementRequest(proto);
GrpcUtil.asyncCall(responseObserver, () -> protocol.snapshotManagementAsync(request), ClientProtoUtils::toRaftClientReplyProto);
}
use of org.apache.ratis.client.impl.ClientProtoUtils in project incubator-ratis by apache.
the class GrpcAdminProtocolService method groupList.
@Override
public void groupList(GroupListRequestProto proto, StreamObserver<GroupListReplyProto> responseObserver) {
final GroupListRequest request = ClientProtoUtils.toGroupListRequest(proto);
GrpcUtil.asyncCall(responseObserver, () -> protocol.getGroupListAsync(request), ClientProtoUtils::toGroupListReplyProto);
}
Aggregations