diff --git a/pkg/kubelet/dockertools/fake_docker_client.go b/pkg/kubelet/dockertools/fake_docker_client.go index b3ac10cb21c..b3bf57b28b8 100644 --- a/pkg/kubelet/dockertools/fake_docker_client.go +++ b/pkg/kubelet/dockertools/fake_docker_client.go @@ -33,6 +33,7 @@ import ( dockercontainer "github.com/docker/engine-api/types/container" "k8s.io/client-go/util/clock" + "k8s.io/kubernetes/pkg/api/v1" ) type calledDetail struct { @@ -797,3 +798,21 @@ func (f *FakeDockerClient) InjectImageHistory(data map[string][]dockertypes.Imag defer f.Unlock() f.ImageHistoryMap = data } + +// FakeDockerPuller is meant to be a simple wrapper around FakeDockerClient. +// Please do not add more functionalities to it. +type FakeDockerPuller struct { + client DockerInterface +} + +func (f *FakeDockerPuller) Pull(image string, _ []v1.Secret) error { + return f.client.PullImage(image, dockertypes.AuthConfig{}, dockertypes.ImagePullOptions{}) +} + +func (f *FakeDockerPuller) GetImageRef(image string) (string, error) { + _, err := f.client.InspectImageByRef(image) + if err != nil && IsImageNotFoundError(err) { + return "", nil + } + return image, err +} diff --git a/pkg/kubelet/dockertools/fake_manager.go b/pkg/kubelet/dockertools/fake_manager.go index e3b017af826..83f4d35fbe6 100644 --- a/pkg/kubelet/dockertools/fake_manager.go +++ b/pkg/kubelet/dockertools/fake_manager.go @@ -52,7 +52,7 @@ func NewFakeDockerManager( dm := NewDockerManager(client, recorder, livenessManager, containerRefManager, fakePodGetter, machineInfo, podInfraContainerImage, qps, burst, containerLogsDir, osInterface, networkPlugin, runtimeHelper, httpClient, &NativeExecHandler{}, fakeOOMAdjuster, fakeProcFs, false, imageBackOff, false, false, true, "/var/lib/kubelet/seccomp") - dm.dockerPuller = newDockerPuller(client) + dm.dockerPuller = &FakeDockerPuller{client: client} // ttl of version cache is set to 0 so we always call version api directly in tests. dm.versionCache = cache.NewObjectCache(