8
"launchpad.net/juju-core/state"
11
const stateFile = "provider-state"
13
// Persistent environment state. An environment needs to know what instances
15
type bootstrapState struct {
16
StateInstances []state.InstanceId `yaml:"state-instances"`
19
// saveState writes the environment's state to the provider-state file stored
20
// in the environment's storage.
21
func (env *maasEnviron) saveState(state *bootstrapState) error {
22
data, err := goyaml.Marshal(state)
26
buf := bytes.NewBuffer(data)
27
return env.Storage().Put(stateFile, buf, int64(len(data)))
30
// loadState reads the environment's state from storage.
31
func (env *maasEnviron) loadState() (*bootstrapState, error) {
32
r, err := env.Storage().Get(stateFile)
37
data, err := ioutil.ReadAll(r)
39
return nil, fmt.Errorf("error reading %q: %v", stateFile, err)
41
var state bootstrapState
42
err = goyaml.Unmarshal(data, &state)
44
return nil, fmt.Errorf("error unmarshalling %q: %v", stateFile, err)