forked from TrueCloudLab/restic
repository: fix parameter order of LookupBlobSize
All methods should use blobType followed by ID.
This commit is contained in:
parent
e848ad651a
commit
1266a4932f
17 changed files with 21 additions and 21 deletions
|
@ -167,7 +167,7 @@ func runCat(ctx context.Context, gopts GlobalOptions, args []string) error {
|
|||
}
|
||||
|
||||
for _, t := range []restic.BlobType{restic.DataBlob, restic.TreeBlob} {
|
||||
if _, ok := repo.LookupBlobSize(id, t); !ok {
|
||||
if _, ok := repo.LookupBlobSize(t, id); !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ func copyTree(ctx context.Context, srcRepo restic.Repository, dstRepo restic.Rep
|
|||
|
||||
// Do we already have this tree blob?
|
||||
treeHandle := restic.BlobHandle{ID: tree.ID, Type: restic.TreeBlob}
|
||||
if _, ok := dstRepo.LookupBlobSize(treeHandle.ID, treeHandle.Type); !ok {
|
||||
if _, ok := dstRepo.LookupBlobSize(treeHandle.Type, treeHandle.ID); !ok {
|
||||
// copy raw tree bytes to avoid problems if the serialization changes
|
||||
enqueue(treeHandle)
|
||||
}
|
||||
|
@ -212,7 +212,7 @@ func copyTree(ctx context.Context, srcRepo restic.Repository, dstRepo restic.Rep
|
|||
// Copy the blobs for this file.
|
||||
for _, blobID := range entry.Content {
|
||||
h := restic.BlobHandle{Type: restic.DataBlob, ID: blobID}
|
||||
if _, ok := dstRepo.LookupBlobSize(h.ID, h.Type); !ok {
|
||||
if _, ok := dstRepo.LookupBlobSize(h.Type, h.ID); !ok {
|
||||
enqueue(h)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,7 +156,7 @@ func updateBlobs(repo restic.Loader, blobs restic.BlobSet, stats *DiffStat) {
|
|||
stats.TreeBlobs++
|
||||
}
|
||||
|
||||
size, found := repo.LookupBlobSize(h.ID, h.Type)
|
||||
size, found := repo.LookupBlobSize(h.Type, h.ID)
|
||||
if !found {
|
||||
Warnf("unable to find blob size for %v\n", h)
|
||||
continue
|
||||
|
|
|
@ -97,7 +97,7 @@ func runRepairSnapshots(ctx context.Context, gopts GlobalOptions, opts RepairOpt
|
|||
var newSize uint64
|
||||
// check all contents and remove if not available
|
||||
for _, id := range node.Content {
|
||||
if size, found := repo.LookupBlobSize(id, restic.DataBlob); !found {
|
||||
if size, found := repo.LookupBlobSize(restic.DataBlob, id); !found {
|
||||
ok = false
|
||||
} else {
|
||||
newContent = append(newContent, id)
|
||||
|
|
|
@ -238,7 +238,7 @@ func statsWalkTree(repo restic.Loader, opts StatsOptions, stats *statsContainer,
|
|||
}
|
||||
if _, ok := stats.fileBlobs[nodePath][blobID]; !ok {
|
||||
// is always a data blob since we're accessing it via a file's Content array
|
||||
blobSize, found := repo.LookupBlobSize(blobID, restic.DataBlob)
|
||||
blobSize, found := repo.LookupBlobSize(restic.DataBlob, blobID)
|
||||
if !found {
|
||||
return fmt.Errorf("blob %s not found for tree %s", blobID, parentTreeID)
|
||||
}
|
||||
|
|
|
@ -276,7 +276,7 @@ func (arch *Archiver) loadSubtree(ctx context.Context, node *restic.Node) (*rest
|
|||
}
|
||||
|
||||
func (arch *Archiver) wrapLoadTreeError(id restic.ID, err error) error {
|
||||
if _, ok := arch.Repo.LookupBlobSize(id, restic.TreeBlob); ok {
|
||||
if _, ok := arch.Repo.LookupBlobSize(restic.TreeBlob, id); ok {
|
||||
err = errors.Errorf("tree %v could not be loaded; the repository could be damaged: %v", id, err)
|
||||
} else {
|
||||
err = errors.Errorf("tree %v is not known; the repository could be damaged, run `repair index` to try to repair it", id)
|
||||
|
@ -390,7 +390,7 @@ func (fn *FutureNode) take(ctx context.Context) futureNodeResult {
|
|||
func (arch *Archiver) allBlobsPresent(previous *restic.Node) bool {
|
||||
// check if all blobs are contained in index
|
||||
for _, id := range previous.Content {
|
||||
if _, ok := arch.Repo.LookupBlobSize(id, restic.DataBlob); !ok {
|
||||
if _, ok := arch.Repo.LookupBlobSize(restic.DataBlob, id); !ok {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -429,7 +429,7 @@ func (c *Checker) checkTree(id restic.ID, tree *restic.Tree) (errs []error) {
|
|||
// unfortunately fails in some cases that are not resolvable
|
||||
// by users, so we omit this check, see #1887
|
||||
|
||||
_, found := c.repo.LookupBlobSize(blobID, restic.DataBlob)
|
||||
_, found := c.repo.LookupBlobSize(restic.DataBlob, blobID)
|
||||
if !found {
|
||||
debug.Log("tree %v references blob %v which isn't contained in index", id, blobID)
|
||||
errs = append(errs, &Error{TreeID: id, Err: errors.Errorf("file %q blob %v not found in index", node.Name, blobID)})
|
||||
|
|
|
@ -461,11 +461,11 @@ func (r *delayRepository) LoadTree(ctx context.Context, id restic.ID) (*restic.T
|
|||
return restic.LoadTree(ctx, r.Repository, id)
|
||||
}
|
||||
|
||||
func (r *delayRepository) LookupBlobSize(id restic.ID, t restic.BlobType) (uint, bool) {
|
||||
func (r *delayRepository) LookupBlobSize(t restic.BlobType, id restic.ID) (uint, bool) {
|
||||
if id == r.DelayTree && t == restic.DataBlob {
|
||||
r.Unblock()
|
||||
}
|
||||
return r.Repository.LookupBlobSize(id, t)
|
||||
return r.Repository.LookupBlobSize(t, id)
|
||||
}
|
||||
|
||||
func (r *delayRepository) Unblock() {
|
||||
|
|
|
@ -72,7 +72,7 @@ func (f *file) Open(_ context.Context, _ *fuse.OpenRequest, _ *fuse.OpenResponse
|
|||
var bytes uint64
|
||||
cumsize := make([]uint64, 1+len(f.node.Content))
|
||||
for i, id := range f.node.Content {
|
||||
size, found := f.root.repo.LookupBlobSize(id, restic.DataBlob)
|
||||
size, found := f.root.repo.LookupBlobSize(restic.DataBlob, id)
|
||||
if !found {
|
||||
return nil, errors.Errorf("id %v not found in repository", id)
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ func TestFuseFile(t *testing.T) {
|
|||
memfile []byte
|
||||
)
|
||||
for _, id := range content {
|
||||
size, found := repo.LookupBlobSize(id, restic.DataBlob)
|
||||
size, found := repo.LookupBlobSize(restic.DataBlob, id)
|
||||
rtest.Assert(t, found, "Expected to find blob id %v", id)
|
||||
filesize += uint64(size)
|
||||
|
||||
|
|
|
@ -266,7 +266,7 @@ func testRepack(t *testing.T, version uint) {
|
|||
}
|
||||
|
||||
for h := range removeBlobs {
|
||||
if _, found := repo.LookupBlobSize(h.ID, h.Type); found {
|
||||
if _, found := repo.LookupBlobSize(h.Type, h.ID); found {
|
||||
t.Errorf("blob %v still contained in the repo", h)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -583,8 +583,8 @@ func (r *Repository) LookupBlob(bh restic.BlobHandle) []restic.PackedBlob {
|
|||
}
|
||||
|
||||
// LookupBlobSize returns the size of blob id.
|
||||
func (r *Repository) LookupBlobSize(id restic.ID, tpe restic.BlobType) (uint, bool) {
|
||||
return r.idx.LookupSize(restic.BlobHandle{ID: id, Type: tpe})
|
||||
func (r *Repository) LookupBlobSize(tpe restic.BlobType, id restic.ID) (uint, bool) {
|
||||
return r.idx.LookupSize(restic.BlobHandle{Type: tpe, ID: id})
|
||||
}
|
||||
|
||||
func (r *Repository) SaveIndex(ctx context.Context, excludePacks restic.IDSet, extraObsolete restic.IDs, opts restic.MasterIndexSaveOpts) error {
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
// Loader loads a blob from a repository.
|
||||
type Loader interface {
|
||||
LoadBlob(context.Context, BlobType, ID, []byte) ([]byte, error)
|
||||
LookupBlobSize(id ID, tpe BlobType) (uint, bool)
|
||||
LookupBlobSize(tpe BlobType, id ID) (uint, bool)
|
||||
Connections() uint
|
||||
}
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ func (r ForbiddenRepo) LoadBlob(context.Context, restic.BlobType, restic.ID, []b
|
|||
return nil, errors.New("should not be called")
|
||||
}
|
||||
|
||||
func (r ForbiddenRepo) LookupBlobSize(_ restic.ID, _ restic.BlobType) (uint, bool) {
|
||||
func (r ForbiddenRepo) LookupBlobSize(_ restic.BlobType, _ restic.ID) (uint, bool) {
|
||||
return 0, false
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ type Repository interface {
|
|||
SaveIndex(ctx context.Context, excludePacks IDSet, extraObsolete IDs, opts MasterIndexSaveOpts) error
|
||||
|
||||
LookupBlob(bh BlobHandle) []PackedBlob
|
||||
LookupBlobSize(id ID, t BlobType) (size uint, exists bool)
|
||||
LookupBlobSize(t BlobType, id ID) (size uint, exists bool)
|
||||
|
||||
// ListBlobs runs fn on all blobs known to the index. When the context is cancelled,
|
||||
// the index iteration returns immediately with ctx.Err(). This blocks any modification of the index.
|
||||
|
|
|
@ -77,7 +77,7 @@ func filterTrees(ctx context.Context, repo Loader, trees IDs, loaderChan chan<-
|
|||
continue
|
||||
}
|
||||
|
||||
treeSize, found := repo.LookupBlobSize(nextTreeID.ID, TreeBlob)
|
||||
treeSize, found := repo.LookupBlobSize(TreeBlob, nextTreeID.ID)
|
||||
if found && treeSize > 50*1024*1024 {
|
||||
loadCh = hugeTreeLoaderChan
|
||||
} else {
|
||||
|
|
|
@ -435,7 +435,7 @@ func (res *Restorer) verifyFile(target string, node *restic.Node, buf []byte) ([
|
|||
|
||||
var offset int64
|
||||
for _, blobID := range node.Content {
|
||||
length, found := res.repo.LookupBlobSize(blobID, restic.DataBlob)
|
||||
length, found := res.repo.LookupBlobSize(restic.DataBlob, blobID)
|
||||
if !found {
|
||||
return buf, errors.Errorf("Unable to fetch blob %s", blobID)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue