unit

package
v0.14.2 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2015 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultUnitType

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

func RecognizedUnitType(name string) bool

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

Types

type FakeUnitManager

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

func NewFakeUnitManager

func NewFakeUnitManager() *FakeUnitManager

func (*FakeUnitManager) GetUnitState

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

func (*FakeUnitManager) GetUnitStates

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

func (*FakeUnitManager) Load

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

func (*FakeUnitManager) MarshalJSON

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

func (*FakeUnitManager) TriggerStart

func (fum *FakeUnitManager) TriggerStart(string)

func (*FakeUnitManager) TriggerStop

func (fum *FakeUnitManager) TriggerStop(string)

func (*FakeUnitManager) Units

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

func (*FakeUnitManager) Unload

func (fum *FakeUnitManager) Unload(name string)

type Hash

type Hash [sha1.Size]byte

SHA1 sum

func (*Hash) Empty

func (h *Hash) Empty() bool

func (Hash) Short

func (h Hash) Short() string

func (Hash) String

func (h Hash) String() string

type UnitFile

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

	Options []*unit.UnitOption
}

A UnitFile represents a systemd configuration which encodes information about any of the unit types that fleet supports (as defined in SupportedUnitTypes()). UnitFiles are linked to Units by the Hash of their contents. Similar to systemd, a UnitFile 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 Unit that references this UnitFile.

func NewUnitFile

func NewUnitFile(raw string) (*UnitFile, error)

func NewUnitFromOptions

func NewUnitFromOptions(opts []*unit.UnitOption) *UnitFile

func (*UnitFile) Bytes

func (u *UnitFile) Bytes() []byte

func (*UnitFile) Description

func (u *UnitFile) 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 (*UnitFile) Hash

func (u *UnitFile) Hash() Hash

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

func (*UnitFile) String

func (u *UnitFile) String() string

type UnitManager

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

	TriggerStart(string)
	TriggerStop(string)

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

type UnitNameInfo

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

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

func (nu UnitNameInfo) IsInstance() bool

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

type UnitState

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

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

func NewUnitState

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

type UnitStateGenerator

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

func NewUnitStateGenerator

func NewUnitStateGenerator(mgr UnitManager) *UnitStateGenerator

func (*UnitStateGenerator) Generate

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) MarshalJSON

func (g *UnitStateGenerator) MarshalJSON() ([]byte, error)

func (*UnitStateGenerator) Run

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

func (g *UnitStateGenerator) Subscribe(name string)

Subscribe adds a unit to the internal state filter

func (*UnitStateGenerator) Unsubscribe

func (g *UnitStateGenerator) Unsubscribe(name string)

Unsubscribe removes a unit from the internal state filter

type UnitStateHeartbeat

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