Skip to content

Commit 97f86f1

Browse files
authored
Merge pull request containerd#9788 from kiashok/criRemoveImage
Add CRIImageService.RemoveImage()
2 parents 32169d5 + b9dfba5 commit 97f86f1

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

internal/cri/server/images/image_remove.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,24 @@ import (
3434
// Remove the whole image no matter the it's image id or reference. This is the
3535
// semantic defined in CRI now.
3636
func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.RemoveImageRequest) (*runtime.RemoveImageResponse, error) {
37+
err := c.CRIImageService.RemoveImage(ctx, r.GetImage())
38+
if err != nil && !errdefs.IsNotFound(err) {
39+
return nil, err
40+
}
41+
return &runtime.RemoveImageResponse{}, nil
42+
}
43+
44+
func (c *CRIImageService) RemoveImage(ctx context.Context, imageSpec *runtime.ImageSpec) error {
3745
span := tracing.SpanFromContext(ctx)
3846

39-
// TODO: Move to separate function
40-
image, err := c.LocalResolve(r.GetImage().GetImage())
47+
image, err := c.LocalResolve(imageSpec.GetImage())
4148
if err != nil {
4249
if errdefs.IsNotFound(err) {
4350
span.AddEvent(err.Error())
4451
// return empty without error when image not found.
45-
return &runtime.RemoveImageResponse{}, nil
52+
return nil
4653
}
47-
return nil, fmt.Errorf("can not resolve %q locally: %w", r.GetImage().GetImage(), err)
54+
return fmt.Errorf("can not resolve %q locally: %w", imageSpec.GetImage(), err)
4855
}
4956
span.SetAttributes(tracing.Attribute("image.id", image.ID))
5057
// Remove all image references.
@@ -60,11 +67,11 @@ func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.Remove
6067
if err == nil || errdefs.IsNotFound(err) {
6168
// Update image store to reflect the newest state in containerd.
6269
if err := c.imageStore.Update(ctx, ref); err != nil {
63-
return nil, fmt.Errorf("failed to update image reference %q for %q: %w", ref, image.ID, err)
70+
return fmt.Errorf("failed to update image reference %q for %q: %w", ref, image.ID, err)
6471
}
6572
continue
6673
}
67-
return nil, fmt.Errorf("failed to delete image reference %q for %q: %w", ref, image.ID, err)
74+
return fmt.Errorf("failed to delete image reference %q for %q: %w", ref, image.ID, err)
6875
}
69-
return &runtime.RemoveImageResponse{}, nil
76+
return nil
7077
}

0 commit comments

Comments
 (0)