Skip to content

Commit

Permalink
Merge pull request #7198 from yujuhong/fix_filter
Browse files Browse the repository at this point in the history
Fix pod filtering in replication controller
  • Loading branch information
bprashanth committed Apr 23, 2015
2 parents 3ed2dca + 10ecbb8 commit 35cbbe6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
8 changes: 4 additions & 4 deletions pkg/controller/replication_controller.go
Expand Up @@ -190,10 +190,10 @@ func (rm *ReplicationManager) watchControllers(resourceVersion *string) {
// filterActivePods returns pods that have not terminated.
func filterActivePods(pods []api.Pod) []*api.Pod {
var result []*api.Pod
for _, value := range pods {
if api.PodSucceeded != value.Status.Phase &&
api.PodFailed != value.Status.Phase {
result = append(result, &value)
for i := range pods {
if api.PodSucceeded != pods[i].Status.Phase &&
api.PodFailed != pods[i].Status.Phase {
result = append(result, &pods[i])
}
}
return result
Expand Down
19 changes: 19 additions & 0 deletions pkg/controller/replication_controller_test.go
Expand Up @@ -379,6 +379,25 @@ func TestWatchControllers(t *testing.T) {
}
}

func TestActivePodFiltering(t *testing.T) {
podList := newPodList(5)
podList.Items[0].Status.Phase = api.PodSucceeded
podList.Items[1].Status.Phase = api.PodFailed
expectedNames := util.NewStringSet()
for _, pod := range podList.Items[2:] {
expectedNames.Insert(pod.Name)
}

got := filterActivePods(podList.Items)
gotNames := util.NewStringSet()
for _, pod := range got {
gotNames.Insert(pod.Name)
}
if expectedNames.Difference(gotNames).Len() != 0 || gotNames.Difference(expectedNames).Len() != 0 {
t.Errorf("expected %v, got %v", expectedNames.List(), gotNames.List())
}
}

func TestSortingActivePods(t *testing.T) {
numPods := 5
podList := newPodList(numPods)
Expand Down

0 comments on commit 35cbbe6

Please sign in to comment.