mirror of https://github.com/docker/cli.git
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
package registry
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"github.com/docker/distribution/registry/api/errcode"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func translateV2AuthError(err error) error {
|
|
var e *url.Error
|
|
if errors.As(err, &e) {
|
|
var e2 errcode.Error
|
|
if errors.As(e, &e2) && errors.Is(e2.Code, errcode.ErrorCodeUnauthorized) {
|
|
return unauthorizedErr{err}
|
|
}
|
|
}
|
|
return err
|
|
}
|
|
|
|
func invalidParam(err error) error {
|
|
return invalidParameterErr{err}
|
|
}
|
|
|
|
func invalidParamf(format string, args ...interface{}) error {
|
|
return invalidParameterErr{errors.Errorf(format, args...)}
|
|
}
|
|
|
|
func invalidParamWrapf(err error, format string, args ...interface{}) error {
|
|
return invalidParameterErr{errors.Wrapf(err, format, args...)}
|
|
}
|
|
|
|
type unauthorizedErr struct{ error }
|
|
|
|
func (unauthorizedErr) Unauthorized() {}
|
|
|
|
func (e unauthorizedErr) Cause() error {
|
|
return e.error
|
|
}
|
|
|
|
func (e unauthorizedErr) Unwrap() error {
|
|
return e.error
|
|
}
|
|
|
|
type invalidParameterErr struct{ error }
|
|
|
|
func (invalidParameterErr) InvalidParameter() {}
|
|
|
|
func (e invalidParameterErr) Unwrap() error {
|
|
return e.error
|
|
}
|
|
|
|
type systemErr struct{ error }
|
|
|
|
func (systemErr) System() {}
|
|
|
|
func (e systemErr) Unwrap() error {
|
|
return e.error
|
|
}
|
|
|
|
type errUnknown struct{ error }
|
|
|
|
func (errUnknown) Unknown() {}
|
|
|
|
func (e errUnknown) Unwrap() error {
|
|
return e.error
|
|
}
|