notFound error formatting

This commit is contained in:
Mikhail Katychev 2020-09-30 11:06:58 -05:00
parent 2500a485f3
commit 6cfed59b7d
No known key found for this signature in database
GPG Key ID: 9E8549CD2CEB5E59
1 changed files with 8 additions and 5 deletions

View File

@ -96,12 +96,15 @@ func InvokeRPC(ctx context.Context, source DescriptorSource, ch grpcdynamic.Chan
dsc, err := source.FindSymbol(svc) dsc, err := source.FindSymbol(svc)
if err != nil { if err != nil {
if isNotFoundError(err) { // return a gRPC status error if hasStatus is true
return fmt.Errorf("target server does not expose service %q", svc) errStatus, hasStatus := status.FromError(err)
} switch {
// return the error unstringified if it is a gRPC status error case hasStatus && isNotFoundError(err):
if errStatus, ok := status.FromError(err); ok { return status.Errorf(errStatus.Code(), "target server does not expose service %q: %s", svc, errStatus.Message())
case hasStatus:
return status.Errorf(errStatus.Code(), "failed to query for service descriptor %q: %s", svc, errStatus.Message()) return status.Errorf(errStatus.Code(), "failed to query for service descriptor %q: %s", svc, errStatus.Message())
case isNotFoundError(err):
return fmt.Errorf("target server does not expose service %q", svc)
} }
return fmt.Errorf("failed to query for service descriptor %q: %v", svc, err) return fmt.Errorf("failed to query for service descriptor %q: %v", svc, err)
} }