From 5b3a44fd56fff7caf14041231f3f52335f97312e Mon Sep 17 00:00:00 2001 From: Alok Kumar Singh Date: Thu, 11 Apr 2019 20:52:57 +0530 Subject: [PATCH] Use docker api IsErrNotFound(). String handling is not required anymore Why? https://github.com/kubernetes/kubernetes/pull/75843#discussion_r273785877 Moby support: https://github.com/moby/moby/pull/38689 Moby def: https://github.com/moby/moby/blob/053c6f097a1af7047e831094c0dfa3408a2c9d2b/client/errors.go#L44-L49 --- pkg/kubelet/dockershim/libdocker/helpers.go | 9 --------- pkg/kubelet/dockershim/libdocker/kube_docker_client.go | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/pkg/kubelet/dockershim/libdocker/helpers.go b/pkg/kubelet/dockershim/libdocker/helpers.go index a26ca48a36e..171b247f8f0 100644 --- a/pkg/kubelet/dockershim/libdocker/helpers.go +++ b/pkg/kubelet/dockershim/libdocker/helpers.go @@ -161,12 +161,3 @@ func matchImageIDOnly(inspected dockertypes.ImageInspect, image string) bool { klog.V(4).Infof("The reference %s does not directly refer to the given image's ID (%q)", image, inspected.ID) return false } - -// 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 { - if err != nil { - return strings.Contains(err.Error(), "No such image:") - } - return false -} diff --git a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go index 0cdb9955e3d..e458a8fc706 100644 --- a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go +++ b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go @@ -399,7 +399,7 @@ func (d *kubeDockerClient) RemoveImage(image string, opts dockertypes.ImageRemov if ctxErr := contextError(ctx); ctxErr != nil { return nil, ctxErr } - if isImageNotFoundError(err) { + if dockerapi.IsErrNotFound(err) { return nil, ImageNotFoundError{ID: image} } return resp, err