projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '10956-arvput-pdh-fix'
[arvados.git]
/
sdk
/
go
/
keepclient
/
keepclient.go
diff --git
a/sdk/go/keepclient/keepclient.go
b/sdk/go/keepclient/keepclient.go
index 1df0fa3f6acf8baf8ea30319a4dfc564149501e3..4f84afca61a413796fbb222eb5108473c449cfaf 100644
(file)
--- a/
sdk/go/keepclient/keepclient.go
+++ b/
sdk/go/keepclient/keepclient.go
@@
-4,7
+4,6
@@
package keepclient
import (
"bytes"
"crypto/md5"
import (
"bytes"
"crypto/md5"
- "crypto/tls"
"errors"
"fmt"
"git.curoverse.com/arvados.git/sdk/go/arvadosclient"
"errors"
"fmt"
"git.curoverse.com/arvados.git/sdk/go/arvadosclient"
@@
-73,6
+72,7
@@
type KeepClient struct {
lock sync.RWMutex
Client *http.Client
Retries int
lock sync.RWMutex
Client *http.Client
Retries int
+ BlockCache *BlockCache
// set to 1 if all writable services are of disk type, otherwise 0
replicasPerService int
// set to 1 if all writable services are of disk type, otherwise 0
replicasPerService int
@@
-168,6
+168,10
@@
func (kc *KeepClient) PutR(r io.Reader) (locator string, replicas int, err error
}
func (kc *KeepClient) getOrHead(method string, locator string) (io.ReadCloser, int64, string, error) {
}
func (kc *KeepClient) getOrHead(method string, locator string) (io.ReadCloser, int64, string, error) {
+ if strings.HasPrefix(locator, "d41d8cd98f00b204e9800998ecf8427e+0") {
+ return ioutil.NopCloser(bytes.NewReader(nil)), 0, "", nil
+ }
+
var errs []string
tries_remaining := 1 + kc.Retries
var errs []string
tries_remaining := 1 + kc.Retries
@@
-403,6
+407,14
@@
func (kc *KeepClient) getSortedRoots(locator string) []string {
return found
}
return found
}
+func (kc *KeepClient) cache() *BlockCache {
+ if kc.BlockCache != nil {
+ return kc.BlockCache
+ } else {
+ return DefaultBlockCache
+ }
+}
+
type Locator struct {
Hash string
Size int // -1 if data size is not known
type Locator struct {
Hash string
Size int // -1 if data size is not known