cleaning up

mine
derailed 2019-04-26 18:31:35 -06:00
parent f770348f74
commit 8d3e78150f
3 changed files with 34 additions and 29 deletions

View File

@ -256,7 +256,7 @@ func isSet(s *string) bool {
return s != nil && *s != ""
}
func (*Pod) phase(po *v1.Pod) string {
func (p *Pod) phase(po *v1.Pod) string {
status := string(po.Status.Phase)
if po.Status.Reason != "" {
if po.DeletionTimestamp != nil && po.Status.Reason == node.NodeUnreachablePodReason {
@ -266,32 +266,7 @@ func (*Pod) phase(po *v1.Pod) string {
}
var init bool
for i, cs := range po.Status.InitContainerStatuses {
switch {
case cs.State.Terminated != nil:
if cs.State.Terminated.ExitCode == 0 {
continue
}
if cs.State.Terminated.Reason != "" {
status = "Init:" + cs.State.Terminated.Reason
init = true
break
}
if cs.State.Terminated.Signal != 0 {
status = fmt.Sprintf("Init:Signal:%d", cs.State.Terminated.Signal)
} else {
status = fmt.Sprintf("Init:ExitCode:%d", cs.State.Terminated.ExitCode)
}
case cs.State.Waiting != nil && cs.State.Waiting.Reason != "" && cs.State.Waiting.Reason != "PodInitializing":
status = "Init:" + cs.State.Waiting.Reason
default:
status = fmt.Sprintf("Init:%d/%d", i, len(po.Spec.InitContainers))
}
init = true
break
}
init, status = p.initPhase(po, status)
if init {
return status
}
@ -325,3 +300,32 @@ func (*Pod) phase(po *v1.Pod) string {
return "Terminated"
}
func (*Pod) initPhase(po *v1.Pod, status string) (bool, string) {
var init bool
for i, cs := range po.Status.InitContainerStatuses {
switch {
case cs.State.Terminated != nil:
if cs.State.Terminated.ExitCode == 0 {
continue
}
if cs.State.Terminated.Reason != "" {
status = "Init:" + cs.State.Terminated.Reason
break
}
if cs.State.Terminated.Signal != 0 {
status = fmt.Sprintf("Init:Signal:%d", cs.State.Terminated.Signal)
} else {
status = fmt.Sprintf("Init:ExitCode:%d", cs.State.Terminated.ExitCode)
}
case cs.State.Waiting != nil && cs.State.Waiting.Reason != "" && cs.State.Waiting.Reason != "PodInitializing":
status = "Init:" + cs.State.Waiting.Reason
default:
status = fmt.Sprintf("Init:%d/%d", i, len(po.Spec.InitContainers))
}
init = true
break
}
return init, status
}

View File

@ -3,8 +3,8 @@ package views
import (
"context"
"fmt"
"time"
"sync"
"time"
"github.com/derailed/k9s/internal/config"
"github.com/derailed/k9s/internal/k8s"
@ -61,7 +61,7 @@ type (
cmdBuff *cmdBuff
cmdView *cmdView
actions keyActions
mx sync.Mutex
mx sync.Mutex
}
)

View File

@ -16,6 +16,7 @@ type clusterInfoView struct {
cluster *resource.Cluster
}
// ClusterInfo tracks Kubernetes cluster and K9s information.
type ClusterInfo interface {
ContextName() string
ClusterName() string