diff --git a/src/app/backend/replicasetpods.go b/src/app/backend/replicasetpods.go index 37f47e2256de27eccaaf97fba7f074c4dbea28dd..a4f7353869af7df11bae9a805cf44e3bb9f7fb5e 100644 --- a/src/app/backend/replicasetpods.go +++ b/src/app/backend/replicasetpods.go @@ -80,17 +80,28 @@ func getReplicaSetPods(pods []api.Pod, limit int) *ReplicaSetPods { for _, pod := range pods { totalRestartCount := 0 replicaSetPodWithContainers := ReplicaSetPodWithContainers{ - Name: pod.Name, - StartTime: pod.Status.StartTime, + Name: pod.Name, + StartTime: pod.Status.StartTime, + PodContainers: make([]PodContainer, 0), } - for _, containerStatus := range pod.Status.ContainerStatuses { - podContainer := PodContainer{ - Name: containerStatus.Name, - RestartCount: containerStatus.RestartCount, - } + + podContainersByName := make(map[string]*PodContainer) + + for _, container := range pod.Spec.Containers { + podContainer := PodContainer{Name: container.Name} replicaSetPodWithContainers.PodContainers = append(replicaSetPodWithContainers.PodContainers, podContainer) - totalRestartCount += containerStatus.RestartCount + + podContainersByName[container.Name] = &(replicaSetPodWithContainers. + PodContainers[len(replicaSetPodWithContainers.PodContainers)-1]) + } + + for _, containerStatus := range pod.Status.ContainerStatuses { + podContainer, ok := podContainersByName[containerStatus.Name] + if ok { + podContainer.RestartCount = containerStatus.RestartCount + totalRestartCount += containerStatus.RestartCount + } } replicaSetPodWithContainers.TotalRestartCount = totalRestartCount replicaSetPods.Pods = append(replicaSetPods.Pods, replicaSetPodWithContainers) @@ -103,5 +114,6 @@ func getReplicaSetPods(pods []api.Pod, limit int) *ReplicaSetPods { } replicaSetPods.Pods = replicaSetPods.Pods[0:limit] } + return replicaSetPods } diff --git a/src/test/backend/replicasetpods_test.go b/src/test/backend/replicasetpods_test.go index abc34d453df03feba6dc0845795fc80eee244b7e..80ac288035a0413b9155b5861505882441e6dc4f 100644 --- a/src/test/backend/replicasetpods_test.go +++ b/src/test/backend/replicasetpods_test.go @@ -27,6 +27,12 @@ func TestGetReplicaSetPods(t *testing.T) { ObjectMeta: api.ObjectMeta{ Name: "pod-1", }, + Spec: api.PodSpec{ + Containers: []api.Container{ + {Name: "container-1"}, + {Name: "container-2"}, + }, + }, Status: api.PodStatus{ ContainerStatuses: []api.ContainerStatus{ { @@ -44,6 +50,11 @@ func TestGetReplicaSetPods(t *testing.T) { ObjectMeta: api.ObjectMeta{ Name: "pod-2", }, + Spec: api.PodSpec{ + Containers: []api.Container{ + {Name: "container-3"}, + }, + }, Status: api.PodStatus{ ContainerStatuses: []api.ContainerStatus{ { diff --git a/src/test/backend/validateappname_test.go b/src/test/backend/validateappname_test.go index 3213b2f6c5e05e0c8a9b2b6d4ea2f1a6b711cb39..2f1bf5d02c084655636bc1a1c8da937ae2f5167d 100644 --- a/src/test/backend/validateappname_test.go +++ b/src/test/backend/validateappname_test.go @@ -15,7 +15,6 @@ package main import ( - "fmt" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/unversioned/testclient" "k8s.io/kubernetes/pkg/runtime" @@ -57,7 +56,6 @@ func TestValidateName(t *testing.T) { for _, c := range cases { testClient := testclient.NewSimpleFake(c.objects...) validity, _ := ValidateAppName(c.spec, testClient) - fmt.Printf("%#v\n", validity) if validity.Valid != c.expected { t.Errorf("Expected %#v validity to be %#v for objects %#v, but was %#v\n", c.spec, c.expected, c.objects, validity)