20318: Route (*KeepClient)Get() through disk cache layer.
[arvados.git] / services / keepstore / pull_worker.go
index 670fa1a4140fc14229279d1ff920d76959679afd..348bfb4df00087a1726ef36cbd186fe0eb5ea4c7 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-package main
+package keepstore
 
 import (
        "context"
@@ -50,7 +50,7 @@ func (h *handler) pullItemAndProcess(pullRequest PullRequest) error {
        // Make a private copy of keepClient so we can set
        // ServiceRoots to the source servers specified in the pull
        // request.
-       keepClient := *h.keepClient
+       keepClient := h.keepClient.Clone()
        serviceRoots := make(map[string]string)
        for _, addr := range pullRequest.Servers {
                serviceRoots[addr] = addr
@@ -59,7 +59,7 @@ func (h *handler) pullItemAndProcess(pullRequest PullRequest) error {
 
        signedLocator := SignLocator(h.Cluster, pullRequest.Locator, keepClient.Arvados.ApiToken, time.Now().Add(time.Minute))
 
-       reader, contentLen, _, err := GetContent(signedLocator, &keepClient)
+       reader, _, _, err := GetContent(signedLocator, keepClient)
        if err != nil {
                return err
        }
@@ -73,7 +73,7 @@ func (h *handler) pullItemAndProcess(pullRequest PullRequest) error {
                return err
        }
 
-       if (readContent == nil) || (int64(len(readContent)) != contentLen) {
+       if readContent == nil {
                return fmt.Errorf("Content not found for: %s", signedLocator)
        }
 
@@ -89,6 +89,6 @@ var writePulledBlock = func(volmgr *RRVolumeManager, volume Volume, data []byte,
        if volume != nil {
                return volume.Put(context.Background(), locator, data)
        }
-       _, err := PutBlock(context.Background(), volmgr, data, locator)
+       _, err := PutBlock(context.Background(), volmgr, data, locator, nil)
        return err
 }