diff options
author | ncteisen <ncteisen@gmail.com> | 2018-08-15 12:05:58 -0700 |
---|---|---|
committer | ncteisen <ncteisen@gmail.com> | 2018-08-15 12:05:58 -0700 |
commit | 70ef911343c88d6058e383ab775d8fb47506241c (patch) | |
tree | 1e813e562549669a9524ac01d6e14467d33faf6c /src/cpp/server/channelz | |
parent | 47edf79e3a45a7e13aed4963f69536df0439f6a4 (diff) |
Add C++ support for GetServers
Diffstat (limited to 'src/cpp/server/channelz')
-rw-r--r-- | src/cpp/server/channelz/channelz_service.cc | 16 | ||||
-rw-r--r-- | src/cpp/server/channelz/channelz_service.h | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/cpp/server/channelz/channelz_service.cc b/src/cpp/server/channelz/channelz_service.cc index 0666986a39..e096c1f421 100644 --- a/src/cpp/server/channelz/channelz_service.cc +++ b/src/cpp/server/channelz/channelz_service.cc @@ -44,6 +44,22 @@ Status ChannelzService::GetTopChannels( return Status::OK; } +Status ChannelzService::GetServers( + ServerContext* unused, const channelz::v1::GetServersRequest* request, + channelz::v1::GetServersResponse* response) { + char* json_str = grpc_channelz_get_servers(request->start_server_id()); + if (json_str == nullptr) { + return Status(INTERNAL, "grpc_channelz_get_servers returned null"); + } + google::protobuf::util::Status s = + google::protobuf::util::JsonStringToMessage(json_str, response); + gpr_free(json_str); + if (s != google::protobuf::util::Status::OK) { + return Status(INTERNAL, s.ToString()); + } + return Status::OK; +} + Status ChannelzService::GetChannel( ServerContext* unused, const channelz::v1::GetChannelRequest* request, channelz::v1::GetChannelResponse* response) { diff --git a/src/cpp/server/channelz/channelz_service.h b/src/cpp/server/channelz/channelz_service.h index 95d6f47cff..9e0b5b6ead 100644 --- a/src/cpp/server/channelz/channelz_service.h +++ b/src/cpp/server/channelz/channelz_service.h @@ -32,6 +32,10 @@ class ChannelzService final : public channelz::v1::Channelz::Service { Status GetTopChannels( ServerContext* unused, const channelz::v1::GetTopChannelsRequest* request, channelz::v1::GetTopChannelsResponse* response) override; + // implementation of GetServers rpc + Status GetServers(ServerContext* unused, + const channelz::v1::GetServersRequest* request, + channelz::v1::GetServersResponse* response) override; // implementation of GetChannel rpc Status GetChannel(ServerContext* unused, const channelz::v1::GetChannelRequest* request, |