aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/server/channelz
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-08-15 12:05:58 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-08-15 12:05:58 -0700
commit70ef911343c88d6058e383ab775d8fb47506241c (patch)
tree1e813e562549669a9524ac01d6e14467d33faf6c /src/cpp/server/channelz
parent47edf79e3a45a7e13aed4963f69536df0439f6a4 (diff)
Add C++ support for GetServers
Diffstat (limited to 'src/cpp/server/channelz')
-rw-r--r--src/cpp/server/channelz/channelz_service.cc16
-rw-r--r--src/cpp/server/channelz/channelz_service.h4
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,