Fix image usage calculation error
Including snapshotter usage in total calculation should be gated by the option `snapshotter` boolean. Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
This commit is contained in:
parent
4e08c2de67
commit
0c9b05fa60
36
image.go
36
image.go
@ -203,24 +203,26 @@ func (i *image) Usage(ctx context.Context, opts ...UsageOpt) (int64, error) {
|
|||||||
desc.Size = info.Size
|
desc.Size = info.Size
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v := range info.Labels {
|
if config.snapshots {
|
||||||
const prefix = "containerd.io/gc.ref.snapshot."
|
for k, v := range info.Labels {
|
||||||
if !strings.HasPrefix(k, prefix) {
|
const prefix = "containerd.io/gc.ref.snapshot."
|
||||||
continue
|
if !strings.HasPrefix(k, prefix) {
|
||||||
}
|
continue
|
||||||
|
}
|
||||||
sn := i.client.SnapshotService(k[len(prefix):])
|
|
||||||
if sn == nil {
|
sn := i.client.SnapshotService(k[len(prefix):])
|
||||||
continue
|
if sn == nil {
|
||||||
}
|
continue
|
||||||
|
}
|
||||||
u, err := sn.Usage(ctx, v)
|
|
||||||
if err != nil {
|
u, err := sn.Usage(ctx, v)
|
||||||
if !errdefs.IsNotFound(err) && !errdefs.IsInvalidArgument(err) {
|
if err != nil {
|
||||||
return nil, err
|
if !errdefs.IsNotFound(err) && !errdefs.IsInvalidArgument(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
usage += u.Size
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
usage += u.Size
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,6 +180,7 @@ func TestImageUsage(t *testing.T) {
|
|||||||
|
|
||||||
// Pin image name to specific version for future fetches
|
// Pin image name to specific version for future fetches
|
||||||
imageName = imageName + "@" + image.Target().Digest.String()
|
imageName = imageName + "@" + image.Target().Digest.String()
|
||||||
|
defer client.ImageService().Delete(ctx, imageName, images.SynchronousDelete())
|
||||||
|
|
||||||
// Fetch single platforms, but all manifests pulled
|
// Fetch single platforms, but all manifests pulled
|
||||||
if _, err := client.Fetch(ctx, imageName, WithPlatformMatcher(testPlatform), WithAllMetadata()); err != nil {
|
if _, err := client.Fetch(ctx, imageName, WithPlatformMatcher(testPlatform), WithAllMetadata()); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user