Unverified Commit 0bd0454e authored by CYJiang's avatar CYJiang Committed by GitHub
Browse files

server: organize error types (#9465)


Co-authored-by: default avatarBruce MacDonald <brucewmacdonald@gmail.com>
parent 01aa7887
...@@ -29,8 +29,9 @@ import ( ...@@ -29,8 +29,9 @@ import (
const maxRetries = 6 const maxRetries = 6
var ( var (
errMaxRetriesExceeded = errors.New("max retries exceeded") errMaxRetriesExceeded = errors.New("max retries exceeded")
errPartStalled = errors.New("part stalled") errPartStalled = errors.New("part stalled")
errMaxRedirectsExceeded = errors.New("maximum redirects exceeded (10) for directURL")
) )
var blobDownloadManager sync.Map var blobDownloadManager sync.Map
...@@ -236,7 +237,7 @@ func (b *blobDownload) run(ctx context.Context, requestURL *url.URL, opts *regis ...@@ -236,7 +237,7 @@ func (b *blobDownload) run(ctx context.Context, requestURL *url.URL, opts *regis
newOpts.CheckRedirect = func(req *http.Request, via []*http.Request) error { newOpts.CheckRedirect = func(req *http.Request, via []*http.Request) error {
if len(via) > 10 { if len(via) > 10 {
return errors.New("maximum redirects exceeded (10) for directURL") return errMaxRedirectsExceeded
} }
// if the hostname is the same, allow the redirect // if the hostname is the same, allow the redirect
......
...@@ -35,6 +35,7 @@ var ( ...@@ -35,6 +35,7 @@ var (
errCapabilityCompletion = errors.New("completion") errCapabilityCompletion = errors.New("completion")
errCapabilityTools = errors.New("tools") errCapabilityTools = errors.New("tools")
errCapabilityInsert = errors.New("insert") errCapabilityInsert = errors.New("insert")
errInsecureProtocol = errors.New("insecure protocol http")
) )
type Capability string type Capability string
...@@ -479,7 +480,7 @@ func PushModel(ctx context.Context, name string, regOpts *registryOptions, fn fu ...@@ -479,7 +480,7 @@ func PushModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
fn(api.ProgressResponse{Status: "retrieving manifest"}) fn(api.ProgressResponse{Status: "retrieving manifest"})
if mp.ProtocolScheme == "http" && !regOpts.Insecure { if mp.ProtocolScheme == "http" && !regOpts.Insecure {
return errors.New("insecure protocol http") return errInsecureProtocol
} }
manifest, _, err := GetManifest(mp) manifest, _, err := GetManifest(mp)
...@@ -543,7 +544,7 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu ...@@ -543,7 +544,7 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
} }
if mp.ProtocolScheme == "http" && !regOpts.Insecure { if mp.ProtocolScheme == "http" && !regOpts.Insecure {
return errors.New("insecure protocol http") return errInsecureProtocol
} }
fn(api.ProgressResponse{Status: "pulling manifest"}) fn(api.ProgressResponse{Status: "pulling manifest"})
......
...@@ -31,9 +31,10 @@ const ( ...@@ -31,9 +31,10 @@ const (
var ( var (
ErrInvalidImageFormat = errors.New("invalid image format") ErrInvalidImageFormat = errors.New("invalid image format")
ErrInvalidDigestFormat = errors.New("invalid digest format")
ErrInvalidProtocol = errors.New("invalid protocol scheme") ErrInvalidProtocol = errors.New("invalid protocol scheme")
ErrInsecureProtocol = errors.New("insecure protocol http") ErrInsecureProtocol = errors.New("insecure protocol http")
ErrInvalidDigestFormat = errors.New("invalid digest format") ErrModelPathInvalid = errors.New("invalid model path")
) )
func ParseModelPath(name string) ModelPath { func ParseModelPath(name string) ModelPath {
...@@ -73,8 +74,6 @@ func ParseModelPath(name string) ModelPath { ...@@ -73,8 +74,6 @@ func ParseModelPath(name string) ModelPath {
return mp return mp
} }
var errModelPathInvalid = errors.New("invalid model path")
func (mp ModelPath) GetNamespaceRepository() string { func (mp ModelPath) GetNamespaceRepository() string {
return fmt.Sprintf("%s/%s", mp.Namespace, mp.Repository) return fmt.Sprintf("%s/%s", mp.Namespace, mp.Repository)
} }
......
...@@ -777,7 +777,7 @@ func (s *Server) ShowHandler(c *gin.Context) { ...@@ -777,7 +777,7 @@ func (s *Server) ShowHandler(c *gin.Context) {
func GetModelInfo(req api.ShowRequest) (*api.ShowResponse, error) { func GetModelInfo(req api.ShowRequest) (*api.ShowResponse, error) {
name := model.ParseName(req.Model) name := model.ParseName(req.Model)
if !name.IsValid() { if !name.IsValid() {
return nil, errModelPathInvalid return nil, ErrModelPathInvalid
} }
name, err := getExistingName(name) name, err := getExistingName(name)
if err != nil { if err != nil {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment