You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
packer/internal/registry/errors.go

37 lines
897 B

package registry
import (
"fmt"
"strings"
"google.golang.org/grpc/codes"
)
const (
_ = iota
InvalidClientConfig
)
// ClientError represents a generic error for the Cloud Packer Service client.
type ClientError struct {
StatusCode uint
Err error
}
// Error returns the string message for some ClientError.
func (c *ClientError) Error() string {
return fmt.Sprintf("status %d: err %v", c.StatusCode, c.Err)
}
// checkErrorCode checks the error string for err for some code and returns true if the code is found.
// Ideally this function should use status.FromError https://pkg.go.dev/google.golang.org/grpc/status#pkg-functions
// but that doesn't appear to work for all of the Cloud Packer Service response errors.
func checkErrorCode(err error, code codes.Code) bool {
if err == nil {
return false
}
return strings.Contains(err.Error(), fmt.Sprintf("Code:%d", code))
}