mirror of https://github.com/k3s-io/k3s
kubelet: Refactor isPodRunning() in runonce.go
Replace InspectContainer() with generic GetPodStatus().pull/6/head
parent
44e7109341
commit
c848fa447d
|
@ -22,6 +22,7 @@ import (
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
|
||||||
|
kubecontainer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/container"
|
||||||
"github.com/golang/glog"
|
"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.
|
// isPodRunning returns true if all containers of a manifest are running.
|
||||||
func (kl *Kubelet) isPodRunning(pod *api.Pod, runningPod container.Pod) (bool, error) {
|
func (kl *Kubelet) isPodRunning(pod *api.Pod, runningPod container.Pod) (bool, error) {
|
||||||
for _, container := range pod.Spec.Containers {
|
status, err := kl.containerManager.GetPodStatus(pod)
|
||||||
c := runningPod.FindContainerByName(container.Name)
|
if err != nil {
|
||||||
if c == nil {
|
glog.Infof("Failed to get the status of pod %q: %v", kubecontainer.GetPodFullName(pod), err)
|
||||||
glog.Infof("container %q not found", container.Name)
|
return false, err
|
||||||
return false, nil
|
}
|
||||||
}
|
for _, st := range status.ContainerStatuses {
|
||||||
inspectResult, err := kl.dockerClient.InspectContainer(string(c.ID))
|
if st.State.Running == nil {
|
||||||
if err != nil {
|
glog.Infof("Container %q not running: %#v", st.Name, st.State)
|
||||||
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)
|
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,6 +113,7 @@ func TestRunOnce(t *testing.T) {
|
||||||
{label: "list pod container", containers: []docker.APIContainers{}},
|
{label: "list pod container", containers: []docker.APIContainers{}},
|
||||||
{label: "syncPod", containers: podContainers},
|
{label: "syncPod", containers: podContainers},
|
||||||
{label: "list pod container", containers: podContainers},
|
{label: "list pod container", containers: podContainers},
|
||||||
|
{label: "list pod container", containers: podContainers},
|
||||||
},
|
},
|
||||||
inspectContainersResults: []inspectContainersResult{
|
inspectContainersResults: []inspectContainersResult{
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue