Merge pull request #22767 from yifan-gu/rkt_getpods

Auto commit by PR queue bot
pull/6/head
k8s-merge-robot 2016-03-11 04:08:38 -08:00
commit accd6a49be
2 changed files with 46 additions and 5 deletions

View File

@ -997,16 +997,31 @@ func (r *Runtime) GetPods(all bool) ([]*kubecontainer.Pod, error) {
return nil, fmt.Errorf("couldn't list pods: %v", err)
}
var pods []*kubecontainer.Pod
pods := make(map[types.UID]*kubecontainer.Pod)
for _, pod := range listResp.Pods {
pod, err := r.convertRktPod(pod)
if err != nil {
glog.Warningf("rkt: Cannot construct pod from unit file: %v.", err)
continue
}
pods = append(pods, pod)
// Group pods together.
oldPod, found := pods[pod.ID]
if !found {
pods[pod.ID] = pod
continue
}
oldPod.Containers = append(oldPod.Containers, pod.Containers...)
}
return pods, nil
// Convert map to list.
var result []*kubecontainer.Pod
for _, p := range pods {
result = append(result, p)
}
return result, nil
}
// KillPod invokes 'systemctl kill' to kill the unit that runs the pod.

View File

@ -409,7 +409,17 @@ func TestGetPods(t *testing.T) {
[]string{"img-id-11", "img-id-22"},
[]string{"img-name-11", "img-name-22"},
[]string{"10011", "10022"},
[]rktapi.AppState{rktapi.AppState_APP_STATE_RUNNING, rktapi.AppState_APP_STATE_EXITED},
[]rktapi.AppState{rktapi.AppState_APP_STATE_EXITED, rktapi.AppState_APP_STATE_EXITED},
[]int32{0, 0},
),
makeRktPod(rktapi.PodState_POD_STATE_EXITED,
"uuid-4004", "43", "guestbook", "default",
"10.10.10.44", "100000", "8",
[]string{"app-11", "app-22"},
[]string{"img-id-11", "img-id-22"},
[]string{"img-name-11", "img-name-22"},
[]string{"10011", "10022"},
[]rktapi.AppState{rktapi.AppState_APP_STATE_RUNNING, rktapi.AppState_APP_STATE_RUNNING},
[]int32{0, 0},
),
},
@ -448,7 +458,7 @@ func TestGetPods(t *testing.T) {
Image: "img-name-11",
Hash: 10011,
Created: 90000,
State: "running",
State: "exited",
},
{
ID: kubecontainer.BuildContainerID("rkt", "uuid-4003:app-22"),
@ -458,6 +468,22 @@ func TestGetPods(t *testing.T) {
Created: 90000,
State: "exited",
},
{
ID: kubecontainer.BuildContainerID("rkt", "uuid-4004:app-11"),
Name: "app-11",
Image: "img-name-11",
Hash: 10011,
Created: 100000,
State: "running",
},
{
ID: kubecontainer.BuildContainerID("rkt", "uuid-4004:app-22"),
Name: "app-22",
Image: "img-name-22",
Hash: 10022,
Created: 100000,
State: "running",
},
},
},
},