server: organize error types (#9465)

Co-authored-by: Bruce MacDonald <brucewmacdonald@gmail.com>
This commit is contained in:
CYJiang 2025-03-29 02:50:22 +08:00 committed by GitHub
parent 01aa788722
commit 0bd0454ea7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 10 additions and 9 deletions

View file

@ -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
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

View file

@ -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
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
} }
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"})

View file

@ -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 {
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)
} }

View file

@ -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 {