Merge pull request #9788 from kiashok/criRemoveImage
Add CRIImageService.RemoveImage()
This commit is contained in:
commit
97f86f18ae
@ -34,17 +34,24 @@ import (
|
|||||||
// Remove the whole image no matter the it's image id or reference. This is the
|
// Remove the whole image no matter the it's image id or reference. This is the
|
||||||
// semantic defined in CRI now.
|
// semantic defined in CRI now.
|
||||||
func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.RemoveImageRequest) (*runtime.RemoveImageResponse, error) {
|
func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.RemoveImageRequest) (*runtime.RemoveImageResponse, error) {
|
||||||
|
err := c.CRIImageService.RemoveImage(ctx, r.GetImage())
|
||||||
|
if err != nil && !errdefs.IsNotFound(err) {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &runtime.RemoveImageResponse{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *CRIImageService) RemoveImage(ctx context.Context, imageSpec *runtime.ImageSpec) error {
|
||||||
span := tracing.SpanFromContext(ctx)
|
span := tracing.SpanFromContext(ctx)
|
||||||
|
|
||||||
// TODO: Move to separate function
|
image, err := c.LocalResolve(imageSpec.GetImage())
|
||||||
image, err := c.LocalResolve(r.GetImage().GetImage())
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errdefs.IsNotFound(err) {
|
if errdefs.IsNotFound(err) {
|
||||||
span.AddEvent(err.Error())
|
span.AddEvent(err.Error())
|
||||||
// return empty without error when image not found.
|
// return empty without error when image not found.
|
||||||
return &runtime.RemoveImageResponse{}, nil
|
return nil
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("can not resolve %q locally: %w", r.GetImage().GetImage(), err)
|
return fmt.Errorf("can not resolve %q locally: %w", imageSpec.GetImage(), err)
|
||||||
}
|
}
|
||||||
span.SetAttributes(tracing.Attribute("image.id", image.ID))
|
span.SetAttributes(tracing.Attribute("image.id", image.ID))
|
||||||
// Remove all image references.
|
// Remove all image references.
|
||||||
@ -60,11 +67,11 @@ func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.Remove
|
|||||||
if err == nil || errdefs.IsNotFound(err) {
|
if err == nil || errdefs.IsNotFound(err) {
|
||||||
// Update image store to reflect the newest state in containerd.
|
// Update image store to reflect the newest state in containerd.
|
||||||
if err := c.imageStore.Update(ctx, ref); err != nil {
|
if err := c.imageStore.Update(ctx, ref); err != nil {
|
||||||
return nil, fmt.Errorf("failed to update image reference %q for %q: %w", ref, image.ID, err)
|
return fmt.Errorf("failed to update image reference %q for %q: %w", ref, image.ID, err)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("failed to delete image reference %q for %q: %w", ref, image.ID, err)
|
return fmt.Errorf("failed to delete image reference %q for %q: %w", ref, image.ID, err)
|
||||||
}
|
}
|
||||||
return &runtime.RemoveImageResponse{}, nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user