Correctly filter terminated pods in kubectl

This commit is contained in:
Janet Kuo 2017-07-11 17:29:56 -07:00
parent 112d7413f9
commit 5a94b45d8b

View File

@ -38,21 +38,18 @@ func NewResourceFilter() Filters {
} }
// filterPods returns true if a pod should be skipped. // filterPods returns true if a pod should be skipped.
// defaults to true for terminated pods // If show-all is true, the pod will be never be skipped (return false);
// otherwise, skip terminated pod.
func filterPods(obj runtime.Object, options printers.PrintOptions) bool { func filterPods(obj runtime.Object, options printers.PrintOptions) bool {
if options.ShowAll {
return false
}
switch p := obj.(type) { switch p := obj.(type) {
case *v1.Pod: case *v1.Pod:
reason := string(p.Status.Phase) return p.Status.Phase == v1.PodSucceeded || p.Status.Phase == v1.PodFailed
if p.Status.Reason != "" {
reason = p.Status.Reason
}
return !options.ShowAll && (reason == string(v1.PodSucceeded) || reason == string(v1.PodFailed))
case *api.Pod: case *api.Pod:
reason := string(p.Status.Phase) return p.Status.Phase == api.PodSucceeded || p.Status.Phase == api.PodFailed
if p.Status.Reason != "" {
reason = p.Status.Reason
}
return !options.ShowAll && (reason == string(api.PodSucceeded) || reason == string(api.PodFailed))
} }
return false return false
} }