|
@@ -250,19 +250,21 @@ func GetModel(name string) (*Model, error) {
|
|
|
Template: template.DefaultTemplate,
|
|
|
}
|
|
|
|
|
|
- filename, err := GetBlobsPath(manifest.Config.Digest)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
+ if manifest.Config.Digest != "" {
|
|
|
+ filename, err := GetBlobsPath(manifest.Config.Digest)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
|
|
|
- configFile, err := os.Open(filename)
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
- defer configFile.Close()
|
|
|
+ configFile, err := os.Open(filename)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ defer configFile.Close()
|
|
|
|
|
|
- if err := json.NewDecoder(configFile).Decode(&model.Config); err != nil {
|
|
|
- return nil, err
|
|
|
+ if err := json.NewDecoder(configFile).Decode(&model.Config); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
for _, layer := range manifest.Layers {
|
|
@@ -781,7 +783,7 @@ func PruneLayers() error {
|
|
|
|
|
|
err = deleteUnusedLayers(nil, deleteMap)
|
|
|
if err != nil {
|
|
|
- slog.Info(fmt.Sprintf("couldn't remove unused layers: %v", err))
|
|
|
+ slog.Error(fmt.Sprintf("couldn't remove unused layers: %v", err))
|
|
|
return nil
|
|
|
}
|
|
|
|
|
@@ -839,7 +841,9 @@ func PushModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
|
|
|
|
|
|
var layers []*Layer
|
|
|
layers = append(layers, manifest.Layers...)
|
|
|
- layers = append(layers, manifest.Config)
|
|
|
+ if manifest.Config.Digest != "" {
|
|
|
+ layers = append(layers, &manifest.Config)
|
|
|
+ }
|
|
|
|
|
|
for _, layer := range layers {
|
|
|
if err := uploadBlob(ctx, mp, layer, regOpts, fn); err != nil {
|
|
@@ -890,7 +894,9 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
|
|
|
for _, l := range manifest.Layers {
|
|
|
deleteMap[l.Digest] = struct{}{}
|
|
|
}
|
|
|
- deleteMap[manifest.Config.Digest] = struct{}{}
|
|
|
+ if manifest.Config.Digest != "" {
|
|
|
+ deleteMap[manifest.Config.Digest] = struct{}{}
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -907,7 +913,9 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
|
|
|
|
|
|
var layers []*Layer
|
|
|
layers = append(layers, manifest.Layers...)
|
|
|
- layers = append(layers, manifest.Config)
|
|
|
+ if manifest.Config.Digest != "" {
|
|
|
+ layers = append(layers, &manifest.Config)
|
|
|
+ }
|
|
|
|
|
|
skipVerify := make(map[string]bool)
|
|
|
for _, layer := range layers {
|
|
@@ -971,7 +979,7 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
|
|
|
fn(api.ProgressResponse{Status: "removing any unused layers"})
|
|
|
err = deleteUnusedLayers(nil, deleteMap)
|
|
|
if err != nil {
|
|
|
- slog.Info(fmt.Sprintf("couldn't remove unused layers: %v", err))
|
|
|
+ slog.Error(fmt.Sprintf("couldn't remove unused layers: %v", err))
|
|
|
fn(api.ProgressResponse{Status: fmt.Sprintf("couldn't remove unused layers: %v", err)})
|
|
|
}
|
|
|
}
|