From dd97299b6b3ce82b6a57e2838fbe3f81bb51f140 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Mon, 4 Jun 2018 21:39:18 -0300 Subject: [PATCH] 13431: Make keepproxy propagate X-Keep-Storage-Classes headers Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- services/keepproxy/keepproxy.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go index 1617706492..07fc63b63f 100644 --- a/services/keepproxy/keepproxy.go +++ b/services/keepproxy/keepproxy.go @@ -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 -- 2.39.5