fs/cache: add ClearConfig method to clear all remotes based on Config #4811
This commit is contained in:
parent
f4750928ee
commit
a10fbf16ea
2 changed files with 23 additions and 0 deletions
7
fs/cache/cache.go
vendored
7
fs/cache/cache.go
vendored
|
@ -124,6 +124,13 @@ func Put(fsString string, f fs.Fs) {
|
||||||
addMapping(fsString, canonicalName)
|
addMapping(fsString, canonicalName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClearConfig deletes all entries which were based on the config name passed in
|
||||||
|
//
|
||||||
|
// Returns number of entries deleted
|
||||||
|
func ClearConfig(name string) (deleted int) {
|
||||||
|
return c.DeletePrefix(name + ":")
|
||||||
|
}
|
||||||
|
|
||||||
// Clear removes everything from the cache
|
// Clear removes everything from the cache
|
||||||
func Clear() {
|
func Clear() {
|
||||||
c.Clear()
|
c.Clear()
|
||||||
|
|
16
fs/cache/cache_test.go
vendored
16
fs/cache/cache_test.go
vendored
|
@ -166,6 +166,22 @@ func TestPin(t *testing.T) {
|
||||||
Unpin(f2)
|
Unpin(f2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestClearConfig(t *testing.T) {
|
||||||
|
cleanup, create := mockNewFs(t)
|
||||||
|
defer cleanup()
|
||||||
|
|
||||||
|
assert.Equal(t, 0, c.Entries())
|
||||||
|
|
||||||
|
_, err := GetFn(context.Background(), "mock:/file.txt", create)
|
||||||
|
require.Equal(t, fs.ErrorIsFile, err)
|
||||||
|
|
||||||
|
assert.Equal(t, 2, Entries()) // file + parent
|
||||||
|
|
||||||
|
assert.Equal(t, 2, ClearConfig("mock"))
|
||||||
|
|
||||||
|
assert.Equal(t, 0, Entries())
|
||||||
|
}
|
||||||
|
|
||||||
func TestClear(t *testing.T) {
|
func TestClear(t *testing.T) {
|
||||||
cleanup, create := mockNewFs(t)
|
cleanup, create := mockNewFs(t)
|
||||||
defer cleanup()
|
defer cleanup()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue