From 531771bfaecf0813960447dc6ddc7c783d341ea9 Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Tue, 14 Jun 2016 16:52:04 -0700 Subject: [PATCH] Implement ServerReflectionRequest_ListServices --- reflection/serverreflection.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/reflection/serverreflection.go b/reflection/serverreflection.go index 5f935c383..204a07d5a 100644 --- a/reflection/serverreflection.go +++ b/reflection/serverreflection.go @@ -280,10 +280,16 @@ func (s *serverReflectionServer) ServerReflectionInfo(stream rpb.ServerReflectio } } case *rpb.ServerReflectionRequest_ListServices: - out.MessageResponse = &rpb.ServerReflectionResponse_ErrorResponse{ - ErrorResponse: &rpb.ErrorResponse{ - ErrorCode: int32(codes.Unimplemented), - ErrorMessage: "list_services not implemented", + services := s.s.AllServiceNames() + serviceResponses := make([]*rpb.ServiceResponse, len(services)) + for i, s := range services { + serviceResponses[i] = &rpb.ServiceResponse{ + Name: s, + } + } + out.MessageResponse = &rpb.ServerReflectionResponse_ListServicesResponse{ + ListServicesResponse: &rpb.ListServiceResponse{ + Service: serviceResponses, }, } default: