github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/worker/machiner/state.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  package machiner
     4  
     5  import (
     6  	"github.com/juju/errors"
     7  	"github.com/juju/juju/api/machiner"
     8  	"github.com/juju/juju/api/watcher"
     9  	"github.com/juju/juju/apiserver/params"
    10  	"github.com/juju/juju/network"
    11  	"github.com/juju/names"
    12  )
    13  
    14  type MachineAccessor interface {
    15  	Machine(names.MachineTag) (Machine, error)
    16  }
    17  
    18  type Machine interface {
    19  	Refresh() error
    20  	Life() params.Life
    21  	EnsureDead() error
    22  	SetMachineAddresses(addresses []network.Address) error
    23  	SetStatus(status params.Status, info string, data map[string]interface{}) error
    24  	Watch() (watcher.NotifyWatcher, error)
    25  }
    26  
    27  type APIMachineAccessor struct {
    28  	State *machiner.State
    29  }
    30  
    31  func (a APIMachineAccessor) Machine(tag names.MachineTag) (Machine, error) {
    32  	m, err := a.State.Machine(tag)
    33  	if err != nil {
    34  		return nil, errors.Trace(err)
    35  	}
    36  	return m, nil
    37  }