From 536028c35a7fe1bc74f9fbb157244a2d775afa46 Mon Sep 17 00:00:00 2001 From: Bruce MacDonald Date: Mon, 24 Jul 2023 17:48:17 -0400 Subject: [PATCH 1/2] better error message when model not found on pull --- api/client.go | 2 +- server/images.go | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/api/client.go b/api/client.go index 57162571..7a6126cd 100644 --- a/api/client.go +++ b/api/client.go @@ -131,7 +131,7 @@ func (c *Client) stream(ctx context.Context, method, path string, data any, fn f } if errorResponse.Error != "" { - return fmt.Errorf("stream: %s", errorResponse.Error) + return fmt.Errorf(errorResponse.Error) } if response.StatusCode >= 400 { diff --git a/server/images.go b/server/images.go index 06ee8e06..9be097d1 100644 --- a/server/images.go +++ b/server/images.go @@ -684,7 +684,7 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon manifest, err := pullModelManifest(mp, regOpts) if err != nil { - return fmt.Errorf("pull model manifest: %q", err) + return fmt.Errorf("pull model manifest: %s", err) } var layers []*Layer @@ -738,6 +738,8 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon return nil } +var errModelNotFound = fmt.Errorf("model not found") + func pullModelManifest(mp ModelPath, regOpts *RegistryOptions) (*ManifestV2, error) { url := fmt.Sprintf("%s/v2/%s/manifests/%s", mp.Registry, mp.GetNamespaceRepository(), mp.Tag) headers := map[string]string{ @@ -753,6 +755,9 @@ func pullModelManifest(mp ModelPath, regOpts *RegistryOptions) (*ManifestV2, err // Check for success: For a successful upload, the Docker registry will respond with a 201 Created if resp.StatusCode != http.StatusOK { + if resp.StatusCode == http.StatusNotFound { + return nil, errModelNotFound + } body, _ := io.ReadAll(resp.Body) return nil, fmt.Errorf("on pull registry responded with code %d: %s", resp.StatusCode, body) } From 07ed69bc37fd147257e9b5fe45492b1323df1d52 Mon Sep 17 00:00:00 2001 From: Bruce MacDonald Date: Tue, 25 Jul 2023 10:30:14 -0400 Subject: [PATCH 2/2] remove reduandant err var --- server/images.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server/images.go b/server/images.go index 9be097d1..370a5e6d 100644 --- a/server/images.go +++ b/server/images.go @@ -738,8 +738,6 @@ func PullModel(name string, regOpts *RegistryOptions, fn func(api.ProgressRespon return nil } -var errModelNotFound = fmt.Errorf("model not found") - func pullModelManifest(mp ModelPath, regOpts *RegistryOptions) (*ManifestV2, error) { url := fmt.Sprintf("%s/v2/%s/manifests/%s", mp.Registry, mp.GetNamespaceRepository(), mp.Tag) headers := map[string]string{ @@ -756,7 +754,7 @@ func pullModelManifest(mp ModelPath, regOpts *RegistryOptions) (*ManifestV2, err // Check for success: For a successful upload, the Docker registry will respond with a 201 Created if resp.StatusCode != http.StatusOK { if resp.StatusCode == http.StatusNotFound { - return nil, errModelNotFound + return nil, fmt.Errorf("model not found") } body, _ := io.ReadAll(resp.Body) return nil, fmt.Errorf("on pull registry responded with code %d: %s", resp.StatusCode, body)