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 }