machiner

package
v0.0.0-...-6cf1bc9 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2016 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Overview

Copyright 2012, 2013 Canonical Ltd. Licensed under the AGPLv3, see LICENCE file for details.

Copyright 2015 Canonical Ltd. Licensed under the AGPLv3, see LICENCE file for details.

Index

Constants

This section is empty.

Variables

View Source
var NewMachiner = func(cfg Config) (worker.Worker, error) {
	if err := cfg.Validate(); err != nil {
		return nil, errors.Annotate(err, "validating config")
	}
	handler := &Machiner{config: cfg}
	w, err := watcher.NewNotifyWorker(watcher.NotifyConfig{
		Handler: handler,
	})
	if err != nil {
		return nil, errors.Trace(err)
	}
	return w, nil
}

NewMachiner returns a Worker that will wait for the identified machine to become Dying and make it Dead; or until the machine becomes Dead by other means.

The machineDead function will be called immediately after the machine's lifecycle is updated to Dead.

Functions

func Manifold

func Manifold(config ManifoldConfig) dependency.Manifold

Manifold returns a dependency manifold that runs a machiner worker, using the resource names defined in the supplied config.

Types

type APIMachineAccessor

type APIMachineAccessor struct {
	State *machiner.State
}

func (APIMachineAccessor) Machine

func (a APIMachineAccessor) Machine(tag names.MachineTag) (Machine, error)

type Config

type Config struct {
	// MachineAccessor provides a means of observing and updating the
	// machine's state.
	MachineAccessor MachineAccessor

	// Tag is the machine's tag.
	Tag names.MachineTag

	// ClearMachineAddressesOnStart indicates whether or not to clear
	// the machine's machine addresses when the worker starts.
	ClearMachineAddressesOnStart bool

	// NotifyMachineDead will, if non-nil, be called after the machine
	// is transitioned to the Dead lifecycle state.
	NotifyMachineDead func() error
}

Config defines the configuration for a machiner worker.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate reports whether or not the configuration is valid.

type Machine

type Machine interface {
	Refresh() error
	Life() params.Life
	EnsureDead() error
	SetMachineAddresses(addresses []network.Address) error
	SetStatus(machineStatus status.Status, info string, data map[string]interface{}) error
	Watch() (watcher.NotifyWatcher, error)
	SetObservedNetworkConfig(netConfig []params.NetworkConfig) error
}

type MachineAccessor

type MachineAccessor interface {
	Machine(names.MachineTag) (Machine, error)
}

type Machiner

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

Machiner is responsible for a machine agent's lifecycle.

func (*Machiner) Handle

func (mr *Machiner) Handle(_ <-chan struct{}) error

func (*Machiner) SetUp

func (mr *Machiner) SetUp() (watcher.NotifyWatcher, error)

func (*Machiner) TearDown

func (mr *Machiner) TearDown() error

type ManifoldConfig

type ManifoldConfig engine.AgentAPIManifoldConfig

ManifoldConfig defines the names of the manifolds on which a Manifold will depend.

Jump to

Keyboard shortcuts

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