services: propagate thrown status exceptions in Channelz

This commit is contained in:
Carl Mastrangelo 2018-10-26 12:52:52 -07:00 committed by GitHub
parent acf62ab0c8
commit 04d8d2d382
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 62 additions and 18 deletions

View File

@ -25,6 +25,7 @@ import io.grpc.InternalChannelz.ServerSocketsList;
import io.grpc.InternalChannelz.SocketStats; import io.grpc.InternalChannelz.SocketStats;
import io.grpc.InternalInstrumented; import io.grpc.InternalInstrumented;
import io.grpc.Status; import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.grpc.channelz.v1.ChannelzGrpc; import io.grpc.channelz.v1.ChannelzGrpc;
import io.grpc.channelz.v1.GetChannelRequest; import io.grpc.channelz.v1.GetChannelRequest;
import io.grpc.channelz.v1.GetChannelResponse; import io.grpc.channelz.v1.GetChannelResponse;
@ -68,7 +69,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
InternalChannelz.RootChannelList rootChannels InternalChannelz.RootChannelList rootChannels
= channelz.getRootChannels(request.getStartChannelId(), maxPageSize); = channelz.getRootChannels(request.getStartChannelId(), maxPageSize);
responseObserver.onNext(ChannelzProtoUtil.toGetTopChannelResponse(rootChannels)); GetTopChannelsResponse resp;
try {
resp = ChannelzProtoUtil.toGetTopChannelResponse(rootChannels);
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
@ -82,11 +91,18 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return; return;
} }
responseObserver.onNext( GetChannelResponse resp;
GetChannelResponse try {
.newBuilder() resp = GetChannelResponse
.setChannel(ChannelzProtoUtil.toChannel(s)) .newBuilder()
.build()); .setChannel(ChannelzProtoUtil.toChannel(s))
.build();
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
@ -96,7 +112,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
GetServersRequest request, StreamObserver<GetServersResponse> responseObserver) { GetServersRequest request, StreamObserver<GetServersResponse> responseObserver) {
ServerList servers = channelz.getServers(request.getStartServerId(), maxPageSize); ServerList servers = channelz.getServers(request.getStartServerId(), maxPageSize);
responseObserver.onNext(ChannelzProtoUtil.toGetServersResponse(servers)); GetServersResponse resp;
try {
resp = ChannelzProtoUtil.toGetServersResponse(servers);
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
@ -110,11 +134,18 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return; return;
} }
responseObserver.onNext( GetSubchannelResponse resp;
GetSubchannelResponse try {
.newBuilder() resp = GetSubchannelResponse
.setSubchannel(ChannelzProtoUtil.toSubchannel(s)) .newBuilder()
.build()); .setSubchannel(ChannelzProtoUtil.toSubchannel(s))
.build();
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
@ -128,11 +159,16 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return; return;
} }
responseObserver.onNext( GetSocketResponse resp;
GetSocketResponse try {
.newBuilder() resp =
.setSocket(ChannelzProtoUtil.toSocket(s)) GetSocketResponse.newBuilder().setSocket(ChannelzProtoUtil.toSocket(s)).build();
.build()); } catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
@ -146,7 +182,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return; return;
} }
responseObserver.onNext(ChannelzProtoUtil.toGetServerSocketsResponse(serverSockets)); GetServerSocketsResponse resp;
try {
resp = ChannelzProtoUtil.toGetServerSocketsResponse(serverSockets);
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
} }