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 }