From 064101bc066956cee4aec700aca6b97e5eb5624c Mon Sep 17 00:00:00 2001 From: Mikhail Katychev Date: Tue, 29 Sep 2020 18:17:34 -0500 Subject: [PATCH] made change backwards compatible --- cmd/grpcurl/grpcurl.go | 2 +- invoke.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/grpcurl/grpcurl.go b/cmd/grpcurl/grpcurl.go index 58d177f..60e0b38 100644 --- a/cmd/grpcurl/grpcurl.go +++ b/cmd/grpcurl/grpcurl.go @@ -695,7 +695,7 @@ func main() { err = grpcurl.InvokeRPC(ctx, descSource, cc, symbol, append(addlHeaders, rpcHeaders...), h, rf.Next) if err != nil { - if errStatus, ok := status.FromError(err); ok { + if errStatus, ok := status.FromError(err); ok && *formatError { h.Status = errStatus } else { fail(err, "Error invoking method %q", symbol) diff --git a/invoke.go b/invoke.go index 13fb219..8425c49 100644 --- a/invoke.go +++ b/invoke.go @@ -99,9 +99,9 @@ func InvokeRPC(ctx context.Context, source DescriptorSource, ch grpcdynamic.Chan if isNotFoundError(err) { return fmt.Errorf("target server does not expose service %q", svc) } - // return the error unstringified if it is a gRPC status.Status error - if _, ok := status.FromError(err); ok { - return err + // return the error unstringified if it is a gRPC status error + if statusErr, ok := status.FromError(err); ok { + return status.Errorf(statusErr.Code(), "failed to query for service descriptor %q: %v", svc, err) } return fmt.Errorf("failed to query for service descriptor %q: %v", svc, err) }