github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/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/names"
     8  
     9  	"github.com/juju/juju/api/machiner"
    10  	"github.com/juju/juju/api/watcher"
    11  	"github.com/juju/juju/apiserver/params"
    12  	"github.com/juju/juju/network"
    13  )
    14  
    15  type MachineAccessor interface {
    16  	Machine(names.MachineTag) (Machine, error)
    17  }
    18  
    19  type Machine interface {
    20  	Refresh() error
    21  	Life() params.Life
    22  	EnsureDead() error
    23  	SetMachineAddresses(addresses []network.Address) error
    24  	SetStatus(status params.Status, info string, data map[string]interface{}) error
    25  	Watch() (watcher.NotifyWatcher, error)
    26  }
    27  
    28  type APIMachineAccessor struct {
    29  	State *machiner.State
    30  }
    31  
    32  func (a APIMachineAccessor) Machine(tag names.MachineTag) (Machine, error) {
    33  	m, err := a.State.Machine(tag)
    34  	if err != nil {
    35  		return nil, errors.Trace(err)
    36  	}
    37  	return m, nil
    38  }