Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkg/api/accesscontrol.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func (s *Service) actDecryptionHandler() func(h http.Handler) http.Handler {
cache = *headers.Cache
}
ctx := r.Context()
ls := loadsave.NewReadonly(s.storer.Download(cache), redundancy.DefaultLevel)
ls := loadsave.NewReadonly(s.storer.Download(cache), s.storer.Cache(), redundancy.DefaultLevel)
reference, err := s.accesscontrol.DownloadHandler(ctx, ls, paths.Address, headers.Publisher, *headers.HistoryAddress, timestamp)
if err != nil {
logger.Debug("access control download failed", "error", err)
Expand Down Expand Up @@ -206,7 +206,7 @@ func (s *Service) actListGranteesHandler(w http.ResponseWriter, r *http.Request)
cache = *headers.Cache
}
publisher := &s.publicKey
ls := loadsave.NewReadonly(s.storer.Download(cache), redundancy.DefaultLevel)
ls := loadsave.NewReadonly(s.storer.Download(cache), s.storer.Cache(), redundancy.DefaultLevel)
grantees, err := s.accesscontrol.Get(r.Context(), ls, publisher, paths.GranteesAddress)
if err != nil {
logger.Debug("could not get grantees", "error", err)
Expand Down
6 changes: 3 additions & 3 deletions pkg/api/bzz.go
Original file line number Diff line number Diff line change
Expand Up @@ -382,10 +382,10 @@ func (s *Service) serveReference(logger log.Logger, address swarm.Address, pathV
rLevel = *headers.RLevel
}

ls := loadsave.NewReadonly(s.storer.Download(cache), rLevel)
ctx := r.Context()
ls := loadsave.NewReadonly(s.storer.Download(cache), s.storer.Cache(), redundancy.DefaultLevel)
feedDereferenced := false

ctx := r.Context()
ctx, err := getter.SetConfigInContext(ctx, headers.Strategy, headers.FallbackMode, headers.ChunkRetrievalTimeout, logger)
if err != nil {
logger.Error(err, err.Error())
Expand Down Expand Up @@ -435,7 +435,7 @@ FETCH:
}
address = wc.Address()
// modify ls and init with non-existing wrapped chunk
ls = loadsave.NewReadonlyWithRootCh(s.storer.Download(cache), wc, rLevel)
ls = loadsave.NewReadonlyWithRootCh(s.storer.Download(cache), s.storer.Cache(), wc, rLevel)

feedDereferenced = true
curBytes, err := cur.MarshalBinary()
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/dirs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -283,7 +283,7 @@ func TestDirs(t *testing.T) {
// verify manifest content
verifyManifest, err := manifest.NewDefaultManifestReference(
resp.Reference,
loadsave.NewReadonly(storer.ChunkStore(), redundancy.DefaultLevel),
loadsave.NewReadonly(storer.ChunkStore(), storer.Cache(), redundancy.DefaultLevel),
)
if err != nil {
t.Fatal(err)
Expand Down
2 changes: 1 addition & 1 deletion pkg/api/feed_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ func TestFeed_Post(t *testing.T) {
}),
)

ls := loadsave.NewReadonly(mockStorer.ChunkStore(), redundancy.DefaultLevel)
ls := loadsave.NewReadonly(mockStorer.ChunkStore(), mockStorer.Cache(), redundancy.DefaultLevel)
i, err := manifest.NewMantarayManifestReference(expReference, ls)
if err != nil {
t.Fatal(err)
Expand Down
6 changes: 4 additions & 2 deletions pkg/file/loadsave/loadsave.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,20 @@ func New(getter storage.Getter, putter storage.Putter, pipelineFn func() pipelin

// NewReadonly returns a new read-only load-saver
// which will error on write.
func NewReadonly(getter storage.Getter, rLevel redundancy.Level) file.LoadSaver {
func NewReadonly(getter storage.Getter, putter storage.Putter, rLevel redundancy.Level) file.LoadSaver {
return &loadSave{
getter: getter,
putter: putter,
rLevel: rLevel,
}
}

// NewReadonlyWithRootCh returns a new read-only load-saver
// which will error on write.
func NewReadonlyWithRootCh(getter storage.Getter, rootCh swarm.Chunk, rLevel redundancy.Level) file.LoadSaver {
func NewReadonlyWithRootCh(getter storage.Getter, putter storage.Putter, rootCh swarm.Chunk, rLevel redundancy.Level) file.LoadSaver {
return &loadSave{
getter: getter,
putter: putter,
rootCh: rootCh,
rLevel: rLevel,
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/file/loadsave/loadsave_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func TestReadonlyLoadSave(t *testing.T) {

store := inmemchunkstore.New()
factory := pipelineFn(store)
ls := loadsave.NewReadonly(store, redundancy.DefaultLevel)
ls := loadsave.NewReadonly(store, store, redundancy.DefaultLevel)
_, err := ls.Save(context.Background(), data)
if !errors.Is(err, loadsave.ErrReadonlyLoadSave) {
t.Fatal("expected error but got none")
Expand Down
5 changes: 3 additions & 2 deletions pkg/node/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ func bootstrapNode(
ctx, cancel := context.WithTimeout(ctx, timeout)
defer cancel()

snapshotRootCh, err = getLatestSnapshot(ctx, localStore.Download(true), snapshotFeed)
snapshotRootCh, err = getLatestSnapshot(ctx, localStore.Download(true), localStore.Cache(), snapshotFeed)
if err != nil {
logger.Warning("bootstrap: fetching snapshot failed", "error", err)
continue
Expand Down Expand Up @@ -278,9 +278,10 @@ func waitPeers(kad *kademlia.Kad) error {
func getLatestSnapshot(
ctx context.Context,
st storage.Getter,
putter storage.Putter,
address swarm.Address,
) (swarm.Chunk, error) {
ls := loadsave.NewReadonly(st, redundancy.DefaultLevel)
ls := loadsave.NewReadonly(st, putter, redundancy.DefaultLevel)
feedFactory := factory.New(st)

m, err := manifest.NewDefaultManifestReference(
Expand Down
2 changes: 1 addition & 1 deletion pkg/traversal/traversal.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func (s *service) Traverse(ctx context.Context, addr swarm.Address, iterFn swarm
// then the reference is likely a manifest reference. This is because manifest holds metadata
// that points to the actual data file, and this metadata is assumed to be small - Less than or equal to swarm.ChunkSize.
if j.Size() <= swarm.ChunkSize {
ls := loadsave.NewReadonly(s.getter, s.rLevel)
ls := loadsave.NewReadonly(s.getter, s.putter, s.rLevel)
switch mf, err := manifest.NewDefaultManifestReference(addr, ls); {
case errors.Is(err, manifest.ErrInvalidManifestType):
break
Expand Down
Loading