Use the new walk method for catalog enumeration
This change is primarily to make GC faster. Signed-off-by: Sargun Dhillon <sargun@sargun.me>
This commit is contained in:
parent
35b29a609e
commit
c7b0da2622
3 changed files with 2 additions and 14 deletions
|
@ -88,13 +88,12 @@ func (bs *blobStore) Put(ctx context.Context, mediaType string, p []byte) (distr
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bs *blobStore) Enumerate(ctx context.Context, ingester func(dgst digest.Digest) error) error {
|
func (bs *blobStore) Enumerate(ctx context.Context, ingester func(dgst digest.Digest) error) error {
|
||||||
|
|
||||||
specPath, err := pathFor(blobsPathSpec{})
|
specPath, err := pathFor(blobsPathSpec{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = Walk(ctx, bs.driver, specPath, func(fileInfo driver.FileInfo) error {
|
return bs.driver.Walk(ctx, specPath, func(fileInfo driver.FileInfo) error {
|
||||||
// skip directories
|
// skip directories
|
||||||
if fileInfo.IsDir() {
|
if fileInfo.IsDir() {
|
||||||
return nil
|
return nil
|
||||||
|
@ -114,7 +113,6 @@ func (bs *blobStore) Enumerate(ctx context.Context, ingester func(dgst digest.Di
|
||||||
|
|
||||||
return ingester(digest)
|
return ingester(digest)
|
||||||
})
|
})
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// path returns the canonical path for the blob identified by digest. The blob
|
// path returns the canonical path for the blob identified by digest. The blob
|
||||||
|
|
|
@ -10,10 +10,6 @@ import (
|
||||||
"github.com/docker/distribution/registry/storage/driver"
|
"github.com/docker/distribution/registry/storage/driver"
|
||||||
)
|
)
|
||||||
|
|
||||||
// errFinishedWalk signals an early exit to the walk when the current query
|
|
||||||
// is satisfied.
|
|
||||||
var errFinishedWalk = errors.New("finished walk")
|
|
||||||
|
|
||||||
// Returns a list, or partial list, of repositories in the registry.
|
// Returns a list, or partial list, of repositories in the registry.
|
||||||
// Because it's a quite expensive operation, it should only be used when building up
|
// Because it's a quite expensive operation, it should only be used when building up
|
||||||
// an initial set of repositories.
|
// an initial set of repositories.
|
||||||
|
|
|
@ -237,7 +237,7 @@ func (lbs *linkedBlobStore) Enumerate(ctx context.Context, ingestor func(digest.
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = Walk(ctx, lbs.blobStore.driver, rootPath, func(fileInfo driver.FileInfo) error {
|
return lbs.driver.Walk(ctx, rootPath, func(fileInfo driver.FileInfo) error {
|
||||||
// exit early if directory...
|
// exit early if directory...
|
||||||
if fileInfo.IsDir() {
|
if fileInfo.IsDir() {
|
||||||
return nil
|
return nil
|
||||||
|
@ -273,12 +273,6 @@ func (lbs *linkedBlobStore) Enumerate(ctx context.Context, ingestor func(digest.
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (lbs *linkedBlobStore) mount(ctx context.Context, sourceRepo reference.Named, dgst digest.Digest, sourceStat *distribution.Descriptor) (distribution.Descriptor, error) {
|
func (lbs *linkedBlobStore) mount(ctx context.Context, sourceRepo reference.Named, dgst digest.Digest, sourceStat *distribution.Descriptor) (distribution.Descriptor, error) {
|
||||||
|
|
Loading…
Reference in a new issue