X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a8d73de4f59cf567a96f2f04be01a249d4f7c20b..59a972c831bc8f7cd4e896ed8e1c71277b97f04e:/sdk/go/keepclient/keepclient_test.go diff --git a/sdk/go/keepclient/keepclient_test.go b/sdk/go/keepclient/keepclient_test.go index 3b8de262be..e25faed33c 100644 --- a/sdk/go/keepclient/keepclient_test.go +++ b/sdk/go/keepclient/keepclient_test.go @@ -19,8 +19,8 @@ import ( "testing" "time" - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" - "git.curoverse.com/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/arvadosclient" + "git.arvados.org/arvados.git/sdk/go/arvadostest" . "gopkg.in/check.v1" ) @@ -93,16 +93,18 @@ func (s *ServerRequiredSuite) TestDefaultReplications(c *C) { } type StubPutHandler struct { - c *C - expectPath string - expectApiToken string - expectBody string - handled chan string + c *C + expectPath string + expectApiToken string + expectBody string + expectStorageClass string + handled chan string } func (sph StubPutHandler) ServeHTTP(resp http.ResponseWriter, req *http.Request) { sph.c.Check(req.URL.Path, Equals, "/"+sph.expectPath) sph.c.Check(req.Header.Get("Authorization"), Equals, fmt.Sprintf("OAuth2 %s", sph.expectApiToken)) + sph.c.Check(req.Header.Get("X-Keep-Storage-Classes"), Equals, sph.expectStorageClass) body, err := ioutil.ReadAll(req.Body) sph.c.Check(err, Equals, nil) sph.c.Check(body, DeepEquals, []byte(sph.expectBody)) @@ -148,11 +150,12 @@ func (s *StandaloneSuite) TestUploadToStubKeepServer(c *C) { "acbd18db4cc2f85cedef654fccc4a4d8", "abc123", "foo", + "hot", make(chan string)} UploadToStubHelper(c, st, func(kc *KeepClient, url string, reader io.ReadCloser, writer io.WriteCloser, upload_status chan uploadStatus) { - + kc.StorageClasses = []string{"hot"} go kc.uploadToKeepServer(url, st.expectPath, reader, upload_status, int64(len("foo")), kc.getRequestID()) writer.Write([]byte("foo")) @@ -170,6 +173,7 @@ func (s *StandaloneSuite) TestUploadToStubKeepServerBufferReader(c *C) { "acbd18db4cc2f85cedef654fccc4a4d8", "abc123", "foo", + "", make(chan string)} UploadToStubHelper(c, st, @@ -265,6 +269,7 @@ func (s *StandaloneSuite) TestPutB(c *C) { hash, "abc123", "foo", + "", make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() @@ -306,6 +311,7 @@ func (s *StandaloneSuite) TestPutHR(c *C) { hash, "abc123", "foo", + "", make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() @@ -354,6 +360,7 @@ func (s *StandaloneSuite) TestPutWithFail(c *C) { hash, "abc123", "foo", + "", make(chan string, 4)} fh := FailHandler{ @@ -412,6 +419,7 @@ func (s *StandaloneSuite) TestPutWithTooManyFail(c *C) { hash, "abc123", "foo", + "", make(chan string, 1)} fh := FailHandler{ @@ -687,13 +695,13 @@ func (s *StandaloneSuite) TestGetWithLocalServiceHint(c *C) { "zzzzz-bi6l4-yyyyyyyyyyyyyyy": ks0.url, "zzzzz-bi6l4-xxxxxxxxxxxxxxx": ks0.url, "zzzzz-bi6l4-wwwwwwwwwwwwwww": ks0.url, - uuid: ks.url}, + uuid: ks.url}, nil, map[string]string{ "zzzzz-bi6l4-yyyyyyyyyyyyyyy": ks0.url, "zzzzz-bi6l4-xxxxxxxxxxxxxxx": ks0.url, "zzzzz-bi6l4-wwwwwwwwwwwwwww": ks0.url, - uuid: ks.url}, + uuid: ks.url}, ) r, n, uri, err := kc.Get(hash + "+K@" + uuid) @@ -876,6 +884,19 @@ func (s *ServerRequiredSuite) TestPutGetHead(c *C) { c.Check(n, Equals, int64(len(content))) c.Check(url2, Matches, fmt.Sprintf("http://localhost:\\d+/%s", hash)) } + { + loc, err := kc.LocalLocator(hash) + c.Check(err, Equals, nil) + c.Assert(len(loc) >= 32, Equals, true) + c.Check(loc[:32], Equals, hash[:32]) + } + { + content := []byte("the perth county conspiracy") + loc, err := kc.LocalLocator(fmt.Sprintf("%x+%d+Rzaaaa-abcde@12345", md5.Sum(content), len(content))) + c.Check(loc, Equals, "") + c.Check(err, ErrorMatches, `.*HEAD .*\+R.*`) + c.Check(err, ErrorMatches, `.*HTTP 400.*`) + } } type StubProxyHandler struct { @@ -989,6 +1010,7 @@ func (s *StandaloneSuite) TestPutBWant2ReplicasWithOnlyOneWritableLocalRoot(c *C hash, "abc123", "foo", + "", make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() @@ -1027,6 +1049,7 @@ func (s *StandaloneSuite) TestPutBWithNoWritableLocalRoots(c *C) { hash, "abc123", "foo", + "", make(chan string, 5)} arv, _ := arvadosclient.MakeArvadosClient() @@ -1198,6 +1221,7 @@ func (s *StandaloneSuite) TestPutBRetry(c *C) { Md5String("foo"), "abc123", "foo", + "", make(chan string, 5)}} arv, _ := arvadosclient.MakeArvadosClient()