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  }