unit

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2014 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultUnitType added in v0.3.1

func DefaultUnitType(name string) string

DefaultUnitType appends the default unit type to a given unit name, ignoring any file extensions that already exist.

func RecognizedUnitType added in v0.3.1

func RecognizedUnitType(name string) bool

RecognizedUnitType determines whether or not the given unit name represents a recognized unit type.

Types

type FakeUnitManager added in v0.4.0

type FakeUnitManager struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewFakeUnitManager added in v0.4.0

func NewFakeUnitManager() *FakeUnitManager

func (*FakeUnitManager) GetUnitState added in v0.4.0

func (fum *FakeUnitManager) GetUnitState(name string) (us *UnitState, err error)

func (*FakeUnitManager) GetUnitStates added in v0.6.0

func (fum *FakeUnitManager) GetUnitStates(filter pkg.Set) (map[string]*UnitState, error)

func (*FakeUnitManager) Load added in v0.4.0

func (fum *FakeUnitManager) Load(name string, u Unit) error

func (*FakeUnitManager) MarshalJSON added in v0.4.0

func (fum *FakeUnitManager) MarshalJSON() ([]byte, error)

func (*FakeUnitManager) Start added in v0.4.0

func (fum *FakeUnitManager) Start(string)

func (*FakeUnitManager) Stop added in v0.4.0

func (fum *FakeUnitManager) Stop(string)

func (*FakeUnitManager) Units added in v0.4.0

func (fum *FakeUnitManager) Units() ([]string, error)

func (*FakeUnitManager) Unload added in v0.4.0

func (fum *FakeUnitManager) Unload(name string)

type Hash added in v0.3.0

type Hash [sha1.Size]byte

SHA1 sum

func (*Hash) Empty added in v0.3.0

func (h *Hash) Empty() bool

func (Hash) Short added in v0.4.0

func (h Hash) Short() string

func (Hash) String added in v0.3.0

func (h Hash) String() string

type Unit added in v0.3.0

type Unit struct {
	// Contents represents the parsed unit file.
	// This field must be considered readonly.
	Contents map[string]map[string][]string

	// Raw represents the entire contents of the unit file.
	Raw string
}

A Unit represents a systemd configuration which encodes information about any of the unit types that fleet supports (as defined in SupportedUnitTypes()). Units are linked to Jobs by the Hash of their contents. Similar to systemd, a Unit configuration has no inherent name, but is rather named through the reference to it; in the case of systemd, the reference is the filename, and in the case of fleet, the reference is the name of the job that references this Unit.

func NewUnit added in v0.3.0

func NewUnit(raw string) (*Unit, error)

func NewUnitFromLegacyContents added in v0.3.0

func NewUnitFromLegacyContents(contents map[string]map[string]string) (*Unit, error)

NewUnitFromLegacyContents creates a Unit object from an obsolete unit file datastructure. This should only be used to remain backwards-compatible where necessary.

func (*Unit) Description added in v0.3.0

func (u *Unit) Description() string

Description returns the first Description option found in the Unit section. If the option is not defined, an empty string is returned.

func (*Unit) Hash added in v0.3.0

func (u *Unit) Hash() Hash

Hash returns the SHA1 hash of the raw contents of the Unit

func (*Unit) String added in v0.3.0

func (u *Unit) String() string

type UnitManager added in v0.4.0

type UnitManager interface {
	Load(string, Unit) error
	Unload(string)

	Start(string)
	Stop(string)

	Units() ([]string, error)
	GetUnitStates(pkg.Set) (map[string]*UnitState, error)
	GetUnitState(string) (*UnitState, error)
}

type UnitNameInfo added in v0.5.0

type UnitNameInfo struct {
	FullName string // Original complete name of the unit (e.g. foo.socket, foo@bar.service)
	Name     string // Name of the unit without suffix (e.g. foo, foo@bar)
	Prefix   string // Prefix of the template unit (e.g. foo)

	// If the unit represents an instance or a template, the following values are set
	Template string // Name of the canonical template unit (e.g. foo@.service)
	Instance string // Instance name (e.g. bar)
}

UnitNameInfo exposes certain interesting items about a Unit based on its name. For example, a unit with the name "foo@.service" constitutes a template unit, and a unit named "foo@1.service" would represent an instance unit of that template.

func NewUnitNameInfo added in v0.5.0

func NewUnitNameInfo(un string) *UnitNameInfo

NewUnitNameInfo generates a UnitNameInfo from the given name. If the given string is not a correct unit name, nil is returned.

func (UnitNameInfo) IsInstance added in v0.5.0

func (nu UnitNameInfo) IsInstance() bool

IsInstance returns a boolean indicating whether the UnitNameInfo appears to be an Instance of a Template unit

type UnitState added in v0.3.0

type UnitState struct {
	LoadState   string
	ActiveState string
	SubState    string
	MachineID   string
	UnitHash    string
}

UnitState encodes the current state of a unit loaded into a fleet agent

func NewUnitState added in v0.3.0

func NewUnitState(loadState, activeState, subState, mID string) *UnitState

type UnitStateGenerator added in v0.6.0

type UnitStateGenerator struct {
	// contains filtered or unexported fields
}

func NewUnitStateGenerator added in v0.6.0

func NewUnitStateGenerator(mgr UnitManager) *UnitStateGenerator

func (*UnitStateGenerator) Generate added in v0.6.0

func (g *UnitStateGenerator) Generate() (<-chan *UnitStateHeartbeat, error)

Generate returns and fills a channel with *UnitStateHeartbeat objects. Objects will only be returned for units to which this generator is currently subscribed.

func (*UnitStateGenerator) Run added in v0.6.0

func (g *UnitStateGenerator) Run(receiver chan<- *UnitStateHeartbeat, stop chan bool)

Run periodically calls Generate and sends received *UnitStateHeartbeat objects to the provided channel.

func (*UnitStateGenerator) Subscribe added in v0.6.0

func (g *UnitStateGenerator) Subscribe(name string)

Subscribe adds a unit to the internal state filter

func (*UnitStateGenerator) Unsubscribe added in v0.6.0

func (g *UnitStateGenerator) Unsubscribe(name string)

Unsubscribe removes a unit from the internal state filter

type UnitStateHeartbeat added in v0.6.0

type UnitStateHeartbeat struct {
	Name  string
	State *UnitState
}

Jump to

Keyboard shortcuts

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