Documentation ¶
Overview ¶
Package genericresource is modified from "k8s.io/cli-runtime/pkg/resource". It can fetch any object (not only runtime.object) from file, http, and stdin.
Index ¶
- type Builder
- func (b *Builder) Constructor(newFunc func() interface{}) *Builder
- func (b *Builder) Do() *Result
- func (b *Builder) Filename(recursive bool, filenames ...string) *Builder
- func (b *Builder) Path(recursive bool, paths ...string) *Builder
- func (b *Builder) Schema(schema resource.ContentValidator) *Builder
- func (b *Builder) Stdin() *Builder
- func (b *Builder) URL(httpAttemptCount int, urls ...*url.URL) *Builder
- type FileVisitor
- type Info
- type Result
- type StreamVisitor
- type URLVisitor
- type Visitor
- type VisitorFunc
- type VisitorList
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder provides convenience functions for taking arguments and parameters from the command line and converting them to a list of resources to iterate over using the Visitor interface.
func (*Builder) Constructor ¶
Constructor tells wanted type of object.
func (*Builder) Do ¶
Do returns a Result object with a Visitor for the resources identified by the Builder. Note that stream inputs are consumed by the first execution - use Infos() or Objects() on the Result to capture a list for further iteration.
func (*Builder) Filename ¶
Filename groups input in two categories: URLs and files (files, directories, STDIN)
func (*Builder) Path ¶
Path accepts a set of paths that may be files, directories (all can contain one or more resources). Creates a FileVisitor for each file and then each FileVisitor is streaming the content to a StreamVisitor.
func (*Builder) Schema ¶
func (b *Builder) Schema(schema resource.ContentValidator) *Builder
Schema set the schema to validate data in files.
type FileVisitor ¶
type FileVisitor struct { Path string *StreamVisitor }
FileVisitor is wrapping around a StreamVisitor, to handle open/close files
func (*FileVisitor) Visit ¶
func (v *FileVisitor) Visit(fn VisitorFunc) error
Visit in a FileVisitor is just taking care of opening/closing files
type Info ¶
type Info struct { // Optional, Source is the filename or URL to template file (.json or .yaml), // or stdin to use to handle the resource Source string // Optional, this is the most recent value returned by the server if available. It will // typically be in unstructured or internal forms, depending on how the Builder was // defined. If retrieved from the server, the Builder expects the mapping client to // decide the final form. Use the AsVersioned, AsUnstructured, and AsInternal helpers // to alter the object versions. // If Subresource is specified, this will be the object for the subresource. Data []byte Object interface{} }
Info contains temporary info to execute a REST call, or show the results of an already completed REST call.
type Result ¶
type Result struct {
// contains filtered or unexported fields
}
Result contains helper methods for dealing with the outcome of a Builder.
func (*Result) Err ¶
Err returns one or more errors (via a util.ErrorList) that occurred prior to visiting the elements in the visitor. To see all errors including those that occur during visitation, invoke Infos().
func (*Result) Infos ¶
Infos returns an array of all of the resource infos retrieved via traversal. Will attempt to traverse the entire set of visitors only once, and will return a cached list on subsequent calls.
func (*Result) Visit ¶
func (r *Result) Visit(fn VisitorFunc) error
Visit implements the Visitor interface on the items described in the Builder. Note that some visitor sources are not traversable more than once, or may return different results. If you wish to operate on the same set of resources multiple times, use the Infos() method.
type StreamVisitor ¶
type StreamVisitor struct { io.Reader Source string Schema resource.ContentValidator // contains filtered or unexported fields }
StreamVisitor reads objects from an io.Reader and walks them. A stream visitor can only be visited once. Unmarshal stream to object by json.
func NewStreamVisitor ¶
func NewStreamVisitor(r io.Reader, mapper *mapper, source string, schema resource.ContentValidator) *StreamVisitor
NewStreamVisitor is a helper function that is useful when we want to change the fields of the struct but keep calls the same.
func (*StreamVisitor) Visit ¶
func (v *StreamVisitor) Visit(fn VisitorFunc) error
Visit implements Visitor over a stream. StreamVisitor is able to distinct multiple resources in one stream.
type URLVisitor ¶
type URLVisitor struct { URL *url.URL *StreamVisitor HTTPAttemptCount int }
URLVisitor downloads the contents of a URL, and if successful, returns an info object representing the downloaded object.
func NewURLVisitor ¶
func NewURLVisitor(mapper *mapper, httpAttemptCount int, u *url.URL, schema resource.ContentValidator) *URLVisitor
NewURLVisitor returns a visitor to download from given url. It will max retry "httpAttemptCount" when failed.
func (*URLVisitor) Visit ¶
func (v *URLVisitor) Visit(fn VisitorFunc) error
Visit down object from url.
type Visitor ¶
type Visitor interface {
Visit(VisitorFunc) error
}
Visitor lets clients walk a list of resources.
func ExpandPathsToFileVisitors ¶
func ExpandPathsToFileVisitors(mapper *mapper, paths string, recursive bool, extensions []string, schema resource.ContentValidator) ([]Visitor, error)
ExpandPathsToFileVisitors will return a slice of FileVisitors that will handle files from the provided path. After FileVisitors open the files, they will pass an io.Reader to a StreamVisitor to do the reading. (stdin is also taken care of). Paths argument also accepts a single file, and will return a single visitor
func FileVisitorForSTDIN ¶
func FileVisitorForSTDIN(mapper *mapper, schema resource.ContentValidator) Visitor
FileVisitorForSTDIN return a special FileVisitor just for STDIN
type VisitorFunc ¶
VisitorFunc implements the Visitor interface for a matching function. If there was a problem walking a list of resources, the incoming error will describe the problem and the function can decide how to handle that error. A nil returned indicates to accept an error to continue loops even when errors happen. This is useful for ignoring certain kinds of errors or aggregating errors in some way.
type VisitorList ¶
type VisitorList []Visitor
VisitorList implements Visit for the sub visitors it contains. The first error returned from a child Visitor will terminate iteration.
func (VisitorList) Visit ¶
func (l VisitorList) Visit(fn VisitorFunc) error
Visit implements Visitor