github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/apiserver/instancepoller/state.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package instancepoller 5 6 import ( 7 "github.com/juju/juju/instance" 8 "github.com/juju/juju/network" 9 "github.com/juju/juju/state" 10 ) 11 12 type StateMachine interface { 13 state.Entity 14 15 Id() string 16 InstanceId() (instance.Id, error) 17 ProviderAddresses() []network.Address 18 SetProviderAddresses(...network.Address) error 19 InstanceStatus() (string, error) 20 SetInstanceStatus(status string) error 21 String() string 22 Refresh() error 23 Life() state.Life 24 Status() (state.StatusInfo, error) 25 IsManual() (bool, error) 26 } 27 28 type StateInterface interface { 29 state.EnvironAccessor 30 state.EnvironMachinesWatcher 31 state.EntityFinder 32 33 Machine(id string) (StateMachine, error) 34 } 35 36 type stateShim struct { 37 *state.State 38 } 39 40 func (s stateShim) Machine(id string) (StateMachine, error) { 41 return s.State.Machine(id) 42 } 43 44 var getState = func(st *state.State) StateInterface { 45 return stateShim{st} 46 }