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.InternalInstrumented;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
import io.grpc.channelz.v1.ChannelzGrpc;
import io.grpc.channelz.v1.GetChannelRequest;
import io.grpc.channelz.v1.GetChannelResponse;
@ -68,7 +69,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
InternalChannelz.RootChannelList rootChannels
= 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();
}
@ -82,11 +91,18 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return;
}
responseObserver.onNext(
GetChannelResponse
.newBuilder()
.setChannel(ChannelzProtoUtil.toChannel(s))
.build());
GetChannelResponse resp;
try {
resp = GetChannelResponse
.newBuilder()
.setChannel(ChannelzProtoUtil.toChannel(s))
.build();
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted();
}
@ -96,7 +112,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
GetServersRequest request, StreamObserver<GetServersResponse> responseObserver) {
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();
}
@ -110,11 +134,18 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return;
}
responseObserver.onNext(
GetSubchannelResponse
.newBuilder()
.setSubchannel(ChannelzProtoUtil.toSubchannel(s))
.build());
GetSubchannelResponse resp;
try {
resp = GetSubchannelResponse
.newBuilder()
.setSubchannel(ChannelzProtoUtil.toSubchannel(s))
.build();
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted();
}
@ -128,11 +159,16 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
return;
}
responseObserver.onNext(
GetSocketResponse
.newBuilder()
.setSocket(ChannelzProtoUtil.toSocket(s))
.build());
GetSocketResponse resp;
try {
resp =
GetSocketResponse.newBuilder().setSocket(ChannelzProtoUtil.toSocket(s)).build();
} catch (StatusRuntimeException e) {
responseObserver.onError(e);
return;
}
responseObserver.onNext(resp);
responseObserver.onCompleted();
}
@ -146,7 +182,15 @@ public final class ChannelzService extends ChannelzGrpc.ChannelzImplBase {
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();
}
}