You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I did some digging and found at least one problem with reflection[1] for gRIBI (in general, not specific to EOS, problem occurs in gribigo[2] as well)
Focussing on the error below, I suspected it had something to do with reflection.
Method name not found
Failed to find method gribi.Flush in proto files.
I used
./grpcurl -H 'username: admin' -plaintext 127.0.0.1:6040 describe
Failed to resolve symbol "gribi.gRIBI": Symbol not found: gribi.gRIBI
caused by: File not found: github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto
Some googling led me to a very helpful post [3] which says that
What that means is that the name (and relative path) used to compile a proto with protoc must exactly match how all other files will import it.
ywrapper.proto itself is compiled [4] using just the relative // source: ywrapper.proto, but gribi_aft.proto is importing it as import "github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto”;
If my understanding of [3] is correct, the fix is to either regenerate ywrapper's go bindings to use the full github… path or change gribi_aft.proto to import ywrapper without the full github... path and regenerate the go bindings.
I tried both the grpcurl describe and grpc_cli call on gribigo after adding reflection to it, and I see the same problem.
My suggestion is that you file a bug and someone (maybe Nathaniel or Rob) fix this so that reflection (grpcurl describe) works with gribigo , update the generated go bindings on GitHub, and when that’s done, I can rebuild EOS’s gribi server to fix it in EOS and have it included in a later code drop.
I am seeing this issue as well and reflection is important for us. can you take a look at this problem?
Failed to list methods for service "gribi.gRIBI": file "v1/proto/gribi_aft/gribi_aft.proto" included an unresolvable reference to ".ywrapper.BytesValue"
Reported by @nandanarista:
I did some digging and found at least one problem with reflection[1] for gRIBI (in general, not specific to EOS, problem occurs in gribigo[2] as well)
Focussing on the error below, I suspected it had something to do with reflection.
I used
Some googling led me to a very helpful post [3] which says that
ywrapper.proto itself is compiled [4] using just the relative
// source: ywrapper.proto
, but gribi_aft.proto is importing it asimport "github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto”;
If my understanding of [3] is correct, the fix is to either regenerate ywrapper's go bindings to use the full github… path or change gribi_aft.proto to import ywrapper without the full github... path and regenerate the go bindings.
I tried both the
grpcurl describe
andgrpc_cli call
on gribigo after adding reflection to it, and I see the same problem.My suggestion is that you file a bug and someone (maybe Nathaniel or Rob) fix this so that reflection (grpcurl describe) works with gribigo , update the generated go bindings on GitHub, and when that’s done, I can rebuild EOS’s gribi server to fix it in EOS and have it included in a later code drop.
[1] https://github.com/grpc/grpc-go/blob/master/Documentation/server-reflection-tutorial.md#grpc-server-reflection-tutorial
[2] https://github.com/openconfig/gribigo
[3] https://github.com/fullstorydev/grpcurl/issues/22#issuecomment-375274465
[4] https://github.com/openconfig/ygot/blob/master/proto/ywrapper/ywrapper.pb.go#L25
[5] https://github.com/openconfig/gribi/blob/master/v1/proto/gribi_aft/gribi_aft.proto#L13
The text was updated successfully, but these errors were encountered: