blob: b388efca73fc149582e63fafc5488b821ccb94cf [file] [log] [blame]
package registry
import (
"net/url"
"github.com/docker/distribution/registry/api/errcode"
)
type notFoundError string
func (e notFoundError) Error() string {
return string(e)
}
func (notFoundError) NotFound() {}
type validationError struct {
cause error
}
func (e validationError) Error() string {
return e.cause.Error()
}
func (e validationError) InvalidParameter() {}
func (e validationError) Cause() error {
return e.cause
}
type unauthorizedError struct {
cause error
}
func (e unauthorizedError) Error() string {
return e.cause.Error()
}
func (e unauthorizedError) Unauthorized() {}
func (e unauthorizedError) Cause() error {
return e.cause
}
type systemError struct {
cause error
}
func (e systemError) Error() string {
return e.cause.Error()
}
func (e systemError) SystemError() {}
func (e systemError) Cause() error {
return e.cause
}
type notActivatedError struct {
cause error
}
func (e notActivatedError) Error() string {
return e.cause.Error()
}
func (e notActivatedError) Forbidden() {}
func (e notActivatedError) Cause() error {
return e.cause
}
func translateV2AuthError(err error) error {
switch e := err.(type) {
case *url.Error:
switch e2 := e.Err.(type) {
case errcode.Error:
switch e2.Code {
case errcode.ErrorCodeUnauthorized:
return unauthorizedError{err}
}
}
}
return err
}