From df4586b7756aec2e16d6a535cfe876492c492291 Mon Sep 17 00:00:00 2001 From: zhengjiajin Date: Tue, 6 Feb 2018 20:14:46 +0800 Subject: [PATCH] add unchedule information to kubectl describe node --- pkg/printers/internalversion/describe.go | 3 ++- pkg/printers/internalversion/describe_test.go | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index 4550560b550..a29b5114057 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -2588,8 +2588,9 @@ func describeNode(node *api.Node, nodeNonTerminatedPodsList *api.PodList, events } printLabelsMultiline(w, "Labels", node.Labels) printAnnotationsMultiline(w, "Annotations", node.Annotations) - printNodeTaintsMultiline(w, "Taints", node.Spec.Taints) w.Write(LEVEL_0, "CreationTimestamp:\t%s\n", node.CreationTimestamp.Time.Format(time.RFC1123Z)) + printNodeTaintsMultiline(w, "Taints", node.Spec.Taints) + w.Write(LEVEL_0, "Unschedulable:\t%v\n", node.Spec.Unschedulable) if len(node.Status.Conditions) > 0 { w.Write(LEVEL_0, "Conditions:\n Type\tStatus\tLastHeartbeatTime\tLastTransitionTime\tReason\tMessage\n") w.Write(LEVEL_1, "----\t------\t-----------------\t------------------\t------\t-------\n") diff --git a/pkg/printers/internalversion/describe_test.go b/pkg/printers/internalversion/describe_test.go index 83fc2d91a02..dc0775055e2 100644 --- a/pkg/printers/internalversion/describe_test.go +++ b/pkg/printers/internalversion/describe_test.go @@ -2108,6 +2108,32 @@ Events: ` + "\n" } +func TestDescribeNode(t *testing.T) { + fake := fake.NewSimpleClientset(&api.Node{ + ObjectMeta: metav1.ObjectMeta{ + Name: "bar", + Namespace: "foo", + }, + Spec: api.NodeSpec{ + Unschedulable: true, + }, + }) + c := &describeClient{T: t, Namespace: "foo", Interface: fake} + d := NodeDescriber{c} + out, err := d.Describe("foo", "bar", printers.DescriberSettings{ShowEvents: true}) + if err != nil { + t.Errorf("unexpected error: %v", err) + } + + expectedOut := []string{"Unschedulable", "true"} + for _, expected := range expectedOut { + if !strings.Contains(out, expected) { + t.Errorf("expected to find %q in output: %q", expected, out) + } + } + +} + // boolPtr returns a pointer to a bool func boolPtr(b bool) *bool { o := b