func (s *serviceSuite) assertUploaded(c *gc.C, storage statestorage.Storage, storagePath, expectedSHA256 string) { reader, _, err := storage.Get(storagePath) c.Assert(err, jc.ErrorIsNil) defer reader.Close() downloadedSHA256, _, err := utils.ReadSHA256(reader) c.Assert(err, jc.ErrorIsNil) c.Assert(downloadedSHA256, gc.Equals, expectedSHA256) }
// storeCustomImageMetadata reads the custom image metadata from disk, // and stores the files in environment storage with the same relative // paths. func (c *BootstrapCommand) storeCustomImageMetadata(stor storage.Storage) error { logger.Debugf("storing custom image metadata from %q", c.ImageMetadataDir) return filepath.Walk(c.ImageMetadataDir, func(abspath string, info os.FileInfo, err error) error { if err != nil { return err } if !info.Mode().IsRegular() { return nil } relpath, err := filepath.Rel(c.ImageMetadataDir, abspath) if err != nil { return err } f, err := os.Open(abspath) if err != nil { return err } defer f.Close() relpath = filepath.ToSlash(relpath) logger.Debugf("storing %q in model storage (%d bytes)", relpath, info.Size()) return stor.Put(relpath, f, info.Size()) }) }