@@ -34,17 +34,24 @@ import (
34
34
// Remove the whole image no matter the it's image id or reference. This is the
35
35
// semantic defined in CRI now.
36
36
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 {
37
45
span := tracing .SpanFromContext (ctx )
38
46
39
- // TODO: Move to separate function
40
- image , err := c .LocalResolve (r .GetImage ().GetImage ())
47
+ image , err := c .LocalResolve (imageSpec .GetImage ())
41
48
if err != nil {
42
49
if errdefs .IsNotFound (err ) {
43
50
span .AddEvent (err .Error ())
44
51
// return empty without error when image not found.
45
- return & runtime. RemoveImageResponse {}, nil
52
+ return nil
46
53
}
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 )
48
55
}
49
56
span .SetAttributes (tracing .Attribute ("image.id" , image .ID ))
50
57
// Remove all image references.
@@ -60,11 +67,11 @@ func (c *GRPCCRIImageService) RemoveImage(ctx context.Context, r *runtime.Remove
60
67
if err == nil || errdefs .IsNotFound (err ) {
61
68
// Update image store to reflect the newest state in containerd.
62
69
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 )
64
71
}
65
72
continue
66
73
}
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 )
68
75
}
69
- return & runtime. RemoveImageResponse {}, nil
76
+ return nil
70
77
}
0 commit comments