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 != "" return s != nil && *s != ""
} }
func (*Pod) phase(po *v1.Pod) string { func (p *Pod) phase(po *v1.Pod) string {
status := string(po.Status.Phase) status := string(po.Status.Phase)
if po.Status.Reason != "" { if po.Status.Reason != "" {
if po.DeletionTimestamp != nil && po.Status.Reason == node.NodeUnreachablePodReason { if po.DeletionTimestamp != nil && po.Status.Reason == node.NodeUnreachablePodReason {
@ -266,32 +266,7 @@ func (*Pod) phase(po *v1.Pod) string {
} }
var init bool var init bool
for i, cs := range po.Status.InitContainerStatuses { init, status = p.initPhase(po, status)
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
}
if init { if init {
return status return status
} }
@ -325,3 +300,32 @@ func (*Pod) phase(po *v1.Pod) string {
return "Terminated" 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 ( import (
"context" "context"
"fmt" "fmt"
"time"
"sync" "sync"
"time"
"github.com/derailed/k9s/internal/config" "github.com/derailed/k9s/internal/config"
"github.com/derailed/k9s/internal/k8s" "github.com/derailed/k9s/internal/k8s"
@ -61,7 +61,7 @@ type (
cmdBuff *cmdBuff cmdBuff *cmdBuff
cmdView *cmdView cmdView *cmdView
actions keyActions actions keyActions
mx sync.Mutex mx sync.Mutex
} }
) )

View File

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