Documentation ¶
Overview ¶
Package results provides a low level API to extract data from a Sonobuoy result archive.
Index ¶
- Constants
- func ConfigFile(version string) string
- func DiscoverVersion(reader io.Reader) (string, error)
- func ExtractBytes(file string, path string, info os.FileInfo, buf *bytes.Buffer) error
- func ExtractConfig(path string, info os.FileInfo, conf *config.Config) error
- func ExtractFileIntoStruct(file, path string, info os.FileInfo, object interface{}) error
- func ExtractIntoStruct(predicate func(string) bool, path string, info os.FileInfo, object interface{}) error
- func Failed(testCase reporters.JUnitTestCase) bool
- func Filter(predicate func(testCase reporters.JUnitTestCase) bool, ...) []reporters.JUnitTestCase
- func Passed(testCase reporters.JUnitTestCase) bool
- func Skipped(testCase reporters.JUnitTestCase) bool
- type AlphabetizedTestCases
- type Metadata
- type Reader
- func (r *Reader) Metadata() string
- func (r *Reader) NamespacedResources() string
- func (r *Reader) NodesFile() string
- func (r *Reader) NonNamespacedResources() string
- func (r *Reader) ServerGroupsFile() string
- func (r *Reader) ServerVersionFile() string
- func (r *Reader) WalkFiles(walkfn filepath.WalkFunc) error
Examples ¶
Constants ¶
const ( // UnknownVersion lets the consumer know if this client can detect the archive version or not. UnknownVersion = "v?.?" VersionEight = "v0.8" VersionNine = "v0.9" VersionTen = "v0.10" )
const (
// PluginsDir defines where in the archive the plugin results are.
PluginsDir = "plugins/"
)
Variables ¶
This section is empty.
Functions ¶
func ConfigFile ¶
ConfigFile returns the path to the sonobuoy config file. This is not a method as it is used to determine the version of the archive.
func DiscoverVersion ¶
DiscoverVersion takes a Sonobuoy archive stream and extracts just the version of the archive.
func ExtractBytes ¶
ExtractBytes pulls out bytes into a buffer for any path matching file.
func ExtractConfig ¶
ExtractConfig populates the config object regardless of version.
func ExtractFileIntoStruct ¶
ExtractFileIntoStruct is a helper for a common use case of extracting the contents of one file into the object.
func ExtractIntoStruct ¶
func ExtractIntoStruct(predicate func(string) bool, path string, info os.FileInfo, object interface{}) error
ExtractIntoStruct takes a predicate function and some file information and decodes the contents of the file that matches the predicate into the interface passed in (generally a pointer to a struct/slice).
func Failed ¶
func Failed(testCase reporters.JUnitTestCase) bool
Failed returns true if the test failed.
func Filter ¶
func Filter(predicate func(testCase reporters.JUnitTestCase) bool, testSuite reporters.JUnitTestSuite) []reporters.JUnitTestCase
Filter keeps only the tests that match the predicate function.
func Passed ¶
func Passed(testCase reporters.JUnitTestCase) bool
Passed returns true if the test passed.
func Skipped ¶
func Skipped(testCase reporters.JUnitTestCase) bool
Skipped returns true if the test was skipped.
Types ¶
type AlphabetizedTestCases ¶
type AlphabetizedTestCases []reporters.JUnitTestCase
AlphabetizedTestCases implements Sort over the list of testCases.
func (AlphabetizedTestCases) Len ¶
func (a AlphabetizedTestCases) Len() int
func (AlphabetizedTestCases) Less ¶
func (a AlphabetizedTestCases) Less(i, j int) bool
func (AlphabetizedTestCases) Swap ¶
func (a AlphabetizedTestCases) Swap(i, j int)
type Metadata ¶
type Metadata struct { // Config is the config used during this Sonobuoy run. Config config.Config // QueryMetadata shows information about each query Sonobuoy ran in the // cluster. QueryData []discovery.QueryData }
Metadata is the data about the Sonobuoy run and how long it took to query the system.
type Reader ¶
Reader holds a reader and a version. It uses the version to know where to find files within the archive.
func NewReaderFromBytes ¶
NewReaderFromBytes is a helper constructor that will discover the version of the archive and return a new Reader with the correct version already populated.
Example ¶
package main import ( "fmt" "io/ioutil" "github.com/heptio/sonobuoy/pkg/client/results" ) func main() { path := "testdata/results-0.8.tar.gz" data, err := ioutil.ReadFile(path) if err != nil { panic(err) } results, err := results.NewReaderFromBytes(data) if err != nil { panic(err) } fmt.Println(results.Version) }
Output: v0.8
func NewReaderWithVersion ¶
NewReaderWithVersion creates a results.Reader that interprets a results archive of the version passed in. Useful if the reader can be read only once and if the version of the data to read is known.
Example ¶
package main import ( "compress/gzip" "fmt" "os" "github.com/heptio/sonobuoy/pkg/client/results" ) func main() { path := "testdata/results-0.9.tar.gz" f, err := os.Open(path) if err != nil { panic(err) } reader, err := gzip.NewReader(f) if err != nil { panic(err) } r := results.NewReaderWithVersion(reader, results.VersionNine) fmt.Println(r.Version) }
Output: v0.9
func (*Reader) Metadata ¶
Metadata is the location of the metadata directory in the results archive.
func (*Reader) NamespacedResources ¶
NamespacedResources returns the path to the directory that contains information about namespaced Kubernetes resources.
func (*Reader) NodesFile ¶
NodesFile returns the path to the file that lists the nodes of the Kubernetes cluster.
func (*Reader) NonNamespacedResources ¶
NonNamespacedResources returns the path to the non-namespaced directory.
func (*Reader) ServerGroupsFile ¶
ServerGroupsFile returns the path to the groups the Kubernetes API supported at the time of the run.
func (*Reader) ServerVersionFile ¶
ServerVersionFile is the location of the file that contains the Kubernetes version Sonobuoy ran on.