From 246d3032ae94ccbc3612a3128aa584e392a39c18 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Mon, 3 Oct 2022 14:51:00 +0200 Subject: [PATCH] restic: Don't list snapshots if FindSnapshot gets full id --- internal/restic/snapshot_find.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/restic/snapshot_find.go b/internal/restic/snapshot_find.go index d0d294a40..eadb01f4b 100644 --- a/internal/restic/snapshot_find.go +++ b/internal/restic/snapshot_find.go @@ -73,15 +73,19 @@ func findLatestSnapshot(ctx context.Context, be Lister, loader LoaderUnpacked, h // FindSnapshot takes a string and tries to find a snapshot whose ID matches // the string as closely as possible. func FindSnapshot(ctx context.Context, be Lister, loader LoaderUnpacked, s string) (*Snapshot, error) { - // find snapshot id with prefix - name, err := Find(ctx, be, SnapshotFile, s) + // no need to list snapshots if `s` is already a full id + id, err := ParseID(s) if err != nil { - return nil, err - } + // find snapshot id with prefix + name, err := Find(ctx, be, SnapshotFile, s) + if err != nil { + return nil, err + } - id, err := ParseID(name) - if err != nil { - return nil, err + id, err = ParseID(name) + if err != nil { + return nil, err + } } return LoadSnapshot(ctx, loader, id) }