blobserver/localdisk: be sure to implement SubFetcher for blobpacked

My fault for not running the (slow) integration tests before I broke
things in a4d0cc6ab7.

Fixes #1136

Change-Id: Ia30051da02974d0c3e79e0b220ff86dcab5771e4
This commit is contained in:
Brad Fitzpatrick 2018-04-30 16:23:43 -07:00
parent 2f933f83af
commit b1c1d1be68
1 changed files with 13 additions and 3 deletions

View File

@ -48,10 +48,13 @@ import (
"go4.org/syncutil"
)
// TODO: rename DiskStorage to Storage.
// DiskStorage implements the blobserver.Storage interface using the
// local filesystem.
type DiskStorage struct {
blobserver.Storage
blob.SubFetcher
root string
@ -59,6 +62,12 @@ type DiskStorage struct {
gen *local.Generationer
}
// Validate we implement expected interfaces.
var (
_ blobserver.Storage = (*DiskStorage)(nil)
_ blob.SubFetcher = (*DiskStorage)(nil) // for blobpacked; Issue 1136
)
func (ds *DiskStorage) String() string {
return fmt.Sprintf("\"filesystem\" file-per-blob at %s", ds.root)
}
@ -106,9 +115,10 @@ func New(root string) (*DiskStorage, error) {
}
fileSto := files.NewStorage(files.OSFS(), root)
ds := &DiskStorage{
Storage: fileSto,
root: root,
gen: local.NewGenerationer(root),
Storage: fileSto,
SubFetcher: fileSto,
root: root,
gen: local.NewGenerationer(root),
}
if _, _, err := ds.StorageGeneration(); err != nil {
return nil, fmt.Errorf("Error initialization generation for %q: %v", root, err)