version

package
v0.24.1 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2019 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ShouldUpdate added in v0.24.0

func ShouldUpdate(rollout Rollout, nodeID storj.NodeID) bool

ShouldUpdate checks if for the the given rollout state, a user with the given nodeID should update.

Types

type AllowedVersions

type AllowedVersions struct {
	Satellite   SemVer
	Storagenode SemVer
	Uplink      SemVer
	Gateway     SemVer
	Identity    SemVer

	Processes Processes `json:"processes"`
}

AllowedVersions provides the Minimum SemVer per Service TODO: I don't think this name is representative of what this struct now holds.

type Info

type Info struct {
	Timestamp  time.Time `json:"timestamp,omitempty"`
	CommitHash string    `json:"commitHash,omitempty"`
	Version    SemVer    `json:"version"`
	Release    bool      `json:"release,omitempty"`
	// contains filtered or unexported fields
}

Info is the versioning information for a binary

var (
	// VerError is the error class for version-related errors.
	VerError = errs.Class("version error")

	// Build is a struct containing all relevant build information associated with the binary
	Build Info
)

func New

func New(data []byte) (v Info, err error)

New creates Version_Info from a json byte array

func (Info) IsZero added in v0.24.0

func (info Info) IsZero() bool

IsZero checks if the version struct is its zero value.

func (Info) Marshal

func (info Info) Marshal() ([]byte, error)

Marshal converts the existing Version Info to any json byte array

func (Info) Proto added in v0.8.1

func (info Info) Proto() (*pb.NodeVersion, error)

Proto converts an Info struct to a pb.NodeVersion TODO: shouldn't we just use pb.NodeVersion everywhere? gogoproto will let us make it match Info.

func (*Info) Stats added in v0.9.0

func (info *Info) Stats(reportValue func(name string, val float64))

Stats implements the monkit.StatSource interface

type Process added in v0.21.0

type Process struct {
	Minimum   Version `json:"minimum"`
	Suggested Version `json:"suggested"`
	Rollout   Rollout `json:"rollout"`
}

Process versions for specific binary.

type Processes added in v0.21.0

type Processes struct {
	Satellite   Process `json:"satellite"`
	Storagenode Process `json:"storagenode"`
	Uplink      Process `json:"uplink"`
	Gateway     Process `json:"gateway"`
	Identity    Process `json:"identity"`
}

Processes describes versions for each binary. TODO: this name is inconsistent with the versioncontrol server pkg's analogue, `Versions`.

type Rollout added in v0.24.0

type Rollout struct {
	Seed   RolloutBytes `json:"seed"`
	Cursor RolloutBytes `json:"cursor"`
}

Rollout represents the state of a version rollout.

type RolloutBytes added in v0.24.0

type RolloutBytes [32]byte

RolloutBytes implements json un/marshalling using hex de/encoding.

func PercentageToCursor added in v0.24.0

func PercentageToCursor(pct int) RolloutBytes

PercentageToCursor calculates the cursor value for the given percentage of nodes which should update.

func (RolloutBytes) MarshalJSON added in v0.24.0

func (rb RolloutBytes) MarshalJSON() ([]byte, error)

MarshalJSON hex-encodes RolloutBytes and pre/appends JSON string literal quotes.

func (*RolloutBytes) UnmarshalJSON added in v0.24.0

func (rb *RolloutBytes) UnmarshalJSON(b []byte) error

UnmarshalJSON drops the JSON string literal quotes and hex-decodes RolloutBytes .

type SemVer

type SemVer struct {
	semver.Version
}

SemVer represents a semantic version TODO: replace with semver.Version

func NewSemVer

func NewSemVer(v string) (SemVer, error)

NewSemVer parses a given version and returns an instance of SemVer or an error if unable to parse the version.

func (*SemVer) Compare added in v0.21.0

func (sem *SemVer) Compare(version SemVer) int

Compare compare two versions, return -1 if compared version is greater, 0 if equal and 1 if less.

func (SemVer) IsZero added in v0.24.0

func (sem SemVer) IsZero() bool

IsZero checks if the semantic version is its zero value.

func (*SemVer) String

func (sem *SemVer) String() (version string)

String converts the SemVer struct to a more easy to handle string

type Version added in v0.21.0

type Version struct {
	Version string `json:"version"`
	URL     string `json:"url"`
}

Version represents version and download URL for binary.

func (*Version) SemVer added in v0.24.0

func (ver *Version) SemVer() (SemVer, error)

SemVer converts a version struct into a semantic version struct.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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