mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
fix sort-by output problem
This commit is contained in:
parent
62ba00e4e7
commit
f1afc3d09d
@ -3913,6 +3913,26 @@ run_kubectl_sort_by_tests() {
|
|||||||
kubectl get pods --sort-by="{metadata.name}"
|
kubectl get pods --sort-by="{metadata.name}"
|
||||||
kubectl get pods --sort-by="{metadata.creationTimestamp}"
|
kubectl get pods --sort-by="{metadata.creationTimestamp}"
|
||||||
|
|
||||||
|
### sort-by should works if pod exists
|
||||||
|
# Create POD
|
||||||
|
# Pre-condition: no POD exists
|
||||||
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
|
# Command
|
||||||
|
kubectl create "${kube_flags[@]}" -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml
|
||||||
|
# Post-condition: valid-pod is created
|
||||||
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
|
||||||
|
# Check output of sort-by
|
||||||
|
output_message=$(kubectl get pods --sort-by="{metadata.name}")
|
||||||
|
kube::test::if_has_string "${output_message}" "valid-pod"
|
||||||
|
### Clean up
|
||||||
|
# Pre-condition: valid-pod exists
|
||||||
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:'
|
||||||
|
# Command
|
||||||
|
kubectl delete "${kube_flags[@]}" pod valid-pod --grace-period=0 --force
|
||||||
|
# Post-condition: valid-pod doesn't exist
|
||||||
|
kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" ''
|
||||||
|
|
||||||
|
|
||||||
set +o nounset
|
set +o nounset
|
||||||
set +o errexit
|
set +o errexit
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubectl/plugins"
|
"k8s.io/kubernetes/pkg/kubectl/plugins"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type ring2Factory struct {
|
type ring2Factory struct {
|
||||||
@ -103,16 +102,6 @@ func (f *ring2Factory) PrinterForMapping(cmd *cobra.Command, isLocal bool, outpu
|
|||||||
|
|
||||||
printer = printers.NewVersionedPrinter(printer, mapping.ObjectConvertor, version, mapping.GroupVersionKind.GroupVersion())
|
printer = printers.NewVersionedPrinter(printer, mapping.ObjectConvertor, version, mapping.GroupVersionKind.GroupVersion())
|
||||||
|
|
||||||
} else {
|
|
||||||
// We add handlers to the printer in case it is printers.HumanReadablePrinter.
|
|
||||||
// printers.AddHandlers expects concrete type of printers.HumanReadablePrinter
|
|
||||||
// as its parameter because of this we have to do a type check on printer and
|
|
||||||
// extract out concrete HumanReadablePrinter from it. We are then able to attach
|
|
||||||
// handlers on it.
|
|
||||||
if humanReadablePrinter, ok := printer.(*printers.HumanReadablePrinter); ok {
|
|
||||||
printersinternal.AddHandlers(humanReadablePrinter)
|
|
||||||
printer = humanReadablePrinter
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return printer, nil
|
return printer, nil
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/kubectl"
|
"k8s.io/kubernetes/pkg/kubectl"
|
||||||
"k8s.io/kubernetes/pkg/kubectl/resource"
|
"k8s.io/kubernetes/pkg/kubectl/resource"
|
||||||
"k8s.io/kubernetes/pkg/printers"
|
"k8s.io/kubernetes/pkg/printers"
|
||||||
|
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
@ -126,6 +127,13 @@ func PrinterForCommand(cmd *cobra.Command, outputOpts *printers.OutputOptions, m
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we try to convert to HumanReadablePrinter, if return ok, it must be no generic
|
||||||
|
// we execute AddHandlers() here before maybeWrapSortingPrinter so that we don't
|
||||||
|
// need to convert to delegatePrinter again then invoke AddHandlers()
|
||||||
|
if humanReadablePrinter, ok := printer.(*printers.HumanReadablePrinter); ok {
|
||||||
|
printersinternal.AddHandlers(humanReadablePrinter)
|
||||||
|
}
|
||||||
|
|
||||||
return maybeWrapSortingPrinter(cmd, printer), nil
|
return maybeWrapSortingPrinter(cmd, printer), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user