Merge pull request #1824 from ghodss/no_headers_kubectl

Add --no-headers to kubectl get
pull/6/head
bgrant0607 2014-10-16 13:37:25 -07:00
commit 641f72096f
4 changed files with 18 additions and 11 deletions

View File

@ -57,13 +57,14 @@ Examples:
outputFormat := getFlagString(cmd, "output")
templateFile := getFlagString(cmd, "template")
selector := getFlagString(cmd, "selector")
err := kubectl.Get(out, getKubeClient(cmd).RESTClient, resource, id, selector, outputFormat, templateFile)
err := kubectl.Get(out, getKubeClient(cmd).RESTClient, resource, id, selector, outputFormat, getFlagBool(cmd, "no-headers"), templateFile)
checkErr(err)
},
}
// TODO Add an --output-version lock which can ensure that regardless of the
// server version, the client output stays the same.
cmd.Flags().StringP("output", "o", "console", "Output format: console|json|yaml|template")
cmd.Flags().Bool("no-headers", false, "When output format is console, don't print headers")
cmd.Flags().StringP("template", "t", "", "Path to template file to use when --output=template")
cmd.Flags().StringP("selector", "l", "", "Selector (label query) to filter on")
return cmd

View File

@ -23,7 +23,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
)
func Get(w io.Writer, c *client.RESTClient, resource, id, selector, format, templateFile string) error {
func Get(w io.Writer, c *client.RESTClient, resource string, id string, selector string, format string, noHeaders bool, templateFile string) error {
path, err := resolveResource(resolveToPath, resource)
if err != nil {
return err
@ -42,7 +42,7 @@ func Get(w io.Writer, c *client.RESTClient, resource, id, selector, format, temp
return err
}
printer, err := getPrinter(format, templateFile)
printer, err := getPrinter(format, templateFile, noHeaders)
if err != nil {
return err
}

View File

@ -34,7 +34,7 @@ import (
"gopkg.in/v1/yaml"
)
func getPrinter(format, templateFile string) (ResourcePrinter, error) {
func getPrinter(format, templateFile string, noHeaders bool) (ResourcePrinter, error) {
var printer ResourcePrinter
switch format {
case "json":
@ -60,7 +60,7 @@ func getPrinter(format, templateFile string) (ResourcePrinter, error) {
Template: tmpl,
}
default:
printer = NewHumanReadablePrinter()
printer = NewHumanReadablePrinter(noHeaders)
}
return printer, nil
}
@ -105,11 +105,15 @@ type handlerEntry struct {
// HumanReadablePrinter is an implementation of ResourcePrinter which attempts to provide more elegant output.
type HumanReadablePrinter struct {
handlerMap map[reflect.Type]*handlerEntry
noHeaders bool
}
// NewHumanReadablePrinter creates a HumanReadablePrinter.
func NewHumanReadablePrinter() *HumanReadablePrinter {
printer := &HumanReadablePrinter{make(map[reflect.Type]*handlerEntry)}
func NewHumanReadablePrinter(noHeaders bool) *HumanReadablePrinter {
printer := &HumanReadablePrinter{
handlerMap: make(map[reflect.Type]*handlerEntry),
noHeaders: noHeaders,
}
printer.addDefaultHandlers()
return printer
}
@ -260,7 +264,9 @@ func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) er
w := tabwriter.NewWriter(output, 20, 5, 3, ' ', 0)
defer w.Flush()
if handler := h.handlerMap[reflect.TypeOf(obj)]; handler != nil {
h.printHeader(handler.columns, w)
if !h.noHeaders {
h.printHeader(handler.columns, w)
}
args := []reflect.Value{reflect.ValueOf(obj), reflect.ValueOf(w)}
resultValue := handler.printFunc.Call(args)[0]
if resultValue.IsNil() {

View File

@ -104,7 +104,7 @@ func ErrorPrintHandler(obj *TestPrintType, w io.Writer) error {
func TestCustomTypePrinting(t *testing.T) {
columns := []string{"Data"}
printer := NewHumanReadablePrinter()
printer := NewHumanReadablePrinter(false)
printer.Handler(columns, PrintCustomType)
obj := TestPrintType{"test object"}
@ -121,7 +121,7 @@ func TestCustomTypePrinting(t *testing.T) {
func TestPrintHandlerError(t *testing.T) {
columns := []string{"Data"}
printer := NewHumanReadablePrinter()
printer := NewHumanReadablePrinter(false)
printer.Handler(columns, ErrorPrintHandler)
obj := TestPrintType{"test object"}
buffer := &bytes.Buffer{}
@ -132,7 +132,7 @@ func TestPrintHandlerError(t *testing.T) {
}
func TestUnknownTypePrinting(t *testing.T) {
printer := NewHumanReadablePrinter()
printer := NewHumanReadablePrinter(false)
buffer := &bytes.Buffer{}
err := printer.PrintObj(&TestUnknownType{}, buffer)
if err == nil {