Commit 51b0def4 authored by Brendan Burns's avatar Brendan Burns

Fix the custom column and sorting printers for v1.List

parent deb3514c
......@@ -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())
......
......@@ -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
......
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