Hi
I am fairly new to GRPC with Python
I wanted to explore reflection and followed the links provided above.
For testing purposes I create a simple test receiving an Id and returning 
an associated result.
It works perfectly if I use generated code. Now trying to inspect the 
server and get the services and instantiate dynamically the logic, I 
struggle a bit more.

Using snippet like:

reflection_db = ProtoReflectionDescriptorDatabase(channel)
desc_pool = DescriptorPool(reflection_db)

services = reflection_db.get_services()
service = desc_pool.FindServiceByName(xxx)

for m in service.methods:
   input_type = m.input_type

and with 
request = MessageFactory(desc_pool).GetPrototype(input_type)()

I can build a request
I struggle to instantiate the service and call it with request:

I tried things like:

stub = GeneratedServiceStubType(service.name, (), 
{GeneratedServiceStubType._DESCRIPTOR_KEY:service })
and then stub.<<myMethod>>(request) but it fails. I need to pass other 
params but no real clue
The final purpose is to a kind of getAttr(stub,methode.name, parms)

I looked at code/googled but failed to find any helpful content
Thanks for any help

Cheers
Pascal
On Tuesday, 7 April 2020 at 19:12:10 UTC+2 Lidi Zheng wrote:

> I don't have a specific example for reflection.proto. It is a gRPC 
> service. All the messages are defined with comments.
> The hard part is FileDescriptorProto, which is defined at 
> https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/descriptor.proto
> .
>
> On Mon, Apr 6, 2020 at 11:09 PM Louis Yang <foreverc...@gmail.com> wrote:
>
>> thanks, could you provide some example for using relection.proto? 
>>
>> On Tuesday, 7 April 2020 06:51:56 UTC+8, Lidi Zheng wrote:
>>>
>>> There is a grpcio-reflection package that enables reflection services 
>>> for servers. See example: 
>>> https://github.com/grpc/grpc/blob/master/examples/python/helloworld/greeter_server_with_reflection.py
>>> .
>>>
>>> For client-side checking services list, here is the proto definition for 
>>> service reflection API: 
>>> https://github.com/grpc/grpc/blob/master/src/proto/grpc/reflection/v1alpha/reflection.proto
>>> You can get all the details in the descriptor proto.
>>> Another option is using the CLI tool: 
>>> https://github.com/fullstorydev/grpcurl.
>>>
>>> On Sat, Apr 4, 2020 at 8:21 PM Louis Yang <foreverc...@gmail.com> wrote:
>>>
>>>>
>>>> Like grpcox tool, 
>>>>
>>>> Given a service endpoint: 1.2.3.4:50001, return the all services list 
>>>> and rpc api under these services
>>>> is there an existing api for this in grpc-python?
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "grpc.io" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to grp...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/grpc-io/005f21b7-76ef-48fa-9be5-f270b52adf9b%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/grpc-io/005f21b7-76ef-48fa-9be5-f270b52adf9b%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "grpc.io" group.
>>
> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to grpc-io+u...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/grpc-io/51654a95-e257-42d1-a2b3-80e255ef74c8%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/51654a95-e257-42d1-a2b3-80e255ef74c8%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/2927a3f6-a9f5-4e2d-af04-f43a4353abb9n%40googlegroups.com.

Reply via email to