diff --git a/internal/backend/azure/azure_test.go b/internal/backend/azure/azure_test.go index 326e20183..fe3b3e83c 100644 --- a/internal/backend/azure/azure_test.go +++ b/internal/backend/azure/azure_test.go @@ -76,11 +76,7 @@ func newAzureTestSuite(t testing.TB) *test.Suite { return err } - if err := be.(restic.Deleter).Delete(context.TODO()); err != nil { - return err - } - - return nil + return be.Delete(context.TODO()) }, } } diff --git a/internal/backend/b2/b2_test.go b/internal/backend/b2/b2_test.go index 675a5c864..5784bd9a2 100644 --- a/internal/backend/b2/b2_test.go +++ b/internal/backend/b2/b2_test.go @@ -62,11 +62,7 @@ func newB2TestSuite(t testing.TB) *test.Suite { return err } - if err := be.(restic.Deleter).Delete(context.TODO()); err != nil { - return err - } - - return nil + return be.Delete(context.TODO()) }, } } diff --git a/internal/backend/gs/gs_test.go b/internal/backend/gs/gs_test.go index 739aaacf3..1c55697f3 100644 --- a/internal/backend/gs/gs_test.go +++ b/internal/backend/gs/gs_test.go @@ -69,11 +69,7 @@ func newGSTestSuite(t testing.TB) *test.Suite { return err } - if err := be.(restic.Deleter).Delete(context.TODO()); err != nil { - return err - } - - return nil + return be.Delete(context.TODO()) }, } } diff --git a/internal/backend/rest/rest.go b/internal/backend/rest/rest.go index cd283a8c9..51c8e0c5c 100644 --- a/internal/backend/rest/rest.go +++ b/internal/backend/rest/rest.go @@ -378,5 +378,9 @@ func (b *restBackend) Delete(ctx context.Context) error { } } - return b.Remove(ctx, restic.Handle{Type: restic.ConfigFile}) + err := b.Remove(ctx, restic.Handle{Type: restic.ConfigFile}) + if err != nil && b.IsNotExist(err) { + return nil + } + return err } diff --git a/internal/backend/s3/s3_test.go b/internal/backend/s3/s3_test.go index b9cbc4ef3..fe5e92299 100644 --- a/internal/backend/s3/s3_test.go +++ b/internal/backend/s3/s3_test.go @@ -280,11 +280,7 @@ func newS3TestSuite(t testing.TB) *test.Suite { return err } - if err := be.(restic.Deleter).Delete(context.TODO()); err != nil { - return err - } - - return nil + return be.Delete(context.TODO()) }, } } diff --git a/internal/backend/swift/swift_test.go b/internal/backend/swift/swift_test.go index f4cf28aaf..30a61ea7b 100644 --- a/internal/backend/swift/swift_test.go +++ b/internal/backend/swift/swift_test.go @@ -93,11 +93,7 @@ func newSwiftTestSuite(t testing.TB) *test.Suite { return err } - if err := be.(restic.Deleter).Delete(context.TODO()); err != nil { - return err - } - - return nil + return be.Delete(context.TODO()) }, } } diff --git a/internal/repository/repository.go b/internal/repository/repository.go index e2d870780..161eb8734 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -591,11 +591,7 @@ func (r *Repository) ListPack(ctx context.Context, id restic.ID) ([]restic.Blob, // Delete calls backend.Delete() if implemented, and returns an error // otherwise. func (r *Repository) Delete(ctx context.Context) error { - if b, ok := r.be.(restic.Deleter); ok { - return b.Delete(ctx) - } - - return errors.New("Delete() called for backend that does not implement this method") + return r.be.Delete(ctx) } // Close closes the repository by closing the backend. diff --git a/internal/restic/repository.go b/internal/restic/repository.go index 9be667fa7..6c8cad863 100644 --- a/internal/restic/repository.go +++ b/internal/restic/repository.go @@ -44,11 +44,6 @@ type Repository interface { SaveTree(context.Context, *Tree) (ID, error) } -// Deleter removes all data stored in a backend/repo. -type Deleter interface { - Delete(context.Context) error -} - // Lister allows listing files in a backend. type Lister interface { List(context.Context, FileType) <-chan string