summaryrefslogtreecommitdiff
path: root/api/server
diff options
context:
space:
mode:
authorNicolas De Loof <nicolas.deloof@gmail.com>2022-07-25 17:24:03 +0200
committerSebastiaan van Stijn <github@gone.nl>2022-12-09 19:02:12 +0100
commit8fb71ce20894c0c7fbd9ee6058bf2c0e82d6a77c (patch)
tree211e3a8a078aadac914637ef06b45f546f5da0e7 /api/server
parenta8eb15eafb452151cffcd8ffed3c637c64573fa0 (diff)
downloaddocker-8fb71ce20894c0c7fbd9ee6058bf2c0e82d6a77c.tar.gz
manage image inspect data in backend
This allows differentiating how the detailed data is collected between the containerd-integration code and the existing implementation. Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'api/server')
-rw-r--r--api/server/router/image/image_routes.go33
1 files changed, 6 insertions, 27 deletions
diff --git a/api/server/router/image/image_routes.go b/api/server/router/image/image_routes.go
index 08d3f9a168..16c9eccc7d 100644
--- a/api/server/router/image/image_routes.go
+++ b/api/server/router/image/image_routes.go
@@ -17,7 +17,6 @@ import (
"github.com/docker/docker/api/types/versions"
"github.com/docker/docker/errdefs"
"github.com/docker/docker/image"
- "github.com/docker/docker/layer"
"github.com/docker/docker/pkg/ioutils"
"github.com/docker/docker/pkg/streamformatter"
specs "github.com/opencontainers/image-spec/specs-go/v1"
@@ -193,7 +192,7 @@ func (ir *imageRouter) deleteImages(ctx context.Context, w http.ResponseWriter,
}
func (ir *imageRouter) getImagesByName(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
- img, err := ir.backend.GetImage(ctx, vars["name"], opts.GetImageOpts{})
+ img, err := ir.backend.GetImage(ctx, vars["name"], opts.GetImageOpts{Details: true})
if err != nil {
return err
}
@@ -218,31 +217,11 @@ func (ir *imageRouter) toImageInspect(img *image.Image) (*types.ImageInspect, er
}
}
- var size int64
- var layerMetadata map[string]string
- if layerID := img.RootFS.ChainID(); layerID != "" {
- l, err := ir.layerStore.Get(layerID)
- if err != nil {
- return nil, err
- }
- defer layer.ReleaseAndLog(ir.layerStore, l)
- size = l.Size()
- layerMetadata, err = l.Metadata()
- if err != nil {
- return nil, err
- }
- }
-
comment := img.Comment
if len(comment) == 0 && len(img.History) > 0 {
comment = img.History[len(img.History)-1].Comment
}
- lastUpdated, err := ir.imageStore.GetLastUpdated(img.ID())
- if err != nil {
- return nil, err
- }
-
return &types.ImageInspect{
ID: img.ID().String(),
RepoTags: repoTags,
@@ -259,15 +238,15 @@ func (ir *imageRouter) toImageInspect(img *image.Image) (*types.ImageInspect, er
Variant: img.Variant,
Os: img.OperatingSystem(),
OsVersion: img.OSVersion,
- Size: size,
- VirtualSize: size, // TODO: field unused, deprecate
+ Size: img.Details.Size,
+ VirtualSize: img.Details.Size, // TODO: field unused, deprecate
GraphDriver: types.GraphDriverData{
- Name: ir.layerStore.DriverName(),
- Data: layerMetadata,
+ Name: img.Details.Driver,
+ Data: img.Details.Metadata,
},
RootFS: rootFSToAPIType(img.RootFS),
Metadata: types.ImageMetadata{
- LastTagTime: lastUpdated,
+ LastTagTime: img.Details.LastUpdated,
},
}, nil
}