From c848fa447ddc02fa457543497f15ee2129e8e14e Mon Sep 17 00:00:00 2001 From: Yifan Gu Date: Tue, 28 Apr 2015 17:39:20 -0700 Subject: [PATCH] kubelet: Refactor isPodRunning() in runonce.go Replace InspectContainer() with generic GetPodStatus(). --- pkg/kubelet/runonce.go | 22 +++++++++------------- pkg/kubelet/runonce_test.go | 1 + 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/pkg/kubelet/runonce.go b/pkg/kubelet/runonce.go index f040c5faa6..cf9acca35d 100644 --- a/pkg/kubelet/runonce.go +++ b/pkg/kubelet/runonce.go @@ -22,6 +22,7 @@ import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" + kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container" "github.com/golang/glog" ) @@ -119,19 +120,14 @@ func (kl *Kubelet) runPod(pod *api.Pod, retryDelay time.Duration) error { // isPodRunning returns true if all containers of a manifest are running. func (kl *Kubelet) isPodRunning(pod *api.Pod, runningPod container.Pod) (bool, error) { - for _, container := range pod.Spec.Containers { - c := runningPod.FindContainerByName(container.Name) - if c == nil { - glog.Infof("container %q not found", container.Name) - return false, nil - } - inspectResult, err := kl.dockerClient.InspectContainer(string(c.ID)) - if err != nil { - glog.Infof("failed to inspect container %q: %v", container.Name, err) - return false, err - } - if !inspectResult.State.Running { - glog.Infof("container %q not running: %#v", container.Name, inspectResult.State) + status, err := kl.containerManager.GetPodStatus(pod) + if err != nil { + glog.Infof("Failed to get the status of pod %q: %v", kubecontainer.GetPodFullName(pod), err) + return false, err + } + for _, st := range status.ContainerStatuses { + if st.State.Running == nil { + glog.Infof("Container %q not running: %#v", st.Name, st.State) return false, nil } } diff --git a/pkg/kubelet/runonce_test.go b/pkg/kubelet/runonce_test.go index 544885d2ef..f2e73b51de 100644 --- a/pkg/kubelet/runonce_test.go +++ b/pkg/kubelet/runonce_test.go @@ -113,6 +113,7 @@ func TestRunOnce(t *testing.T) { {label: "list pod container", containers: []docker.APIContainers{}}, {label: "syncPod", containers: podContainers}, {label: "list pod container", containers: podContainers}, + {label: "list pod container", containers: podContainers}, }, inspectContainersResults: []inspectContainersResult{ {