tools

package
v0.0.0-...-0db00f2 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoMatches = errors.New("no matching agent binaries available")

Functions

This section is empty.

Types

type Filter

type Filter struct {
	// Number, if non-zero, causes the filter to match only tools with
	// that exact version number.
	Number version.Number

	// OSType, if not empty, causes the filter to match only tools with
	// that os type.
	OSType string

	// Arch, if not empty, causes the filter to match only tools with
	// that architecture.
	Arch string
}

Filter holds criteria for choosing tools.

type HasVersion

type HasVersion interface {
	// AgentVersion returns the agent version.
	AgentVersion() version.Number
}

HasVersion instance store an agent version.

type List

type List []*Tools

List holds tools available in an environment. The order of tools within a List is not significant.

func (List) AllReleases

func (src List) AllReleases() []string

AllReleases returns all os types for which some tools in src were built.

func (List) Exclude

func (src List) Exclude(excluded List) List

Exclude returns the tools in src that are not in excluded.

func (List) Len

func (l List) Len() int

func (List) Less

func (l List) Less(i, j int) bool

func (List) Match

func (src List) Match(f Filter) (List, error)

Match returns a List, derived from src, containing only those tools that match the supplied Filter. If no tools match, it returns ErrNoMatches.

func (List) Newest

func (src List) Newest() (version.Number, List)

Newest returns the greatest version in src, and the tools with that version.

func (List) OneArch

func (src List) OneArch() (string, error)

OneArch returns a single architecture for all tools in src, or an error if there's more than one arch (or none) present.

func (List) OneRelease

func (src List) OneRelease() string

OneRelease returns the single os type for which all tools in src were built.

func (List) String

func (src List) String() string

String returns the versions of the tools in src, separated by semicolons.

func (List) Swap

func (l List) Swap(i, j int)

func (List) URLs

func (src List) URLs() map[version.Binary][]string

URLs returns download URLs for the tools in src, keyed by binary version. Each version can have more than one URL.

type Tools

type Tools struct {
	Version version.Binary `json:"version"`
	URL     string         `json:"url"`
	SHA256  string         `json:"sha256,omitempty"`
	Size    int64          `json:"size"`
}

Tools represents the location and version of a tools tarball.

func (*Tools) AgentVersion

func (t *Tools) AgentVersion() version.Number

AgentVersion is the version of Juju being represented.

func (*Tools) GetBSON

func (t *Tools) GetBSON() (interface{}, error)

GetBSON returns the structure to be serialized for the tools as a generic interface.

func (*Tools) SetBSON

func (t *Tools) SetBSON(raw bson.Raw) error

SetBSON updates the internal members with the data stored in the bson.Raw parameter.

type Versions

type Versions []HasVersion

Versions holds instances of HasVersion.

func (Versions) Match

func (src Versions) Match(f Filter) (Versions, error)

Match returns a List, derived from src, containing only those instances that match the supplied Filter. If no tools match, it returns ErrNoMatches.

func (Versions) Newest

func (src Versions) Newest() (version.Number, Versions)

Newest returns the greatest version in src, and the instances with that version.

func (Versions) NewestCompatible

func (src Versions) NewestCompatible(base version.Number, allowDevBuilds bool) (newest version.Number, found bool)

NewestCompatible returns the most recent version compatible with base, i.e. with the same major number and greater or equal minor, patch and build numbers.

Jump to

Keyboard shortcuts

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