mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Keep Flatten() and format output earlier in kubectl get
This commit is contained in:
		@@ -19,8 +19,10 @@ package cmd
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
						"text/tabwriter"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/spf13/cobra"
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/meta"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/kubectl"
 | 
						"k8s.io/kubernetes/pkg/kubectl"
 | 
				
			||||||
	cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
 | 
						cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/kubectl/resource"
 | 
						"k8s.io/kubernetes/pkg/kubectl/resource"
 | 
				
			||||||
@@ -220,13 +222,23 @@ func RunGet(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []string
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// use the default printer for each object
 | 
						// use the default printer for each object
 | 
				
			||||||
 | 
						printer = nil
 | 
				
			||||||
 | 
						var lastMapping *meta.RESTMapping
 | 
				
			||||||
 | 
						w := tabwriter.NewWriter(out, kubectl.TabwriterMinWidth, kubectl.TabwriterWidth, kubectl.TabwriterPadding, kubectl.TabwriterPadChar, kubectl.TabwriterFlags)
 | 
				
			||||||
 | 
						defer w.Flush()
 | 
				
			||||||
	return b.Flatten().Do().Visit(func(r *resource.Info, err error) error {
 | 
						return b.Flatten().Do().Visit(func(r *resource.Info, err error) error {
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		printer, err := f.PrinterForMapping(cmd, r.Mapping, allNamespaces)
 | 
							if printer == nil || lastMapping == nil || r.Mapping == nil || r.Mapping.Resource != lastMapping.Resource {
 | 
				
			||||||
		if err != nil {
 | 
								printer, err = f.PrinterForMapping(cmd, r.Mapping, allNamespaces)
 | 
				
			||||||
			return err
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return err
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								lastMapping = r.Mapping
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if _, found := printer.(*kubectl.HumanReadablePrinter); found {
 | 
				
			||||||
 | 
								return printer.PrintObj(r.Object, w)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return printer.PrintObj(r.Object, out)
 | 
							return printer.PrintObj(r.Object, out)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,11 +46,11 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	tabwriterMinWidth = 10
 | 
						TabwriterMinWidth = 10
 | 
				
			||||||
	tabwriterWidth    = 4
 | 
						TabwriterWidth    = 4
 | 
				
			||||||
	tabwriterPadding  = 3
 | 
						TabwriterPadding  = 3
 | 
				
			||||||
	tabwriterPadChar  = ' '
 | 
						TabwriterPadChar  = ' '
 | 
				
			||||||
	tabwriterFlags    = 0
 | 
						TabwriterFlags    = 0
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetPrinter takes a format type, an optional format argument. It will return true
 | 
					// GetPrinter takes a format type, an optional format argument. It will return true
 | 
				
			||||||
@@ -1477,8 +1477,11 @@ func formatWideHeaders(wide bool, t reflect.Type) []string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// PrintObj prints the obj in a human-friendly format according to the type of the obj.
 | 
					// PrintObj prints the obj in a human-friendly format according to the type of the obj.
 | 
				
			||||||
func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error {
 | 
					func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error {
 | 
				
			||||||
	w := tabwriter.NewWriter(output, tabwriterMinWidth, tabwriterWidth, tabwriterPadding, tabwriterPadChar, tabwriterFlags)
 | 
						w, found := output.(*tabwriter.Writer)
 | 
				
			||||||
	defer w.Flush()
 | 
						if !found {
 | 
				
			||||||
 | 
							w = tabwriter.NewWriter(output, TabwriterMinWidth, TabwriterWidth, TabwriterPadding, TabwriterPadChar, TabwriterFlags)
 | 
				
			||||||
 | 
							defer w.Flush()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	t := reflect.TypeOf(obj)
 | 
						t := reflect.TypeOf(obj)
 | 
				
			||||||
	if handler := h.handlerMap[t]; handler != nil {
 | 
						if handler := h.handlerMap[t]; handler != nil {
 | 
				
			||||||
		if !h.noHeaders && t != h.lastType {
 | 
							if !h.noHeaders && t != h.lastType {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user