restic: Don't list snapshots if FindSnapshot gets full id

This commit is contained in:
Michael Eischer 2022-10-03 14:51:00 +02:00
parent d8c00b9726
commit 246d3032ae
1 changed files with 11 additions and 7 deletions

View File

@ -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)
}