fullstorydev / grpcurl

Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
MIT License
10.36k stars 497 forks source link

Getting `proto does not reside in any import path` #354

Open iamatulsingh opened 1 year ago

iamatulsingh commented 1 year ago

Version: grpcurl v1.8.7

I saw that issue for something like this has released already (around 3 years ago) but it appears something is wrong. Can someone confirm if I'm doing something wrong or it's not me? I even tried dev version of grpcurl but it's same. Below is a command I'm trying to do. I'm using Google Home proto file for automating my Google Mini.

command used: grpcurl -H 'authorization: Bearer XXXXX' -import-path files -proto google/internal/home/foyer/v1.proto googlehomefoyer-pa.googleapis.com:443 google.internal.home.foyer.v1.StructuresService/GetHomeGraph

output: Failed to process proto source files.: google/internal/home/foyer/v1.proto does not reside in any import path

jhump commented 1 year ago

@iamatulsingh, you need to include details of what you are doing in order for someone to help you troubleshoot. Please include the example command-line you are using as well as the layout of proto sources you are trying to use.

iamatulsingh commented 1 year ago

@iamatulsingh, you need to include details of what you are doing in order for someone to help you troubleshoot. Please include the example command-line you are using as well as the layout of proto sources you are trying to use.

Sorry for that. I've updated the question with details.

jhump commented 1 year ago

@iamatulsingh, that's not very much info to go on. I don't even think that example command-line is valid because the -proto argument accepts the name of a proto file, not a directory.

Can you include the exact command-line you are using and the exact error message the command is showing you? Also, where did you get the proto sources for this? If you have any links, they may be helpful.

iamatulsingh commented 1 year ago

@jhump Thanks for reply. I fixed the command above in question and addeed proto file for -proto that I missed last time. The command I used is exact what I've pasted in the qestion as well as added output error that I'm getting from that command. Link for that proto file is this

sanjaybv commented 1 year ago

@iamatulsingh The error you see indicates that grpcurl is unable to find (-proto argument) google/internal/home/foyer/v1.proto in (the -import-path) /files/. You need to ensure the proto file exists somewhere under the /files/ directory.

Also, /files/ indicates that there exists a files directory in the root directory /, which is unusual. If you were trying to specify a relative directory from your current directory, try leaving out the leading /. So your command becomes:

grpcurl -H 'authorization: Bearer XXXXX' -import-path files -proto google/internal/home/foyer/v1.proto googlehomefoyer-pa.googleapis.com:443 google.internal.home.foyer.v1.StructuresService/GetHomeGraph
iamatulsingh commented 1 year ago

@sanjaybv sorry I was in hurry and made mistake in the question while pasting command but it was files and not /files/. And yes files does contains proto file in it from google home app and it does look same command as you sent.