From 42a2059a5d0500d446ad339ce25c754f3466b048 Mon Sep 17 00:00:00 2001 From: Victor Marmol Date: Mon, 27 Apr 2015 15:55:13 -0700 Subject: [PATCH] Remove DockerPrefix references in Kubelet. Makes this usage generic and usable by other runtimes. --- pkg/kubelet/container/helpers.go | 13 +++++++++++++ pkg/kubelet/kubelet.go | 5 ++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/container/helpers.go b/pkg/kubelet/container/helpers.go index 8ae31c64a71..0e66f511c2e 100644 --- a/pkg/kubelet/container/helpers.go +++ b/pkg/kubelet/container/helpers.go @@ -17,6 +17,8 @@ limitations under the License. package container import ( + "strings" + "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/probe" ) @@ -37,3 +39,14 @@ type Prober interface { type RunContainerOptionsGenerator interface { GenerateRunContainerOptions(pod *api.Pod, container *api.Container, netMode, ipcMode string) (*RunContainerOptions, error) } + +// Trims runtime prefix from image name (e.g.: docker://busybox -> busybox). +func TrimRuntimePrefixFromImage(img string) string { + const prefixSeparator = "://" + + idx := strings.Index(img, prefixSeparator) + if idx < 0 { + return img + } + return img[idx+len(prefixSeparator):] +} diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 7754c62b449..c5a119737c4 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -934,8 +934,7 @@ func shouldContainerBeRestarted(container *api.Container, pod *api.Pod, podStatu // Set dead containers to unready state. for _, c := range resultStatus { - // TODO(yifan): Unify the format of container ID. (i.e. including docker:// as prefix). - readinessManager.RemoveReadiness(strings.TrimPrefix(c.ContainerID, dockertools.DockerPrefix)) + readinessManager.RemoveReadiness(kubecontainer.TrimRuntimePrefixFromImage(c.ContainerID)) } // Check RestartPolicy for dead container. @@ -1653,7 +1652,7 @@ func (kl *Kubelet) validateContainerStatus(podStatus *api.PodStatus, containerNa if cStatus.State.Waiting != nil { return "", fmt.Errorf("container %q is in waiting state.", containerName) } - return strings.Replace(cStatus.ContainerID, dockertools.DockerPrefix, "", 1), nil + return kubecontainer.TrimRuntimePrefixFromImage(cStatus.ContainerID), nil } // GetKubeletContainerLogs returns logs from the container