Retries int
BlockCache *BlockCache
RequestID string
+ StorageClasses []string
// set to 1 if all writable services are of disk type, otherwise 0
replicasPerService int
return ioutil.NopCloser(bytes.NewReader(nil)), 0, "", nil
}
+ reqid := kc.getRequestID()
+
var expectLength int64
if parts := strings.SplitN(locator, "+", 3); len(parts) < 2 {
expectLength = -1
errs = append(errs, fmt.Sprintf("%s: %v", url, err))
continue
}
- kc.setRequestHeaders(req)
+ req.Header.Add("Authorization", "OAuth2 "+kc.Arvados.ApiToken)
+ req.Header.Add("X-Request-Id", reqid)
resp, err := kc.httpClient().Do(req)
if err != nil {
// Probably a network error, may be transient,
return nil, err
}
- kc.setRequestHeaders(req)
+ req.Header.Add("Authorization", "OAuth2 "+kc.Arvados.ApiToken)
+ req.Header.Set("X-Request-Id", kc.getRequestID())
resp, err := kc.httpClient().Do(req)
if err != nil {
return nil, err
var reqIDGen = httpserver.IDGenerator{Prefix: "req-"}
-func (kc *KeepClient) setRequestHeaders(req *http.Request) {
- req.Header.Add("Authorization", "OAuth2 "+kc.Arvados.ApiToken)
+func (kc *KeepClient) getRequestID() string {
if kc.RequestID != "" {
- req.Header.Set("X-Request-Id", kc.RequestID)
+ return kc.RequestID
} else {
- req.Header.Set("X-Request-Id", reqIDGen.Next())
+ return reqIDGen.Next()
}
}