diff --git a/pkg/kubectl/custom_column_printer.go b/pkg/kubectl/custom_column_printer.go index e48003fac60..c73feba8f16 100644 --- a/pkg/kubectl/custom_column_printer.go +++ b/pkg/kubectl/custom_column_printer.go @@ -26,6 +26,7 @@ import ( "strings" "text/tabwriter" + "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/jsonpath" ) @@ -187,6 +188,13 @@ func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error func (s *CustomColumnsPrinter) printOneObject(obj runtime.Object, parsers []*jsonpath.JSONPath, out io.Writer) error { columns := make([]string, len(parsers)) + switch u := obj.(type) { + case *runtime.Unknown: + var err error + if obj, err = api.Codec.Decode(u.RawJSON); err != nil { + return err + } + } for ix := range parsers { parser := parsers[ix] values, err := parser.FindResults(reflect.ValueOf(obj).Elem().Interface()) diff --git a/pkg/kubectl/sorting_printer.go b/pkg/kubectl/sorting_printer.go index 802e9a81432..9b7892fa682 100644 --- a/pkg/kubectl/sorting_printer.go +++ b/pkg/kubectl/sorting_printer.go @@ -22,9 +22,11 @@ import ( "reflect" "sort" - "github.com/golang/glog" + "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/jsonpath" + + "github.com/golang/glog" ) // Sorting printer sorts list types before delegating to another printer. @@ -61,6 +63,17 @@ func (s *SortingPrinter) sortObj(obj runtime.Object) error { } parser := jsonpath.New("sorting") parser.Parse(s.SortField) + + for ix := range objs { + item := objs[ix] + switch u := item.(type) { + case *runtime.Unknown: + var err error + if objs[ix], err = api.Codec.Decode(u.RawJSON); err != nil { + return err + } + } + } values, err := parser.FindResults(reflect.ValueOf(objs[0]).Elem().Interface()) if err != nil { return err