From 1369a263f576270c85974e69b6ad8e7a80a6f494 Mon Sep 17 00:00:00 2001 From: Crazykev Date: Mon, 15 May 2017 14:11:19 +0800 Subject: [PATCH] continue remove image when can't find image id with ref Signed-off-by: Crazykev --- pkg/kubelet/dockershim/docker_image.go | 7 +++++-- pkg/kubelet/dockershim/libdocker/helpers.go | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/dockershim/docker_image.go b/pkg/kubelet/dockershim/docker_image.go index 850f109e649..92cc2285bba 100644 --- a/pkg/kubelet/dockershim/docker_image.go +++ b/pkg/kubelet/dockershim/docker_image.go @@ -101,8 +101,11 @@ func (ds *dockerService) RemoveImage(image *runtimeapi.ImageSpec) error { } } return nil - } else if err != nil && libdocker.IsImageNotFoundError(err) { - return nil + } + // dockerclient.InspectImageByID doesn't work with digest and repoTags, + // it is safe to continue removing it since there is another check below. + if err != nil && !libdocker.IsImageNotFoundError(err) { + return err } _, err = ds.client.RemoveImage(image.Image, dockertypes.ImageRemoveOptions{PruneChildren: true}) diff --git a/pkg/kubelet/dockershim/libdocker/helpers.go b/pkg/kubelet/dockershim/libdocker/helpers.go index 1dc778ef7b4..5dd59557e9f 100644 --- a/pkg/kubelet/dockershim/libdocker/helpers.go +++ b/pkg/kubelet/dockershim/libdocker/helpers.go @@ -133,5 +133,8 @@ func matchImageIDOnly(inspected dockertypes.ImageInspect, image string) bool { // isImageNotFoundError returns whether the err is caused by image not found in docker // TODO: Use native error tester once ImageNotFoundError is supported in docker-engine client(eg. ImageRemove()) func isImageNotFoundError(err error) bool { - return strings.Contains(err.Error(), "No such image:") + if err != nil { + return strings.Contains(err.Error(), "No such image:") + } + return false }