version

package
v0.25.1 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 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   OldSemVer
	Storagenode OldSemVer
	Uplink      OldSemVer
	Gateway     OldSemVer
	Identity    OldSemVer

	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 OldSemVer added in v0.24.2

type OldSemVer struct {
	Major int64 `json:"major"`
	Minor int64 `json:"minor"`
	Patch int64 `json:"patch"`
}

OldSemVer represents a semantic version. NB: this will be deprecated in favor of `SemVer`; these structs marshal to JSON differently.

func NewOldSemVer added in v0.24.2

func NewOldSemVer(v string) (OldSemVer, error)

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

func (OldSemVer) String added in v0.24.3

func (old OldSemVer) String() string

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"`
	StoragenodeUpdater Process `json:"storagenode-updater"`
	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