Documentation ¶
Index ¶
- func AppendAllLabels(showLabels bool, itemLabels map[string]string) string
- func AppendLabels(itemLabels map[string]string, columnLabels []string) string
- func DecorateTable(table *metav1alpha1.Table, options PrintOptions) error
- func FormatResourceName(kind, name string, withKind bool) string
- func GetNewTabWriter(output io.Writer) *tabwriter.Writer
- func PrintTable(table *metav1alpha1.Table, output io.Writer, options PrintOptions) error
- func RelaxedJSONPathExpression(pathExpression string) (string, error)
- func ShortHumanDuration(d time.Duration) string
- func ValidatePrintHandlerFunc(printFunc reflect.Value) error
- func ValidateRowPrintHandlerFunc(printFunc reflect.Value) error
- type Column
- type CustomColumnsPrinter
- type Describer
- type DescriberSettings
- type ErrNoDescriber
- type HumanReadablePrinter
- func (a *HumanReadablePrinter) AddTabWriter(t bool) *HumanReadablePrinter
- func (h *HumanReadablePrinter) AfterPrint(output io.Writer, res string) error
- func (h *HumanReadablePrinter) DefaultTableHandler(columnDefinitions []metav1alpha1.TableColumnDefinition, printFunc interface{}) error
- func (h *HumanReadablePrinter) EnsurePrintHeaders()
- func (h *HumanReadablePrinter) EnsurePrintWithKind(kind string)
- func (h *HumanReadablePrinter) GetResourceKind() string
- func (h *HumanReadablePrinter) HandledResources() []string
- func (h *HumanReadablePrinter) Handler(columns, columnsWithWide []string, printFunc interface{}) error
- func (h *HumanReadablePrinter) IsGeneric() bool
- func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error
- func (h *HumanReadablePrinter) PrintTable(obj runtime.Object, options PrintOptions) (*metav1alpha1.Table, error)
- func (h *HumanReadablePrinter) TableHandler(columnDefinitions []metav1alpha1.TableColumnDefinition, printFunc interface{}) error
- func (a *HumanReadablePrinter) With(fns ...func(PrintHandler)) *HumanReadablePrinter
- type JSONPathPrinter
- type JSONPrinter
- type NamePrinter
- type ObjectDescriber
- type PrintHandler
- type PrintOptions
- type ResourcePrinter
- type ResourcePrinterFunc
- type TablePrinter
- type TemplatePrinter
- type VersionedPrinter
- type YAMLPrinter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendAllLabels ¶ added in v1.7.0
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 DecorateTable ¶ added in v1.7.0
func DecorateTable(table *metav1alpha1.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
FormatResourceName receives a resource kind, name, and boolean specifying whether or not to update the current name to "kind/name"
func GetNewTabWriter ¶
GetNewTabWriter returns a tabwriter that translates tabbed columns in input into properly aligned text.
func PrintTable ¶ added in v1.7.0
func PrintTable(table *metav1alpha1.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 filetred 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 ¶
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 ShortHumanDuration ¶
func ValidatePrintHandlerFunc ¶ added in v1.7.0
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
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) ([]metav1alpha1.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 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) AfterPrint ¶
func (s *CustomColumnsPrinter) AfterPrint(w io.Writer, res string) error
func (*CustomColumnsPrinter) HandledResources ¶
func (s *CustomColumnsPrinter) HandledResources() []string
func (*CustomColumnsPrinter) IsGeneric ¶ added in v1.7.0
func (s *CustomColumnsPrinter) IsGeneric() bool
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 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(encoder runtime.Encoder, 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) AfterPrint ¶
func (h *HumanReadablePrinter) AfterPrint(output io.Writer, res string) error
func (*HumanReadablePrinter) DefaultTableHandler ¶ added in v1.8.0
func (h *HumanReadablePrinter) DefaultTableHandler(columnDefinitions []metav1alpha1.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) EnsurePrintWithKind ¶
func (h *HumanReadablePrinter) EnsurePrintWithKind(kind string)
EnsurePrintWithKind sets HumanReadablePrinter options "WithKind" to true and "Kind" to the string arg it receives, pre-pending this string to the "NAME" column in an output of resources.
func (*HumanReadablePrinter) GetResourceKind ¶
func (h *HumanReadablePrinter) GetResourceKind() string
GetResourceKind returns the type currently set for a resource
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) IsGeneric ¶ added in v1.7.0
func (h *HumanReadablePrinter) IsGeneric() bool
func (*HumanReadablePrinter) PrintObj ¶
PrintObj prints the obj in a human-friendly format according to the type of the obj. TODO: unify the behavior of PrintObj, which often expects single items and tracks headers and filtering, with other printers, that expect list objects. The tracking behavior should probably be a higher level wrapper (MultiObjectTablePrinter) that calls into the PrintTable method and then displays consistent output.
func (*HumanReadablePrinter) PrintTable ¶ added in v1.7.0
func (h *HumanReadablePrinter) PrintTable(obj runtime.Object, options PrintOptions) (*metav1alpha1.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 []metav1alpha1.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
func (a *HumanReadablePrinter) With(fns ...func(PrintHandler)) *HumanReadablePrinter
type JSONPathPrinter ¶
JSONPathPrinter is an implementation of ResourcePrinter which formats data with jsonpath expression.
func NewJSONPathPrinter ¶
func NewJSONPathPrinter(tmpl string) (*JSONPathPrinter, error)
func (*JSONPathPrinter) AfterPrint ¶
func (j *JSONPathPrinter) AfterPrint(w io.Writer, res string) error
func (*JSONPathPrinter) HandledResources ¶
func (p *JSONPathPrinter) HandledResources() []string
TODO: implement HandledResources()
func (*JSONPathPrinter) IsGeneric ¶ added in v1.7.0
func (p *JSONPathPrinter) IsGeneric() bool
type JSONPrinter ¶
type JSONPrinter struct { }
JSONPrinter is an implementation of ResourcePrinter which outputs an object as JSON.
func (*JSONPrinter) AfterPrint ¶
func (p *JSONPrinter) AfterPrint(w io.Writer, res string) error
func (*JSONPrinter) HandledResources ¶
func (p *JSONPrinter) HandledResources() []string
TODO: implement HandledResources()
func (*JSONPrinter) IsGeneric ¶ added in v1.7.0
func (p *JSONPrinter) IsGeneric() bool
type NamePrinter ¶
type NamePrinter struct { Decoders []runtime.Decoder Typer runtime.ObjectTyper Mapper meta.RESTMapper }
NamePrinter is an implementation of ResourcePrinter which outputs "resource/name" pair of an object.
func (*NamePrinter) AfterPrint ¶
func (p *NamePrinter) AfterPrint(w io.Writer, res string) error
func (*NamePrinter) HandledResources ¶
func (p *NamePrinter) HandledResources() []string
TODO: implement HandledResources()
func (*NamePrinter) IsGeneric ¶ added in v1.7.0
func (p *NamePrinter) IsGeneric() bool
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 PrintHandler ¶ added in v1.7.0
type PrintHandler interface { Handler(columns, columnsWithWide []string, printFunc interface{}) error TableHandler(columns []metav1alpha1.TableColumnDefinition, printFunc interface{}) error DefaultTableHandler(columns []metav1alpha1.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 string 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 HandledResources() []string //Can be used to print out warning/clarifications if needed //after all objects were printed AfterPrint(io.Writer, string) error // Identify if it is a generic printer IsGeneric() bool }
ResourcePrinter is an interface that knows how to print runtime objects.
func GetStandardPrinter ¶
func GetStandardPrinter(mapper meta.RESTMapper, typer runtime.ObjectTyper, encoder runtime.Encoder, decoders []runtime.Decoder, options PrintOptions) (ResourcePrinter, error)
GetStandardPrinter takes a format type, an optional format argument. It will return a printer or an error. The printer is agnostic to schema versions, so you must send arguments to PrintObj in the version you wish them to be shown using a VersionedPrinter (typically when generic is true).
func NewVersionedPrinter ¶
func NewVersionedPrinter(printer ResourcePrinter, converter runtime.ObjectConvertor, versions ...schema.GroupVersion) ResourcePrinter
NewVersionedPrinter wraps a printer to convert objects to a known API version prior to printing.
type ResourcePrinterFunc ¶
ResourcePrinterFunc is a function that can print objects
func (ResourcePrinterFunc) AfterPrint ¶
func (fn ResourcePrinterFunc) AfterPrint(io.Writer, string) error
func (ResourcePrinterFunc) HandledResources ¶
func (fn ResourcePrinterFunc) HandledResources() []string
TODO: implement HandledResources()
func (ResourcePrinterFunc) IsGeneric ¶ added in v1.7.0
func (fn ResourcePrinterFunc) IsGeneric() bool
type TablePrinter ¶ added in v1.7.0
type TablePrinter interface {
PrintTable(obj runtime.Object, options PrintOptions) (*metav1alpha1.Table, error)
}
type TemplatePrinter ¶
type TemplatePrinter struct {
// contains filtered or unexported fields
}
TemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.
func NewTemplatePrinter ¶
func NewTemplatePrinter(tmpl []byte) (*TemplatePrinter, error)
func (*TemplatePrinter) AfterPrint ¶
func (p *TemplatePrinter) AfterPrint(w io.Writer, res string) error
func (*TemplatePrinter) AllowMissingKeys ¶
func (p *TemplatePrinter) AllowMissingKeys(allow bool)
AllowMissingKeys tells the template engine if missing keys are allowed.
func (*TemplatePrinter) HandledResources ¶
func (p *TemplatePrinter) HandledResources() []string
TODO: implement HandledResources()
func (*TemplatePrinter) IsGeneric ¶ added in v1.7.0
func (p *TemplatePrinter) IsGeneric() bool
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) AfterPrint ¶
func (p *VersionedPrinter) AfterPrint(w io.Writer, res string) error
func (*VersionedPrinter) HandledResources ¶
func (p *VersionedPrinter) HandledResources() []string
TODO: implement HandledResources()
func (*VersionedPrinter) IsGeneric ¶ added in v1.7.0
func (p *VersionedPrinter) IsGeneric() bool
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) AfterPrint ¶
func (p *YAMLPrinter) AfterPrint(w io.Writer, res string) error
func (*YAMLPrinter) HandledResources ¶
func (p *YAMLPrinter) HandledResources() []string
TODO: implement HandledResources()
func (*YAMLPrinter) IsGeneric ¶ added in v1.7.0
func (p *YAMLPrinter) IsGeneric() bool