Skip to content

Commit

Permalink
Merge pull request #47449 from vvoland/c8d-list-single
Browse files Browse the repository at this point in the history
c8d/list: Add test and combine size
  • Loading branch information
vvoland committed Mar 7, 2024
2 parents 608d77d + 2f1a32e commit f4c696e
Show file tree
Hide file tree
Showing 20 changed files with 620 additions and 191 deletions.
8 changes: 4 additions & 4 deletions daemon/containerd/image.go
Expand Up @@ -178,7 +178,7 @@ func (i *ImageService) GetImageManifest(ctx context.Context, refOrID string, opt
platform = platforms.Only(*options.Platform)
}

cs := i.client.ContentStore()
cs := i.content

img, err := i.resolveImage(ctx, refOrID)
if err != nil {
Expand Down Expand Up @@ -237,7 +237,7 @@ func (i *ImageService) GetImageManifest(ctx context.Context, refOrID string, opt
func (i *ImageService) size(ctx context.Context, desc ocispec.Descriptor, platform platforms.MatchComparer) (int64, error) {
var size int64

cs := i.client.ContentStore()
cs := i.content
handler := containerdimages.LimitManifests(containerdimages.ChildrenHandler(cs), platform, 1)

var wh containerdimages.HandlerFunc = func(ctx context.Context, desc ocispec.Descriptor) ([]ocispec.Descriptor, error) {
Expand Down Expand Up @@ -360,7 +360,7 @@ func (i *ImageService) resolveImage(ctx context.Context, refOrID string) (contai
// pointing to the same repository as the given reference.
func (i *ImageService) getAllImagesWithRepository(ctx context.Context, ref reference.Named) ([]containerdimages.Image, error) {
nameFilter := "^" + regexp.QuoteMeta(ref.Name()) + ":" + reference.TagRegexp.String() + "$"
return i.client.ImageService().List(ctx, "name~="+strconv.Quote(nameFilter))
return i.images.List(ctx, "name~="+strconv.Quote(nameFilter))
}

func imageFamiliarName(img containerdimages.Image) string {
Expand All @@ -378,7 +378,7 @@ func imageFamiliarName(img containerdimages.Image) string {
// targeting the specified digest.
// If images have different values, an errdefs.Conflict error will be returned.
func (i *ImageService) getImageLabelByDigest(ctx context.Context, target digest.Digest, labelKey string) (string, error) {
imgs, err := i.client.ImageService().List(ctx, "target.digest=="+target.String()+",labels."+labelKey)
imgs, err := i.images.List(ctx, "target.digest=="+target.String()+",labels."+labelKey)
if err != nil {
return "", errdefs.System(err)
}
Expand Down
14 changes: 7 additions & 7 deletions daemon/containerd/image_builder.go
Expand Up @@ -202,12 +202,12 @@ func newROLayerForImage(ctx context.Context, imgDesc *ocispec.Descriptor, i *Ima
platMatcher = platforms.Only(*platform)
}

confDesc, err := containerdimages.Config(ctx, i.client.ContentStore(), *imgDesc, platMatcher)
confDesc, err := containerdimages.Config(ctx, i.content, *imgDesc, platMatcher)
if err != nil {
return nil, err
}

diffIDs, err := containerdimages.RootFS(ctx, i.client.ContentStore(), confDesc)
diffIDs, err := containerdimages.RootFS(ctx, i.content, confDesc)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -446,7 +446,7 @@ func (i *ImageService) CreateImage(ctx context.Context, config []byte, parent st
if err != nil {
return nil, err
}
parentImageManifest, err := containerdimages.Manifest(ctx, i.client.ContentStore(), parentDesc, platforms.Default())
parentImageManifest, err := containerdimages.Manifest(ctx, i.content, parentDesc, platforms.Default())
if err != nil {
return nil, err
}
Expand All @@ -455,7 +455,7 @@ func (i *ImageService) CreateImage(ctx context.Context, config []byte, parent st
parentDigest = parentDesc.Digest
}

cs := i.client.ContentStore()
cs := i.content

ra, err := cs.ReaderAt(ctx, ocispec.Descriptor{Digest: layerDigest})
if err != nil {
Expand Down Expand Up @@ -504,7 +504,7 @@ func (i *ImageService) createImageOCI(ctx context.Context, imgToCreate imagespec
}
}()

manifestDesc, ccDesc, err := writeContentsForImage(ctx, i.snapshotter, i.client.ContentStore(), imgToCreate, layers, containerConfig)
manifestDesc, ccDesc, err := writeContentsForImage(ctx, i.snapshotter, i.content, imgToCreate, layers, containerConfig)
if err != nil {
return "", err
}
Expand All @@ -523,13 +523,13 @@ func (i *ImageService) createImageOCI(ctx context.Context, imgToCreate imagespec
img.Labels[imageLabelClassicBuilderFromScratch] = "1"
}

createdImage, err := i.client.ImageService().Update(ctx, img)
createdImage, err := i.images.Update(ctx, img)
if err != nil {
if !cerrdefs.IsNotFound(err) {
return "", err
}

if createdImage, err = i.client.ImageService().Create(ctx, img); err != nil {
if createdImage, err = i.images.Create(ctx, img); err != nil {
return "", fmt.Errorf("failed to create new image: %w", err)
}
}
Expand Down
2 changes: 1 addition & 1 deletion daemon/containerd/image_commit.go
Expand Up @@ -38,7 +38,7 @@ with adaptations to match the Moby data model and services.
// CommitImage creates a new image from a commit config.
func (i *ImageService) CommitImage(ctx context.Context, cc backend.CommitConfig) (image.ID, error) {
container := i.containers.Get(cc.ContainerID)
cs := i.client.ContentStore()
cs := i.content

var parentManifest ocispec.Manifest
var parentImage imagespec.DockerOCIImage
Expand Down
2 changes: 1 addition & 1 deletion daemon/containerd/image_delete.go
Expand Up @@ -375,7 +375,7 @@ func (i *ImageService) imageDeleteHelper(ctx context.Context, img images.Image,
CreatedAt: time.Now(),
Labels: img.Labels,
}
if _, err = i.client.ImageService().Create(ctx, img); err != nil && !cerrdefs.IsAlreadyExists(err) {
if _, err = i.images.Create(ctx, img); err != nil && !cerrdefs.IsAlreadyExists(err) {
return fmt.Errorf("failed to create dangling image: %w", err)
}
}
Expand Down
5 changes: 2 additions & 3 deletions daemon/containerd/image_history.go
Expand Up @@ -84,13 +84,12 @@ func (i *ImageService) ImageHistory(ctx context.Context, name string) ([]*imaget
return imgs
}

is := i.client.ImageService()
currentImg := img
for _, h := range history {
dgst := currentImg.Target.Digest.String()
h.ID = dgst

imgs, err := is.List(ctx, "target.digest=="+dgst)
imgs, err := i.images.List(ctx, "target.digest=="+dgst)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -157,5 +156,5 @@ func (i *ImageService) getParentsByBuilderLabel(ctx context.Context, img contain
return nil, nil
}

return i.client.ImageService().List(ctx, "target.digest=="+dgst.String())
return i.images.List(ctx, "target.digest=="+dgst.String())
}
8 changes: 3 additions & 5 deletions daemon/containerd/image_import.go
Expand Up @@ -66,7 +66,7 @@ func (i *ImageService) ImportImage(ctx context.Context, ref reference.Named, pla
return "", errdefs.InvalidParameter(err)
}

cs := i.client.ContentStore()
cs := i.content

compressedDigest, uncompressedDigest, mt, err := saveArchive(ctx, cs, layerReader)
if err != nil {
Expand Down Expand Up @@ -299,11 +299,9 @@ func writeBlobAndReturnDigest(ctx context.Context, cs content.Store, mt string,

// saveImage creates an image in the ImageService or updates it if it exists.
func (i *ImageService) saveImage(ctx context.Context, img images.Image) error {
is := i.client.ImageService()

if _, err := is.Update(ctx, img); err != nil {
if _, err := i.images.Update(ctx, img); err != nil {
if cerrdefs.IsNotFound(err) {
if _, err := is.Create(ctx, img); err != nil {
if _, err := i.images.Create(ctx, img); err != nil {
return errdefs.Unknown(err)
}
} else {
Expand Down

0 comments on commit f4c696e

Please sign in to comment.