Commit a2ac72c4 authored by Avesh Agarwal's avatar Avesh Agarwal

This commit fixes "kubectl get nodes" output and makes it more sane, and also…

This commit fixes "kubectl get nodes" output and makes it more sane, and also adds new unit test cases for SchedulingDisabled.
parent eb1ea269
...@@ -503,12 +503,6 @@ func printNode(node *api.Node, w io.Writer) error { ...@@ -503,12 +503,6 @@ func printNode(node *api.Node, w io.Writer) error {
cond := node.Status.Conditions[i] cond := node.Status.Conditions[i]
conditionMap[cond.Type] = &cond conditionMap[cond.Type] = &cond
} }
var schedulable string
if node.Spec.Unschedulable {
schedulable = "Unschedulable"
} else {
schedulable = "Schedulable"
}
var status []string var status []string
for _, validCondition := range NodeAllConditions { for _, validCondition := range NodeAllConditions {
if condition, ok := conditionMap[validCondition]; ok { if condition, ok := conditionMap[validCondition]; ok {
...@@ -522,7 +516,10 @@ func printNode(node *api.Node, w io.Writer) error { ...@@ -522,7 +516,10 @@ func printNode(node *api.Node, w io.Writer) error {
if len(status) == 0 { if len(status) == 0 {
status = append(status, "Unknown") status = append(status, "Unknown")
} }
_, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\n", node.Name, schedulable, formatLabels(node.Labels), strings.Join(status, ",")) if node.Spec.Unschedulable {
status = append(status, "SchedulingDisabled")
}
_, err := fmt.Fprintf(w, "%s\t%s\t%s\n", node.Name, formatLabels(node.Labels), strings.Join(status, ","))
return err return err
} }
......
...@@ -557,6 +557,14 @@ func TestPrintMinionStatus(t *testing.T) { ...@@ -557,6 +557,14 @@ func TestPrintMinionStatus(t *testing.T) {
}, },
{ {
minion: api.Node{ minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo2"},
Spec: api.NodeSpec{Unschedulable: true},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}},
},
status: "Ready,SchedulingDisabled",
},
{
minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo3"}, ObjectMeta: api.ObjectMeta{Name: "foo3"},
Status: api.NodeStatus{Conditions: []api.NodeCondition{ Status: api.NodeStatus{Conditions: []api.NodeCondition{
{Type: api.NodeReady, Status: api.ConditionTrue}, {Type: api.NodeReady, Status: api.ConditionTrue},
...@@ -574,17 +582,41 @@ func TestPrintMinionStatus(t *testing.T) { ...@@ -574,17 +582,41 @@ func TestPrintMinionStatus(t *testing.T) {
{ {
minion: api.Node{ minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo5"}, ObjectMeta: api.ObjectMeta{Name: "foo5"},
Spec: api.NodeSpec{Unschedulable: true},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}}},
},
status: "NotReady,SchedulingDisabled",
},
{
minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo6"},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: "InvalidValue", Status: api.ConditionTrue}}}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: "InvalidValue", Status: api.ConditionTrue}}},
}, },
status: "Unknown", status: "Unknown",
}, },
{ {
minion: api.Node{ minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo6"}, ObjectMeta: api.ObjectMeta{Name: "foo7"},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{}}}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{}}},
}, },
status: "Unknown", status: "Unknown",
}, },
{
minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo8"},
Spec: api.NodeSpec{Unschedulable: true},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: "InvalidValue", Status: api.ConditionTrue}}},
},
status: "Unknown,SchedulingDisabled",
},
{
minion: api.Node{
ObjectMeta: api.ObjectMeta{Name: "foo9"},
Spec: api.NodeSpec{Unschedulable: true},
Status: api.NodeStatus{Conditions: []api.NodeCondition{{}}},
},
status: "Unknown,SchedulingDisabled",
},
} }
for _, test := range table { for _, test := range table {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment