printers

package
v1.12.0-alpha.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2018 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AppendAllLabels added in v1.7.0

func AppendAllLabels(showLabels bool, itemLabels map[string]string) string

Append all labels to a single column. We need this even when show-labels flag* is false, since this adds newline delimiter to the end of each row.

func AppendLabels added in v1.7.0

func AppendLabels(itemLabels map[string]string, columnLabels []string) string

func DecorateTable added in v1.7.0

func DecorateTable(table *metav1beta1.Table, options PrintOptions) error

DecorateTable takes a table and attempts to add label columns and the namespace column. It will fill empty columns with nil (if the object does not expose metadata). It returns an error if the table cannot be decorated.

func FormatResourceName added in v1.7.0

func FormatResourceName(kind schema.GroupKind, name string, withKind bool) string

FormatResourceName receives a resource kind, name, and boolean specifying whether or not to update the current name to "kind/name"

func GetNewTabWriter

func GetNewTabWriter(output io.Writer) *tabwriter.Writer

GetNewTabWriter returns a tabwriter that translates tabbed columns in input into properly aligned text.

func GetObjectGroupKind added in v1.10.0

func GetObjectGroupKind(obj runtime.Object, typer runtime.ObjectTyper) schema.GroupKind

func IsInternalObjectError

func IsInternalObjectError(err error) bool

func IsNoCompatiblePrinterError

func IsNoCompatiblePrinterError(err error) bool

func PrintTable added in v1.7.0

func PrintTable(table *metav1beta1.Table, output io.Writer, options PrintOptions) error

PrintTable prints a table to the provided output respecting the filtering rules for options for wide columns and filtered rows. It filters out rows that are Completed. You should call DecorateTable if you receive a table from a remote server before calling PrintTable.

func RelaxedJSONPathExpression

func RelaxedJSONPathExpression(pathExpression string) (string, error)

