Skip to content

Commit b12f0aa

Browse files
committed
Add SERVICE_NAME to reflection/health
1 parent ac81f5a commit b12f0aa

4 files changed

Lines changed: 31 additions & 20 deletions

File tree

src/python/grpcio_health_checking/grpc_health/v1/health.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717

1818
import grpc
1919

20-
from grpc_health.v1 import health_pb2
21-
from grpc_health.v1 import health_pb2_grpc
20+
from grpc_health.v1 import health_pb2 as _health_pb2
21+
from grpc_health.v1 import health_pb2_grpc as _health_pb2_grpc
2222

23+
SERVICE_NAME = _health_pb2.DESCRIPTOR.services_by_name['Health'].full_name
2324

24-
class HealthServicer(health_pb2_grpc.HealthServicer):
25+
26+
class HealthServicer(_health_pb2_grpc.HealthServicer):
2527
"""Servicer handling RPCs for service statuses."""
2628

2729
def __init__(self):
@@ -33,9 +35,9 @@ def Check(self, request, context):
3335
status = self._server_status.get(request.service)
3436
if status is None:
3537
context.set_code(grpc.StatusCode.NOT_FOUND)
36-
return health_pb2.HealthCheckResponse()
38+
return _health_pb2.HealthCheckResponse()
3739
else:
38-
return health_pb2.HealthCheckResponse(status=status)
40+
return _health_pb2.HealthCheckResponse(status=status)
3941

4042
def set(self, service, status):
4143
"""Sets the status of a service.

src/python/grpcio_reflection/grpc_reflection/v1alpha/reflection.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@
1717
from google.protobuf import descriptor_pb2
1818
from google.protobuf import descriptor_pool
1919

20-
from grpc_reflection.v1alpha import reflection_pb2
21-
from grpc_reflection.v1alpha import reflection_pb2_grpc
20+
from grpc_reflection.v1alpha import reflection_pb2 as _reflection_pb2
21+
from grpc_reflection.v1alpha import reflection_pb2_grpc as _reflection_pb2_grpc
2222

2323
_POOL = descriptor_pool.Default()
24+
SERVICE_NAME = _reflection_pb2.DESCRIPTOR.services_by_name[
25+
'ServerReflection'].full_name
2426

2527

2628
def _not_found_error():
27-
return reflection_pb2.ServerReflectionResponse(
28-
error_response=reflection_pb2.ErrorResponse(
29+
return _reflection_pb2.ServerReflectionResponse(
30+
error_response=_reflection_pb2.ErrorResponse(
2931
error_code=grpc.StatusCode.NOT_FOUND.value[0],
3032
error_message=grpc.StatusCode.NOT_FOUND.value[1].encode(),
3133
))
@@ -35,12 +37,12 @@ def _file_descriptor_response(descriptor):
3537
proto = descriptor_pb2.FileDescriptorProto()
3638
descriptor.CopyToProto(proto)
3739
serialized_proto = proto.SerializeToString()
38-
return reflection_pb2.ServerReflectionResponse(
39-
file_descriptor_response=reflection_pb2.FileDescriptorResponse(
40+
return _reflection_pb2.ServerReflectionResponse(
41+
file_descriptor_response=_reflection_pb2.FileDescriptorResponse(
4042
file_descriptor_proto=(serialized_proto,)),)
4143

4244

43-
class ReflectionServicer(reflection_pb2_grpc.ServerReflectionServicer):
45+
class ReflectionServicer(_reflection_pb2_grpc.ServerReflectionServicer):
4446
"""Servicer handling RPCs for service statuses."""
4547

4648
def __init__(self, service_names, pool=None):
@@ -94,17 +96,17 @@ def _all_extension_numbers_of_type(self, containing_type):
9496
except KeyError:
9597
return _not_found_error()
9698
else:
97-
return reflection_pb2.ServerReflectionResponse(
98-
all_extension_numbers_response=reflection_pb2.
99+
return _reflection_pb2.ServerReflectionResponse(
100+
all_extension_numbers_response=_reflection_pb2.
99101
ExtensionNumberResponse(
100102
base_type_name=message_descriptor.full_name,
101103
extension_number=extension_numbers))
102104

103105
def _list_services(self):
104-
return reflection_pb2.ServerReflectionResponse(
105-
list_services_response=reflection_pb2.ListServiceResponse(
106+
return _reflection_pb2.ServerReflectionResponse(
107+
list_services_response=_reflection_pb2.ListServiceResponse(
106108
service=[
107-
reflection_pb2.ServiceResponse(name=service_name)
109+
_reflection_pb2.ServiceResponse(name=service_name)
108110
for service_name in self._service_names
109111
]))
110112

@@ -126,8 +128,8 @@ def ServerReflectionInfo(self, request_iterator, context):
126128
elif request.HasField('list_services'):
127129
yield self._list_services()
128130
else:
129-
yield reflection_pb2.ServerReflectionResponse(
130-
error_response=reflection_pb2.ErrorResponse(
131+
yield _reflection_pb2.ServerReflectionResponse(
132+
error_response=_reflection_pb2.ErrorResponse(
131133
error_code=grpc.StatusCode.INVALID_ARGUMENT.value[0],
132134
error_message=grpc.StatusCode.INVALID_ARGUMENT.value[1]
133135
.encode(),
@@ -142,5 +144,5 @@ def enable_server_reflection(service_names, server, pool=None):
142144
server: grpc.Server to which reflection service will be added.
143145
pool: DescriptorPool object to use (descriptor_pool.Default() if None).
144146
"""
145-
reflection_pb2_grpc.add_ServerReflectionServicer_to_server(
147+
_reflection_pb2_grpc.add_ServerReflectionServicer_to_server(
146148
ReflectionServicer(service_names, pool=pool), server)

src/python/grpcio_tests/tests/health_check/_health_servicer_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ def test_not_found_service(self):
7373

7474
self.assertEqual(grpc.StatusCode.NOT_FOUND, context.exception.code())
7575

76+
def test_health_service_name(self):
77+
self.assertEqual(health.SERVICE_NAME, 'grpc.health.v1.Health')
78+
7679

7780
if __name__ == '__main__':
7881
unittest.main(verbosity=2)

src/python/grpcio_tests/tests/reflection/_reflection_servicer_test.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ def testListServices(self):
171171
for name in _SERVICE_NAMES))),)
172172
self.assertSequenceEqual(expected_responses, responses)
173173

174+
def testReflectionServiceName(self):
175+
self.assertEqual(reflection.SERVICE_NAME,
176+
'grpc.reflection.v1alpha.ServerReflection')
177+
174178

175179
if __name__ == '__main__':
176180
unittest.main(verbosity=2)

0 commit comments

Comments
 (0)