~rogpeppe/juju-core/azure

« back to all changes in this revision

Viewing changes to environs/storage.go

Merge prev pipe.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
        "fmt"
8
8
        "io"
9
9
        "launchpad.net/juju-core/errors"
 
10
        "launchpad.net/juju-core/log"
 
11
        "strings"
10
12
)
11
13
 
12
14
// EmptyStorage holds a StorageReader object that contains no files and
15
17
 
16
18
type emptyStorage struct{}
17
19
 
 
20
const verificationFilename string = "bootstrap-verify"
 
21
const verificationContent = "juju-core storage writing verified: ok\n"
 
22
 
 
23
var VerifyStorageError error = fmt.Errorf(
 
24
        "provider storage is not writable")
 
25
 
18
26
func (s emptyStorage) Get(name string) (io.ReadCloser, error) {
19
27
        return nil, errors.NotFoundf("file %q", name)
20
28
}
26
34
func (s emptyStorage) List(prefix string) ([]string, error) {
27
35
        return nil, nil
28
36
}
 
37
 
 
38
func VerifyStorage(storage Storage) error {
 
39
        reader := strings.NewReader(verificationContent)
 
40
        err := storage.Put(verificationFilename, reader,
 
41
                int64(len(verificationContent)))
 
42
        if err != nil {
 
43
                log.Debugf(
 
44
                        "environs: failed to write bootstrap-verify file: %v",
 
45
                        err)
 
46
                return VerifyStorageError
 
47
        }
 
48
        return nil
 
49
}