// WritablePublicStorage returns a Storage instance which is authorised to write to the PublicStorage bucket. // It is used by tests which need to upload files. func WritablePublicStorage(e environs.Environ) environs.Storage { // In the case of ec2, access to the public storage instance is created with the user's AWS credentials. // So write access is there implicitly, and we just need to cast to a writable storage instance. // This contrasts with the openstack case, where the public storage instance truly is read only and we need // to create a separate writable instance. If the ec2 case ever changes, the changes are confined to this method. return e.PublicStorage().(environs.Storage) }
// putNames puts a set of names into the environ's private // and public storage. The data in the private storage is // the name itself; in the public storage the name is preceded with "public-". func putNames(c *C, env environs.Environ, private, public []string) { for _, name := range private { err := env.Storage().Put(name, strings.NewReader(name), int64(len(name))) c.Assert(err, IsNil) } // The contents of all files in the public storage is prefixed with "public-" so // that we can easily tell if we've got the right thing. for _, name := range public { data := "public-" + name err := env.PublicStorage().(environs.Storage).Put(name, strings.NewReader(data), int64(len(data))) c.Assert(err, IsNil) } }
// RemoveAllTools deletes all tools from the supplied environment. func RemoveAllTools(c *C, env environs.Environ) { c.Logf("clearing private storage") RemoveTools(c, env.Storage()) c.Logf("clearing public storage") RemoveTools(c, env.PublicStorage().(environs.Storage)) }