github.com/kaisenlinux/docker@v0.0.0-20230510090727-ea55db55fac7/swarmkit/testutils/grpc.go (about)

     1  package testutils
     2  
     3  import (
     4  	"google.golang.org/grpc/codes"
     5  	"google.golang.org/grpc/status"
     6  )
     7  
     8  // ErrorDesc returns the error description of err if it was produced by the rpc system.
     9  // Otherwise, it returns err.Error() or empty string when err is nil.
    10  func ErrorDesc(err error) string {
    11  	if s, ok := status.FromError(err); ok {
    12  		return s.Message()
    13  	}
    14  	return err.Error()
    15  }
    16  
    17  // ErrorCode returns the error code for err if it was produced by the rpc system.
    18  // Otherwise, it returns codes.Unknown.
    19  func ErrorCode(err error) codes.Code {
    20  	if s, ok := status.FromError(err); ok {
    21  		return s.Code()
    22  	}
    23  	return codes.Unknown
    24  }