diff options
author | Nicolas De Loof <nicolas.deloof@gmail.com> | 2022-07-25 17:24:03 +0200 |
---|---|---|
committer | Sebastiaan van Stijn <github@gone.nl> | 2022-12-09 19:02:12 +0100 |
commit | 8fb71ce20894c0c7fbd9ee6058bf2c0e82d6a77c (patch) | |
tree | 211e3a8a078aadac914637ef06b45f546f5da0e7 /api/server | |
parent | a8eb15eafb452151cffcd8ffed3c637c64573fa0 (diff) | |
download | docker-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.go | 33 |
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 } |