func removeAll(stor storage.Storage) error { names, err := storage.List(stor, "") if err != nil { return err } // Remove all the objects in parallel so that we incur fewer round-trips. // If we're in danger of having hundreds of objects, // we'll want to change this to limit the number // of concurrent operations. var wg sync.WaitGroup wg.Add(len(names)) errc := make(chan error, len(names)) for _, name := range names { name := name go func() { defer wg.Done() if err := stor.Remove(name); err != nil { errc <- err } }() } wg.Wait() select { case err := <-errc: return fmt.Errorf("cannot delete all provider state: %v", err) default: } return nil }
// RemoveFakeToolsMetadata deletes the fake simplestreams tools metadata from the supplied storage. func RemoveFakeToolsMetadata(c *gc.C, stor storage.Storage) { files, err := stor.List("tools/streams") c.Assert(err, jc.ErrorIsNil) for _, file := range files { err = stor.Remove(file) c.Check(err, jc.ErrorIsNil) } }
// RemoveFakeToolsMetadata deletes the fake simplestreams tools metadata from the supplied storage. func RemoveFakeToolsMetadata(c *gc.C, stor storage.Storage) { files := []string{simplestreams.UnsignedIndex, envtools.ProductMetadataPath} for _, file := range files { toolspath := path.Join("tools", file) err := stor.Remove(toolspath) c.Check(err, gc.IsNil) } }
// RemoveTools deletes all tools from the supplied storage. func RemoveTools(c *gc.C, stor storage.Storage, toolsDir string) { names, err := storage.List(stor, fmt.Sprintf("tools/%s/juju-", toolsDir)) c.Assert(err, jc.ErrorIsNil) c.Logf("removing files: %v", names) for _, name := range names { err = stor.Remove(name) c.Check(err, jc.ErrorIsNil) } RemoveFakeToolsMetadata(c, stor) }
// RemoveTools deletes all tools from the supplied storage. func RemoveTools(c *gc.C, stor storage.Storage) { names, err := storage.List(stor, "tools/releases/juju-") c.Assert(err, gc.IsNil) c.Logf("removing files: %v", names) for _, name := range names { err = stor.Remove(name) c.Check(err, gc.IsNil) } RemoveFakeToolsMetadata(c, stor) }
// RemoveFakeTools deletes the fake tools from the supplied storage. func RemoveFakeTools(c *gc.C, stor storage.Storage, toolsDir string) { c.Logf("removing fake tools") toolsVersion := version.Current name := envtools.StorageName(toolsVersion, toolsDir) err := stor.Remove(name) c.Check(err, jc.ErrorIsNil) defaultSeries := coretesting.FakeDefaultSeries if series.HostSeries() != defaultSeries { toolsVersion.Series = defaultSeries name := envtools.StorageName(toolsVersion, toolsDir) err := stor.Remove(name) c.Check(err, jc.ErrorIsNil) } RemoveFakeToolsMetadata(c, stor) }
// RemoveFakeTools deletes the fake tools from the supplied storage. func RemoveFakeTools(c *gc.C, stor storage.Storage) { c.Logf("removing fake tools") toolsVersion := version.Current name := envtools.StorageName(toolsVersion) err := stor.Remove(name) c.Check(err, gc.IsNil) defaultSeries := coretesting.FakeDefaultSeries if version.Current.Series != defaultSeries { toolsVersion.Series = defaultSeries name := envtools.StorageName(toolsVersion) err := stor.Remove(name) c.Check(err, gc.IsNil) } RemoveFakeToolsMetadata(c, stor) }
// RemoveFakeTools deletes the fake tools from the supplied storage. func RemoveFakeTools(c *gc.C, stor storage.Storage, toolsDir string) { c.Logf("removing fake tools") toolsVersion := version.Binary{ Number: jujuversion.Current, Arch: arch.HostArch(), Series: series.HostSeries(), } name := envtools.StorageName(toolsVersion, toolsDir) err := stor.Remove(name) c.Check(err, jc.ErrorIsNil) defaultSeries := series.LatestLts() if series.HostSeries() != defaultSeries { toolsVersion.Series = defaultSeries name := envtools.StorageName(toolsVersion, toolsDir) err := stor.Remove(name) c.Check(err, jc.ErrorIsNil) } RemoveFakeToolsMetadata(c, stor) }
func RemoveTestImageData(stor envstorage.Storage) { stor.Remove(simplestreams.UnsignedIndex("v1", 1)) stor.Remove(productMetadatafile) }
func RemoveTestImageData(stor storage.Storage) { stor.Remove(simplestreams.DefaultIndexPath + ".json") stor.Remove(productMetadatafile) }
// DeleteStateFile deletes the state file on the given storage. func DeleteStateFile(stor storage.Storage) error { return stor.Remove(StateFile) }