From b07ff6cd34968e6c6ffc92f7c42f40e3f64cf392 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Mon, 8 Jun 2026 20:33:08 +0200 Subject: [PATCH] backends: remove unused SetListMax method It was never used. Remove the dead code. --- internal/backend/azure/azure.go | 27 +++++------- internal/backend/b2/b2.go | 34 ++++++--------- internal/backend/gs/gs.go | 39 +++++++---------- internal/backend/test/tests.go | 75 ++++++++++++--------------------- 4 files changed, 66 insertions(+), 109 deletions(-) diff --git a/internal/backend/azure/azure.go b/internal/backend/azure/azure.go index 576985b5b..612910a51 100644 --- a/internal/backend/azure/azure.go +++ b/internal/backend/azure/azure.go @@ -31,11 +31,10 @@ import ( // Backend stores data on an azure endpoint. type Backend struct { - cfg Config - container *azContainer.Client - connections uint - prefix string - listMaxItems int + cfg Config + container *azContainer.Client + connections uint + prefix string layout.Layout accessTier blob.AccessTier @@ -145,12 +144,11 @@ func open(cfg Config, rt http.RoundTripper) (*Backend, error) { } be := &Backend{ - container: client, - cfg: cfg, - connections: cfg.Connections, - Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), - listMaxItems: defaultListMaxItems, - accessTier: accessTier, + container: client, + cfg: cfg, + connections: cfg.Connections, + Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), + accessTier: accessTier, } return be, nil @@ -195,11 +193,6 @@ func Create(ctx context.Context, cfg Config, rt http.RoundTripper, _ func(string return be, nil } -// SetListMaxItems sets the number of list items to load per request. -func (be *Backend) SetListMaxItems(i int) { - be.listMaxItems = i -} - // IsNotExist returns true if the error is caused by a not existing file. func (be *Backend) IsNotExist(err error) bool { return bloberror.HasCode(err, bloberror.BlobNotFound) @@ -419,7 +412,7 @@ func (be *Backend) List(ctx context.Context, t backend.FileType, fn func(backend prefix += "/" } - maxI := int32(be.listMaxItems) + maxI := int32(defaultListMaxItems) opts := &azContainer.ListBlobsFlatOptions{ MaxResults: &maxI, diff --git a/internal/backend/b2/b2.go b/internal/backend/b2/b2.go index 6e751479d..062c2b7fd 100644 --- a/internal/backend/b2/b2.go +++ b/internal/backend/b2/b2.go @@ -23,10 +23,9 @@ import ( // b2Backend is a backend which stores its data on Backblaze B2. type b2Backend struct { - client *b2.Client - bucket *b2.Bucket - cfg Config - listMaxItems int + client *b2.Client + bucket *b2.Bucket + cfg Config layout.Layout canDelete bool @@ -107,12 +106,11 @@ func Open(ctx context.Context, cfg Config, rt http.RoundTripper, _ func(string, } be := &b2Backend{ - client: client, - bucket: bucket, - cfg: cfg, - Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), - listMaxItems: defaultListMaxItems, - canDelete: true, + client: client, + bucket: bucket, + cfg: cfg, + Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), + canDelete: true, } return be, nil @@ -140,20 +138,14 @@ func Create(ctx context.Context, cfg Config, rt http.RoundTripper, _ func(string } be := &b2Backend{ - client: client, - bucket: bucket, - cfg: cfg, - Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), - listMaxItems: defaultListMaxItems, + client: client, + bucket: bucket, + cfg: cfg, + Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), } return be, nil } -// SetListMaxItems sets the number of list items to load per request. -func (be *b2Backend) SetListMaxItems(i int) { - be.listMaxItems = i -} - func (be *b2Backend) Properties() backend.Properties { return backend.Properties{ Connections: be.cfg.Connections, @@ -304,7 +296,7 @@ func (be *b2Backend) List(ctx context.Context, t backend.FileType, fn func(backe defer cancel() prefix, _ := be.Basedir(t) - iter := be.bucket.List(ctx, b2.ListPrefix(prefix), b2.ListPageSize(be.listMaxItems)) + iter := be.bucket.List(ctx, b2.ListPrefix(prefix), b2.ListPageSize(defaultListMaxItems)) for iter.Next() { obj := iter.Object() diff --git a/internal/backend/gs/gs.go b/internal/backend/gs/gs.go index 5e0d4005e..fa3ec8fbd 100644 --- a/internal/backend/gs/gs.go +++ b/internal/backend/gs/gs.go @@ -35,14 +35,13 @@ import ( // - storage.objects.get // - storage.objects.list type gs struct { - gcsClient *storage.Client - projectID string - connections uint - bucketName string - region string - bucket *storage.BucketHandle - prefix string - listMaxItems int + gcsClient *storage.Client + projectID string + connections uint + bucketName string + region string + bucket *storage.BucketHandle + prefix string layout.Layout } @@ -94,8 +93,6 @@ func (be *gs) bucketExists(ctx context.Context, bucket *storage.BucketHandle) (b return err == nil, err } -const defaultListMaxItems = 1000 - func open(cfg Config, rt http.RoundTripper) (*gs, error) { debug.Log("open, config %#v", cfg) @@ -105,15 +102,14 @@ func open(cfg Config, rt http.RoundTripper) (*gs, error) { } be := &gs{ - gcsClient: gcsClient, - projectID: cfg.ProjectID, - connections: cfg.Connections, - bucketName: cfg.Bucket, - region: cfg.Region, - bucket: gcsClient.Bucket(cfg.Bucket), - prefix: cfg.Prefix, - Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), - listMaxItems: defaultListMaxItems, + gcsClient: gcsClient, + projectID: cfg.ProjectID, + connections: cfg.Connections, + bucketName: cfg.Bucket, + region: cfg.Region, + bucket: gcsClient.Bucket(cfg.Bucket), + prefix: cfg.Prefix, + Layout: layout.NewDefaultLayout(cfg.Prefix, path.Join), } return be, nil @@ -161,11 +157,6 @@ func Create(ctx context.Context, cfg Config, rt http.RoundTripper, _ func(string return be, nil } -// SetListMaxItems sets the number of list items to load per request. -func (be *gs) SetListMaxItems(i int) { - be.listMaxItems = i -} - // IsNotExist returns true if the error is caused by a not existing file. func (be *gs) IsNotExist(err error) bool { return errors.Is(err, storage.ErrObjectNotExist) diff --git a/internal/backend/test/tests.go b/internal/backend/test/tests.go index 5c223412b..00c678942 100644 --- a/internal/backend/test/tests.go +++ b/internal/backend/test/tests.go @@ -251,10 +251,6 @@ func (s *Suite[C]) TestLoad(t *testing.T) { test.OK(t, b.Remove(context.TODO(), handle)) } -type setter interface { - SetListMaxItems(int) -} - // TestList makes sure that the backend implements List() pagination correctly. func (s *Suite[C]) TestList(t *testing.T) { random := seedRand(t) @@ -302,54 +298,39 @@ func (s *Suite[C]) TestList(t *testing.T) { t.Logf("wrote %v files", len(list1)) - var tests = []struct { - maxItems int - }{ - {11}, {23}, {numTestFiles}, {numTestFiles + 10}, {numTestFiles + 1123}, + list2 := make(map[restic.ID]int64) + + err = b.List(context.TODO(), backend.PackFile, func(fi backend.FileInfo) error { + id, err := restic.ParseID(fi.Name) + if err != nil { + t.Fatal(err) + } + list2[id] = fi.Size + return nil + }) + + if err != nil { + t.Fatalf("List returned error %v", err) } - for _, test := range tests { - t.Run(fmt.Sprintf("max-%v", test.maxItems), func(t *testing.T) { - list2 := make(map[restic.ID]int64) + t.Logf("loaded %v IDs from backend", len(list2)) - if s, ok := b.(setter); ok { - t.Logf("setting max list items to %d", test.maxItems) - s.SetListMaxItems(test.maxItems) - } + for id, size := range list1 { + size2, ok := list2[id] + if !ok { + t.Errorf("id %v not returned by List()", id.Str()) + } - err := b.List(context.TODO(), backend.PackFile, func(fi backend.FileInfo) error { - id, err := restic.ParseID(fi.Name) - if err != nil { - t.Fatal(err) - } - list2[id] = fi.Size - return nil - }) + if size != size2 { + t.Errorf("wrong size for id %v returned: want %v, got %v", id.Str(), size, size2) + } + } - if err != nil { - t.Fatalf("List returned error %v", err) - } - - t.Logf("loaded %v IDs from backend", len(list2)) - - for id, size := range list1 { - size2, ok := list2[id] - if !ok { - t.Errorf("id %v not returned by List()", id.Str()) - } - - if size != size2 { - t.Errorf("wrong size for id %v returned: want %v, got %v", id.Str(), size, size2) - } - } - - for id := range list2 { - _, ok := list1[id] - if !ok { - t.Errorf("extra id %v returned by List()", id.Str()) - } - } - }) + for id := range list2 { + _, ok := list1[id] + if !ok { + t.Errorf("extra id %v returned by List()", id.Str()) + } } t.Logf("remove %d files", numTestFiles)