juju: github.com/wallyworld/juju/worker/machiner Index | Files

package machiner

import "github.com/wallyworld/juju/worker/machiner"

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.


Package Files

machiner.go manifold.go state.go


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.

func Manifold Uses

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.

type APIMachineAccessor Uses

type APIMachineAccessor struct {
    State *machiner.State

func (APIMachineAccessor) Machine Uses

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

type Config Uses

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

Config defines the configuration for a machiner worker.

func (*Config) Validate Uses

func (cfg *Config) Validate() error

Validate reports whether or not the configuration is valid.

type Machine Uses

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

type MachineAccessor Uses

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

type Machiner Uses

type Machiner struct {
    // contains filtered or unexported fields

Machiner is responsible for a machine agent's lifecycle.

func (*Machiner) Handle Uses

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

func (*Machiner) SetUp Uses

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

func (*Machiner) TearDown Uses

func (mr *Machiner) TearDown() error

type ManifoldConfig Uses

type ManifoldConfig struct {
    AgentName         string
    APICallerName     string
    FanConfigurerName string

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

Package machiner imports 18 packages (graph). Updated 2020-05-13. Refresh now. Tools for package owners.