From 3b6d8e8373d132df7c05936bf972bb747e7e1c0a Mon Sep 17 00:00:00 2001 From: Pierre Date: Wed, 7 Nov 2018 11:52:39 +0100 Subject: [PATCH 1/2] Fix index out of range error when sorting kubectl get --- pkg/kubectl/cmd/get/get.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkg/kubectl/cmd/get/get.go b/pkg/kubectl/cmd/get/get.go index 2739b3bc8c..c5f6714ba0 100644 --- a/pkg/kubectl/cmd/get/get.go +++ b/pkg/kubectl/cmd/get/get.go @@ -314,11 +314,14 @@ type RuntimeSorter struct { } func (r *RuntimeSorter) Sort() error { - if len(r.objects) <= 1 { - // a list is only considered "sorted" if there are 0 or 1 items in it - // AND (if 1 item) the item is not a Table object + // a list is only considered "sorted" if there are 0 or 1 items in it + // AND (if 1 item) the item is not a Table object + if len(r.objects) == 0 { + return nil + } + if len(r.objects) == 1 { _, isTable := r.objects[0].(*metav1beta1.Table) - if len(r.objects) == 0 || !isTable { + if !isTable { return nil } } From bb9ea6919552fa3236d19bbb8aa07381a91418a1 Mon Sep 17 00:00:00 2001 From: Pierre Date: Thu, 8 Nov 2018 18:35:52 +0100 Subject: [PATCH 2/2] Add unit test case for empty list --- pkg/kubectl/cmd/get/get_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/kubectl/cmd/get/get_test.go b/pkg/kubectl/cmd/get/get_test.go index 2c7da6967c..9d12a89579 100644 --- a/pkg/kubectl/cmd/get/get_test.go +++ b/pkg/kubectl/cmd/get/get_test.go @@ -560,6 +560,15 @@ func TestRuntimeSorter(t *testing.T) { expect string expectError string }{ + { + name: "ensure sorter works with an empty object list", + field: "metadata.name", + objs: []runtime.Object{}, + op: func(sorter *RuntimeSorter, objs []runtime.Object, out io.Writer) error { + return nil + }, + expect: "", + }, { name: "ensure sorter returns original position", field: "metadata.name",