RelaxedJSONPathExpression attempts to be flexible with JSONPath expressions, it accepts:

  • metadata.name (no leading '.' or curly brances '{...}'
  • {metadata.name} (no leading '.')
  • .metadata.name (no curly braces '{...}')
  • {.metadata.name} (complete expression)

And transforms them all into a valid jsonpath expression:

{.metadata.name}

func ValidatePrintHandlerFunc added in v1.7.0

func ValidatePrintHandlerFunc(printFunc reflect.Value) error

ValidatePrintHandlerFunc validates print handler signature. printFunc is the function that will be called to print an object. It must be of the following type:

func printFunc(object ObjectType, w io.Writer, options PrintOptions) error

where ObjectType is the type of the object that will be printed. DEPRECATED: will be replaced with ValidateRowPrintHandlerFunc

func ValidateRowPrintHandlerFunc added in v1.7.0

func ValidateRowPrintHandlerFunc(printFunc reflect.Value) error

ValidateRowPrintHandlerFunc validates print handler signature. printFunc is the function that will be called to print an object. It must be of the following type:

func printFunc(object ObjectType, options PrintOptions) ([]metav1beta1.TableRow, error)

where ObjectType is the type of the object that will be printed, and the first return value is an array of rows, with each row containing a number of cells that match the number of columns defined for that printer function.

Types

type Column

type Column struct {
	// The header to print above the column, general style is ALL_CAPS
	Header string
	// The pointer to the field in the object to print in JSONPath form
	// e.g. {.ObjectMeta.Name}, see pkg/util/jsonpath for more details.
	FieldSpec string
}

Column represents a user specified column

type CustomColumnsPrintFlags added in v1.11.1

type CustomColumnsPrintFlags struct {
	NoHeaders        bool
	TemplateArgument string
}

CustomColumnsPrintFlags provides default flags necessary for printing custom resource columns from an inline-template or file.

func NewCustomColumnsPrintFlags added in v1.11.1

func NewCustomColumnsPrintFlags() *CustomColumnsPrintFlags

NewCustomColumnsPrintFlags returns flags associated with custom-column printing, with default values set. NoHeaders and TemplateArgument should be set by callers.

func (*CustomColumnsPrintFlags) AddFlags added in v1.11.1

func (f *CustomColumnsPrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to custom-columns printing

func (*CustomColumnsPrintFlags) ToPrinter added in v1.11.1

func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrinter, error)

ToPrinter receives an templateFormat and returns a printer capable of handling custom-column printing. Returns false if the specified templateFormat does not match a supported format. Supported format types can be found in pkg/printers/printers.go

type CustomColumnsPrinter

type CustomColumnsPrinter struct {
	Columns   []Column
	Decoder   runtime.Decoder
	NoHeaders bool
	// contains filtered or unexported fields
}

CustomColumnPrinter is a printer that knows how to print arbitrary columns of data from templates specified in the `Columns` array

func NewCustomColumnsPrinterFromSpec

func NewCustomColumnsPrinterFromSpec(spec string, decoder runtime.Decoder, noHeaders bool) (*CustomColumnsPrinter, error)

NewCustomColumnsPrinterFromSpec creates a custom columns printer from a comma separated list of <header>:<jsonpath-field-spec> pairs. e.g. NAME:metadata.name,API_VERSION:apiVersion creates a printer that prints:

NAME               API_VERSION
foo                bar

func NewCustomColumnsPrinterFromTemplate

func NewCustomColumnsPrinterFromTemplate(templateReader io.Reader, decoder runtime.Decoder) (*CustomColumnsPrinter, error)

NewCustomColumnsPrinterFromTemplate creates a custom columns printer from a template stream. The template is expected to consist of two lines, whitespace separated. The first line is the header line, the second line is the jsonpath field spec For example, the template below: NAME API_VERSION {metadata.name} {apiVersion}

func (*CustomColumnsPrinter) PrintObj

func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error

type Describer

type Describer interface {
	Describe(namespace, name string, describerSettings DescriberSettings) (output string, err error)
}

Describer generates output for the named resource or an error if the output could not be generated. Implementers typically abstract the retrieval of the named object from a remote server.

type DescriberSettings

type DescriberSettings struct {
	ShowEvents bool
}

DescriberSettings holds display configuration for each object describer to control what is printed.

type ErrNoDescriber

type ErrNoDescriber struct {
	Types []string
}

ErrNoDescriber is a structured error indicating the provided object or objects cannot be described.

func (ErrNoDescriber) Error

func (e ErrNoDescriber) Error() string

Error implements the error interface.

type GoTemplatePrintFlags

type GoTemplatePrintFlags struct {
	// indicates if it is OK to ignore missing keys for rendering
	// an output template.
	AllowMissingKeys *bool
	TemplateArgument *string
}

GoTemplatePrintFlags provides default flags necessary for template printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

func NewGoTemplatePrintFlags

func NewGoTemplatePrintFlags() *GoTemplatePrintFlags

NewGoTemplatePrintFlags returns flags associated with --template printing, with default values set.

func (*GoTemplatePrintFlags) AddFlags

func (f *GoTemplatePrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

func (*GoTemplatePrintFlags) ToPrinter

func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (ResourcePrinter, error)

ToPrinter receives an templateFormat and returns a printer capable of handling --template format printing. Returns false if the specified templateFormat does not match a template format.

type GoTemplatePrinter

type GoTemplatePrinter struct {
	// contains filtered or unexported fields
}

GoTemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.

func NewGoTemplatePrinter

func NewGoTemplatePrinter(tmpl []byte) (*GoTemplatePrinter, error)

func (*GoTemplatePrinter) AllowMissingKeys

func (p *GoTemplatePrinter) AllowMissingKeys(allow bool)

AllowMissingKeys tells the template engine if missing keys are allowed.

func (*GoTemplatePrinter) PrintObj

func (p *GoTemplatePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the Go Template.

type HumanReadablePrinter

type HumanReadablePrinter struct {
	// contains filtered or unexported fields
}

HumanReadablePrinter is an implementation of ResourcePrinter which attempts to provide more elegant output. It is not threadsafe, but you may call PrintObj repeatedly; headers will only be printed if the object type changes. This makes it useful for printing items received from watches.

func NewHumanReadablePrinter

func NewHumanReadablePrinter(decoder runtime.Decoder, options PrintOptions) *HumanReadablePrinter

NewHumanReadablePrinter creates a HumanReadablePrinter. If encoder and decoder are provided, an attempt to convert unstructured types to internal types is made.

func NewTablePrinter added in v1.7.0

func NewTablePrinter() *HumanReadablePrinter

NewTablePrinter creates a HumanReadablePrinter suitable for calling PrintTable().

func (*HumanReadablePrinter) AddTabWriter added in v1.7.0

func (a *HumanReadablePrinter) AddTabWriter(t bool) *HumanReadablePrinter

AddTabWriter sets whether the PrintObj function will format with tabwriter (true by default).

func (*HumanReadablePrinter) DefaultTableHandler added in v1.8.0

func (h *HumanReadablePrinter) DefaultTableHandler(columnDefinitions []metav1beta1.TableColumnDefinition, printFunc interface{}) error

DefaultTableHandler registers a set of columns and a print func that is given a chance to process any object without an explicit handler. Only the most recently set print handler is used. See ValidateRowPrintHandlerFunc for required method signature.

func (*HumanReadablePrinter) EnsurePrintHeaders

func (h *HumanReadablePrinter) EnsurePrintHeaders()

EnsurePrintHeaders sets the HumanReadablePrinter option "NoHeaders" to false and removes the .lastType that was printed, which forces headers to be printed in cases where multiple lists of the same resource are printed consecutively, but are separated by non-printer related information.

func (*HumanReadablePrinter) HandledResources

func (h *HumanReadablePrinter) HandledResources() []string

func (*HumanReadablePrinter) Handler

func (h *HumanReadablePrinter) Handler(columns, columnsWithWide []string, printFunc interface{}) error

Handler adds a print handler with a given set of columns to HumanReadablePrinter instance. See ValidatePrintHandlerFunc for required method signature.

func (*HumanReadablePrinter) PrintObj

func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error

PrintObj prints the obj in a human-friendly format according to the type of the obj.

func (*HumanReadablePrinter) PrintTable added in v1.7.0

func (h *HumanReadablePrinter) PrintTable(obj runtime.Object, options PrintOptions) (*metav1beta1.Table, error)

PrintTable returns a table for the provided object, using the printer registered for that type. It returns a table that includes all of the information requested by options, but will not remove rows or columns. The caller is responsible for applying rules related to filtering rows or columns.

func (*HumanReadablePrinter) TableHandler added in v1.7.0

func (h *HumanReadablePrinter) TableHandler(columnDefinitions []metav1beta1.TableColumnDefinition, printFunc interface{}) error

TableHandler adds a print handler with a given set of columns to HumanReadablePrinter instance. See ValidateRowPrintHandlerFunc for required method signature.

func (*HumanReadablePrinter) With added in v1.7.0

type JSONPathPrintFlags

type JSONPathPrintFlags struct {
	// indicates if it is OK to ignore missing keys for rendering
	// an output template.
	AllowMissingKeys *bool
	TemplateArgument *string
}

JSONPathPrintFlags provides default flags necessary for template printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

func NewJSONPathPrintFlags

func NewJSONPathPrintFlags(templateValue string, allowMissingKeys bool) *JSONPathPrintFlags

NewJSONPathPrintFlags returns flags associated with --template printing, with default values set.

func (*JSONPathPrintFlags) AddFlags

func (f *JSONPathPrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

func (*JSONPathPrintFlags) ToPrinter

func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (ResourcePrinter, error)

ToPrinter receives an templateFormat and returns a printer capable of handling --template format printing. Returns false if the specified templateFormat does not match a template format.

type JSONPathPrinter

type JSONPathPrinter struct {
	*jsonpath.JSONPath
	// contains filtered or unexported fields
}

JSONPathPrinter is an implementation of ResourcePrinter which formats data with jsonpath expression.

func NewJSONPathPrinter

func NewJSONPathPrinter(tmpl string) (*JSONPathPrinter, error)

func (*JSONPathPrinter) PrintObj

func (j *JSONPathPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the JSONPath Template.

type JSONPrinter

type JSONPrinter struct{}

JSONPrinter is an implementation of ResourcePrinter which outputs an object as JSON.

func (*JSONPrinter) PrintObj

func (p *JSONPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which simply writes the object to the Writer.

type JSONYamlPrintFlags

type JSONYamlPrintFlags struct {
	Scheme runtime.ObjectConvertor
}

JSONYamlPrintFlags provides default flags necessary for json/yaml printing. Given the following flag values, a printer can be requested that knows how to handle printing based on these values.

func NewJSONYamlPrintFlags

func NewJSONYamlPrintFlags(scheme runtime.ObjectConvertor) *JSONYamlPrintFlags

NewJSONYamlPrintFlags returns flags associated with yaml or json printing, with default values set.

func (*JSONYamlPrintFlags) AddFlags

func (f *JSONYamlPrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to JSON or Yaml printing to it

func (*JSONYamlPrintFlags) ToPrinter

func (f *JSONYamlPrintFlags) ToPrinter(outputFormat string) (ResourcePrinter, error)

ToPrinter receives an outputFormat and returns a printer capable of handling --output=(yaml|json) printing. Returns false if the specified outputFormat does not match a supported format. Supported Format types can be found in pkg/printers/printers.go

type KubeTemplatePrintFlags

type KubeTemplatePrintFlags struct {
	*GoTemplatePrintFlags
	*JSONPathPrintFlags

	AllowMissingKeys *bool
	TemplateArgument *string
}

KubeTemplatePrintFlags composes print flags that provide both a JSONPath and a go-template printer. This is necessary if dealing with cases that require support both both printers, since both sets of flags require overlapping flags.

func NewKubeTemplatePrintFlags

func NewKubeTemplatePrintFlags() *KubeTemplatePrintFlags

NewKubeTemplatePrintFlags returns flags associated with --template printing, with default values set.

func (*KubeTemplatePrintFlags) AddFlags

func (f *KubeTemplatePrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to template printing to it

func (*KubeTemplatePrintFlags) ToPrinter

func (f *KubeTemplatePrintFlags) ToPrinter(outputFormat string) (ResourcePrinter, error)

type NamePrintFlags

type NamePrintFlags struct {
	Scheme runtime.ObjectConvertor

	// Operation describes the name of the action that
	// took place on an object, to be included in the
	// finalized "successful" message.
	Operation string
}

NamePrintFlags provides default flags necessary for printing a resource's fully-qualified Kind.group/name, or a successful message about that resource if an Operation is provided.

func NewNamePrintFlags

func NewNamePrintFlags(operation string, scheme runtime.ObjectConvertor) *NamePrintFlags

NewNamePrintFlags returns flags associated with --name printing, with default values set.

func (*NamePrintFlags) AddFlags

func (f *NamePrintFlags) AddFlags(c *cobra.Command)

AddFlags receives a *cobra.Command reference and binds flags related to name printing to it

func (*NamePrintFlags) Complete

func (f *NamePrintFlags) Complete(successTemplate string) error

func (*NamePrintFlags) ToPrinter

func (f *NamePrintFlags) ToPrinter(outputFormat string) (ResourcePrinter, error)

ToPrinter receives an outputFormat and returns a printer capable of handling --output=name printing. Returns false if the specified outputFormat does not match a supported format. Supported format types can be found in pkg/printers/printers.go

type NamePrinter

type NamePrinter struct {
	// ShortOutput indicates whether an operation should be
	// printed along side the "resource/name" pair for an object.
	ShortOutput bool
	// Operation describes the name of the action that
	// took place on an object, to be included in the
	// finalized "successful" message.
	Operation string

	Typer runtime.ObjectTyper
}

NamePrinter is an implementation of ResourcePrinter which outputs "resource/name" pair of an object.

func (*NamePrinter) PrintObj

func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which decodes the object and print "resource/name" pair. If the object is a List, print all items in it.

type NoCompatiblePrinterError

type NoCompatiblePrinterError struct {
	OutputFormat *string
	Options      interface{}
}

func (NoCompatiblePrinterError) Error

func (e NoCompatiblePrinterError) Error() string

type ObjectDescriber

type ObjectDescriber interface {
	DescribeObject(object interface{}, extra ...interface{}) (output string, err error)
}

ObjectDescriber is an interface for displaying arbitrary objects with extra information. Use when an object is in hand (on disk, or already retrieved). Implementers may ignore the additional information passed on extra, or use it by default. ObjectDescribers may return ErrNoDescriber if no suitable describer is found.

type PrintFlags

type PrintFlags struct {
	JSONYamlPrintFlags *JSONYamlPrintFlags
	NamePrintFlags     *NamePrintFlags

	OutputFormat *string
}

PrintFlags composes common printer flag structs used across all commands, and provides a method of retrieving a known printer based on flag values provided.

func NewPrintFlags

func NewPrintFlags(operation string, scheme runtime.ObjectConvertor) *PrintFlags

func (*PrintFlags) AddFlags

func (f *PrintFlags) AddFlags(cmd *cobra.Command)

func (*PrintFlags) Complete

func (f *PrintFlags) Complete(successTemplate string) error

func (*PrintFlags) ToPrinter

func (f *PrintFlags) ToPrinter() (ResourcePrinter, error)

func (*PrintFlags) WithDefaultOutput

func (f *PrintFlags) WithDefaultOutput(output string) *PrintFlags

WithDefaultOutput sets a default output format if one is not provided through a flag value

type PrintHandler added in v1.7.0

type PrintHandler interface {
	Handler(columns, columnsWithWide []string, printFunc interface{}) error
	TableHandler(columns []metav1beta1.TableColumnDefinition, printFunc interface{}) error
	DefaultTableHandler(columns []metav1beta1.TableColumnDefinition, printFunc interface{}) error
}

type PrintOptions

type PrintOptions struct {
	// supported Format types can be found in pkg/printers/printers.go
	OutputFormatType     string
	OutputFormatArgument string

	NoHeaders          bool
	WithNamespace      bool
	WithKind           bool
	Wide               bool
	ShowAll            bool
	ShowLabels         bool
	AbsoluteTimestamps bool
	Kind               schema.GroupKind
	ColumnLabels       []string

	SortBy string

	// indicates if it is OK to ignore missing keys for rendering an output template.
	AllowMissingKeys bool
}

type ResourcePrinter

type ResourcePrinter interface {
	// Print receives a runtime object, formats it and prints it to a writer.
	PrintObj(runtime.Object, io.Writer) error
}

ResourcePrinter is an interface that knows how to print runtime objects.

func NewVersionedPrinter

func NewVersionedPrinter(printer ResourcePrinter, converter runtime.ObjectConvertor, typer runtime.ObjectTyper, versions ...schema.GroupVersion) ResourcePrinter

NewVersionedPrinter wraps a printer to convert objects to a known API version prior to printing.

type ResourcePrinterFunc

type ResourcePrinterFunc func(runtime.Object, io.Writer) error

ResourcePrinterFunc is a function that can print objects

func (ResourcePrinterFunc) PrintObj

func (fn ResourcePrinterFunc) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj implements ResourcePrinter

type TablePrinter added in v1.7.0

type TablePrinter interface {
	PrintTable(obj runtime.Object, options PrintOptions) (*metav1beta1.Table, error)
}

type VersionedPrinter

type VersionedPrinter struct {
	// contains filtered or unexported fields
}

VersionedPrinter takes runtime objects and ensures they are converted to a given API version prior to being passed to a nested printer.

func (*VersionedPrinter) PrintObj

func (p *VersionedPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj implements ResourcePrinter

type YAMLPrinter

type YAMLPrinter struct {
	// contains filtered or unexported fields
}

YAMLPrinter is an implementation of ResourcePrinter which outputs an object as YAML. The input object is assumed to be in the internal version of an API and is converted to the given version first.

func (*YAMLPrinter) PrintObj

func (p *YAMLPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj prints the data as YAML.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL