X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/bce4ee3aabf1dabc41ea5b231f0407cad3347f11..c8b76b1d730d68fe9cb89ec4a619ce2f5a515531:/services/keepproxy/keepproxy.go diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go index 1617706492..b6c8bd66aa 100644 --- a/services/keepproxy/keepproxy.go +++ b/services/keepproxy/keepproxy.go @@ -182,7 +182,7 @@ func main() { // Start serving requests. router = MakeRESTRouter(!cfg.DisableGet, !cfg.DisablePut, kc, time.Duration(cfg.Timeout), cfg.ManagementToken) - http.Serve(listener, httpserver.AddRequestIDs(httpserver.LogRequests(router))) + http.Serve(listener, httpserver.AddRequestIDs(httpserver.LogRequests(nil, router))) log.Println("shutting down") } @@ -487,6 +487,15 @@ func (h *proxyHandler) Put(resp http.ResponseWriter, req *http.Request) { locatorIn := mux.Vars(req)["locator"] + // Check if the client specified storage classes + if req.Header.Get("X-Keep-Storage-Classes") != "" { + var scl []string + for _, sc := range strings.Split(req.Header.Get("X-Keep-Storage-Classes"), ",") { + scl = append(scl, strings.Trim(sc, " ")) + } + kc.StorageClasses = scl + } + _, err = fmt.Sscanf(req.Header.Get("Content-Length"), "%d", &expectLength) if err != nil || expectLength < 0 { err = LengthRequiredError