openconfig / gnoi

gRPC Network Operations Interface (gNOI) defines a set of gRPC-based microservices for executing operational commands on network devices.
Apache License 2.0
160 stars 70 forks source link

Is there a recommended way to generate descriptor files for the gnoi protos? #216

Open AnandJyrm opened 1 month ago

AnandJyrm commented 1 month ago

When generating decriptor_set for the gnoi protos, there is an error in handling the imports.

protoc --descriptor_set_out=system_proto.desc -I./gnoi/ -I./protobuf/src gnoi/system/system.proto
github.com/openconfig/gnoi/common/common.proto: File not found.
github.com/openconfig/gnoi/types/types.proto: File not found.
system/system.proto: Import "github.com/openconfig/gnoi/common/common.proto" was not found or had errors.
system/system.proto: Import "github.com/openconfig/gnoi/types/types.proto" was not found or had errors.
system/system.proto:92:3: "types.Path" is not defined.
system/system.proto:97:3: "types.Path" is not defined.
system/system.proto:114:12: "types.Path" is not defined.
system/system.proto:144:12: "types.Path" is not defined.
system/system.proto:151:12: "types.Path" is not defined.
system/system.proto:203:3: "types.L3Protocol" is not defined.
system/system.proto:245:3: "types.L3Protocol" is not defined.
system/system.proto:325:3: "common.RemoteDownload" is not defined.
system/system.proto:337:5: "types.HashType" is not defined.

We can modify the proto and give relative paths instead of the github repo path and it works. Wondering if there is a better way

We want to use this descriptor files with grpcurl/grpcui to access services on our devices.. Is there a recommended way for this? (reflection service on the server side is currently out of question for us).