Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(455)

Side by Side Diff: environs/ec2/state.go

Issue 8545045: environs/ec2: retry s3 Put requests
Patch Set: environs/ec2: retry s3 Put requests Created 10 years, 11 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 package ec2 1 package ec2
2 2
3 import ( 3 import (
4 "bytes" 4 "bytes"
5 "fmt" 5 "fmt"
6 "io/ioutil" 6 "io/ioutil"
7 "launchpad.net/goyaml" 7 "launchpad.net/goyaml"
8 "launchpad.net/juju-core/state" 8 "launchpad.net/juju-core/state"
9 ) 9 )
10 10
11 const stateFile = "provider-state" 11 const stateFile = "provider-state"
12 12
13 type bootstrapState struct { 13 type bootstrapState struct {
14 StateInstances []state.InstanceId `yaml:"state-instances"` 14 StateInstances []state.InstanceId `yaml:"state-instances"`
15 } 15 }
16 16
17 func (e *environ) saveState(state *bootstrapState) error { 17 func (e *environ) saveState(state *bootstrapState) error {
18 data, err := goyaml.Marshal(state) 18 data, err := goyaml.Marshal(state)
19 if err != nil { 19 if err != nil {
20 return err 20 return err
21 } 21 }
22 » return e.Storage().Put(stateFile, bytes.NewBuffer(data), int64(len(data) )) 22 » return e.Storage().Put(stateFile, bytes.NewReader(data), int64(len(data) ))
23 } 23 }
24 24
25 func (e *environ) loadState() (*bootstrapState, error) { 25 func (e *environ) loadState() (*bootstrapState, error) {
26 r, err := e.Storage().Get(stateFile) 26 r, err := e.Storage().Get(stateFile)
27 if err != nil { 27 if err != nil {
28 return nil, err 28 return nil, err
29 } 29 }
30 defer r.Close() 30 defer r.Close()
31 data, err := ioutil.ReadAll(r) 31 data, err := ioutil.ReadAll(r)
32 if err != nil { 32 if err != nil {
33 return nil, fmt.Errorf("error reading %q: %v", stateFile, err) 33 return nil, fmt.Errorf("error reading %q: %v", stateFile, err)
34 } 34 }
35 var state bootstrapState 35 var state bootstrapState
36 err = goyaml.Unmarshal(data, &state) 36 err = goyaml.Unmarshal(data, &state)
37 if err != nil { 37 if err != nil {
38 return nil, fmt.Errorf("error unmarshalling %q: %v", stateFile, err) 38 return nil, fmt.Errorf("error unmarshalling %q: %v", stateFile, err)
39 } 39 }
40 return &state, nil 40 return &state, nil
41 } 41 }
OLDNEW
« no previous file with comments | « environs/ec2/local_test.go ('k') | environs/ec2/storage.go » ('j') | environs/ec2/storage.go » ('J')

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b