From: Lucas Di Pentima Date: Tue, 5 Jun 2018 18:22:18 +0000 (-0300) Subject: 13431: Adds test confirming that keepproxy propagates X-Keep-Storage-Classes X-Git-Tag: 1.2.0~129^2~2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/24af6ae1b23a4fd82c816d077c0178f0d75db2d7 13431: Adds test confirming that keepproxy propagates X-Keep-Storage-Classes Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/services/keepproxy/keepproxy_test.go b/services/keepproxy/keepproxy_test.go index 65e22e3b3e..9b58c394b5 100644 --- a/services/keepproxy/keepproxy_test.go +++ b/services/keepproxy/keepproxy_test.go @@ -162,6 +162,36 @@ func (s *ServerRequiredSuite) TestLoopDetection(c *C) { c.Check(err, ErrorMatches, `.*loop detected.*`) } +func (s *ServerRequiredSuite) TestStorageClassesHeader(c *C) { + kc := runProxy(c, nil, false) + defer closeListener() + + // Set up fake keepstore to record request headers + var hdr http.Header + ts := httptest.NewServer(http.HandlerFunc( + func(w http.ResponseWriter, r *http.Request) { + hdr = r.Header + http.Error(w, "Error", http.StatusInternalServerError) + })) + defer ts.Close() + + // Point keepproxy router's keepclient to the fake keepstore + sr := map[string]string{ + TestProxyUUID: ts.URL, + } + router.(*proxyHandler).KeepClient.SetServiceRoots(sr, sr, sr) + + // Set up client to ask for storage classes to keepproxy + kc.StorageClasses = []string{"secure"} + content := []byte("Very important data") + _, _, err := kc.PutB(content) + c.Check(err, NotNil) + // errNotFound, _ := err.(*keepclient.ErrNotFound) + // c.Check(errNotFound.Temporary(), Equals, true) + // c.Assert(err, ErrorMatches, ".*connection refused.*") + c.Check(hdr.Get("X-Keep-Storage-Classes"), Equals, "secure") +} + func (s *ServerRequiredSuite) TestDesiredReplicas(c *C) { kc := runProxy(c, nil, false) defer closeListener()