os: github.com/juju/os/series Index | Files

package series

import "github.com/juju/os/series"

series provides helpers for determining the series of a host, and translating from os to series.


Package Files

distroinfo.go series.go series_linux.go supportedseries.go


var (
    // TODO(katco): Remove globals (lp:1633571)
    // Override for testing.
    MustHostSeries = mustHostSeries
var UbuntuDistroInfo = "/usr/share/distro-info/ubuntu.csv"

UbuntuDistroInfo references a csv that contains all the distro information about info. This includes what the names and versions of a distro and if the distro is supported or not.

func CentOSVersionSeries Uses

func CentOSVersionSeries(version string) (string, error)

CentOSVersionSeries validates that the supplied series (eg: centos7) is supported.

func DefaultSupportedLTS Uses

func DefaultSupportedLTS() string

DefaultSupportedLTS returns the latest LTS that Juju supports and is compatible with.

func ESMSupportedJujuSeries Uses

func ESMSupportedJujuSeries() []string

ESMSupportedJujuSeries returns a slice of just juju extended security maintenance supported ubuntu series.

func GetOSFromSeries Uses

func GetOSFromSeries(series string) (os.OSType, error)

GetOSFromSeries will return the operating system based on the series that is passed to it

func HostSeries Uses

func HostSeries() (string, error)

HostSeries returns the series of the machine the current process is running on.

func IsUnknownOSForSeriesError Uses

func IsUnknownOSForSeriesError(err error) bool

IsUnknownOSForSeriesError returns true if err is of type unknownOSForSeriesError.

func IsUnknownSeriesVersionError Uses

func IsUnknownSeriesVersionError(err error) bool

IsUnknownSeriesVersionError returns true if err is of type unknownSeriesVersionError.

func IsUnknownVersionSeriesError Uses

func IsUnknownVersionSeriesError(err error) bool

IsUnknownVersionSeriesError returns true if err is of type unknownVersionSeriesError.

func IsWindowsNano Uses

func IsWindowsNano(series string) bool

IsWindowsNano tells us whether the provided series is a nano series. It may seem futile at this point, but more nano series will come up with time. This is here and not in a windows specific package because we might want to take decisions dependant on whether we have a nano series or not in more general code.

func LatestLts Uses

func LatestLts() string

LatestLts returns the Latest LTS Series found in distro-info

func MustOSFromSeries Uses

func MustOSFromSeries(series string) os.OSType

MustOSFromSeries will panic if the series represents an "unknown" operating system

func OSSupportedSeries Uses

func OSSupportedSeries(os os.OSType) []string

OSSupportedSeries returns the series of the specified OS on which we can run Juju workloads.

func OverwrittenWindowsVersions Uses

func OverwrittenWindowsVersions() []string

func ReleaseVersion Uses

func ReleaseVersion() string

ReleaseVersion looks for the value of VERSION_ID in the content of the os-release. If the value is not found, the file is not found, or an error occurs reading the file, an empty string is returned.

func SeriesVersion Uses

func SeriesVersion(series string) (string, error)

SeriesVersion returns the version for the specified series.

func SetLatestLtsForTesting Uses

func SetLatestLtsForTesting(series string) string

SetLatestLtsForTesting is provided to allow tests to override the lts series used and decouple the tests from the host by avoiding calling out to distro-info. It returns the previous setting so that it may be set back to the original value by the caller.

func SupportedJujuControllerSeries Uses

func SupportedJujuControllerSeries() []string

SupportedJujuControllerSeries returns a slice of juju supported series that target a controller (bootstrapping).

func SupportedJujuSeries Uses

func SupportedJujuSeries() []string

SupportedJujuSeries returns a slice of juju supported series that also target a workload.

func SupportedJujuWorkloadSeries Uses

func SupportedJujuWorkloadSeries() []string

SupportedJujuWorkloadSeries returns a slice of juju supported series that target a workload (deploying a charm).

func SupportedLts Uses

func SupportedLts() []string

SupportedLts are the current supported LTS series in ascending order.

func SupportedSeries Uses

func SupportedSeries() []string

SupportedSeries returns the series on which we can run Juju workloads.

func UbuntuSeriesVersion Uses

func UbuntuSeriesVersion(series string) (string, error)

UbuntuSeriesVersion returns the ubuntu version for the specified series.

func UpdateSeriesVersions Uses

func UpdateSeriesVersions() error

UpdateSeriesVersions forces an update of the series versions by querying distro-info if possible.

func VersionSeries Uses

func VersionSeries(version string) (string, error)

VersionSeries returns the series (e.g.trusty) for the specified version (e.g. 14.04).

func WindowsVersionSeries Uses

func WindowsVersionSeries(version string) (string, error)

WindowsVersionSeries returns the series (eg: win2012r2) for the specified version (eg: Windows Server 2012 R2 Standard)

func WindowsVersions Uses

func WindowsVersions() map[string]string

WindowsVersions returns all windows versions as a map If we have nan and windows version in common, nano takes precedence

type DistroInfo Uses

type DistroInfo struct {
    // contains filtered or unexported fields

DistroInfo holds records of which distro is supported or not. Refreshing will cause the distro to go out and fetch new information from the local file system to update itself.

func NewDistroInfo Uses

func NewDistroInfo(path string) *DistroInfo

NewDistroInfo creates a new DistroInfo for querying the distro.

func (*DistroInfo) Refresh Uses

func (d *DistroInfo) Refresh() error

Refresh will attempt to update the information it has about each distro and if the distro is supported or not.

func (*DistroInfo) SeriesInfo Uses

func (d *DistroInfo) SeriesInfo(seriesName string) (DistroInfoSerie, bool)

SeriesInfo returns the DistroInfoSerie for the series name.

type DistroInfoSerie Uses

type DistroInfoSerie struct {
    Version  string
    CodeName string
    Series   string
    Created  time.Time
    Released time.Time
    EOL      time.Time

DistroInfoSerie holds the information about each distro.

func (*DistroInfoSerie) LTS Uses

func (d *DistroInfoSerie) LTS() bool

LTS returns true if the series is an LTS or not.

func (*DistroInfoSerie) Supported Uses

func (d *DistroInfoSerie) Supported(now time.Time) bool

Supported returns true if the underlying series is supported or not. It expects the time to be in UTC.

type FileSystem Uses

type FileSystem interface {
    Open(string) (*os.File, error)
    Exists(string) bool

FileSystem defines a interface for interacting with the host os.

Package series imports 11 packages (graph) and is imported by 233 packages. Updated 2020-04-07. Refresh now. Tools for package owners.