mirror of
https://github.com/hashicorp/packer.git
synced 2026-02-28 04:21:10 -05:00
36 lines
899 B
Go
36 lines
899 B
Go
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))
|
|
}
|