mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 22:17:14 +00:00
Merge pull request #15270 from brendandburns/custom
Fix the custom columns printer and the sorting printer for v1.List objects
This commit is contained in:
commit
3a45a5ca92
@ -26,6 +26,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/util/jsonpath"
|
"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 {
|
func (s *CustomColumnsPrinter) printOneObject(obj runtime.Object, parsers []*jsonpath.JSONPath, out io.Writer) error {
|
||||||
columns := make([]string, len(parsers))
|
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 {
|
for ix := range parsers {
|
||||||
parser := parsers[ix]
|
parser := parsers[ix]
|
||||||
values, err := parser.FindResults(reflect.ValueOf(obj).Elem().Interface())
|
values, err := parser.FindResults(reflect.ValueOf(obj).Elem().Interface())
|
||||||
|
@ -22,9 +22,11 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/util/jsonpath"
|
"k8s.io/kubernetes/pkg/util/jsonpath"
|
||||||
|
|
||||||
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Sorting printer sorts list types before delegating to another printer.
|
// 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 := jsonpath.New("sorting")
|
||||||
parser.Parse(s.SortField)
|
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())
|
values, err := parser.FindResults(reflect.ValueOf(objs[0]).Elem().Interface())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user