X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/282536bbd088d06455053e4599051ad6352728b9..8a27fe370239ecb8e50d53f46b45ed61203a35ca:/services/keepstore/proxy_remote_test.go diff --git a/services/keepstore/proxy_remote_test.go b/services/keepstore/proxy_remote_test.go index 6e720b8499..534371cc0e 100644 --- a/services/keepstore/proxy_remote_test.go +++ b/services/keepstore/proxy_remote_test.go @@ -2,9 +2,10 @@ // // SPDX-License-Identifier: AGPL-3.0 -package main +package keepstore import ( + "context" "crypto/md5" "encoding/json" "fmt" @@ -16,10 +17,11 @@ import ( "sync/atomic" "time" - "git.curoverse.com/arvados.git/sdk/go/arvados" - "git.curoverse.com/arvados.git/sdk/go/arvadostest" - "git.curoverse.com/arvados.git/sdk/go/auth" - "git.curoverse.com/arvados.git/sdk/go/keepclient" + "git.arvados.org/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/auth" + "git.arvados.org/arvados.git/sdk/go/keepclient" + "github.com/prometheus/client_golang/prometheus" check "gopkg.in/check.v1" ) @@ -27,8 +29,7 @@ var _ = check.Suite(&ProxyRemoteSuite{}) type ProxyRemoteSuite struct { cluster *arvados.Cluster - vm VolumeManager - rtr http.Handler + handler *handler remoteClusterID string remoteBlobSigningKey []byte @@ -86,29 +87,23 @@ func (s *ProxyRemoteSuite) SetUpTest(c *check.C) { s.remoteKeepproxy = httptest.NewServer(http.HandlerFunc(s.remoteKeepproxyHandler)) s.remoteAPI = httptest.NewUnstartedServer(http.HandlerFunc(s.remoteAPIHandler)) s.remoteAPI.StartTLS() - s.cluster = arvados.IntegrationTestCluster() + s.cluster = testCluster(c) + s.cluster.Collections.BlobSigningKey = knownKey + s.cluster.SystemRootToken = arvadostest.SystemRootToken s.cluster.RemoteClusters = map[string]arvados.RemoteCluster{ - s.remoteClusterID: arvados.RemoteCluster{ + s.remoteClusterID: { Host: strings.Split(s.remoteAPI.URL, "//")[1], Proxy: true, Scheme: "http", Insecure: true, }, } - s.vm = MakeTestVolumeManager(2) - KeepVM = s.vm - theConfig = DefaultConfig() - theConfig.systemAuthToken = arvadostest.DataManagerToken - theConfig.blobSigningKey = []byte(knownKey) - theConfig.Start() - s.rtr = MakeRESTRouter(s.cluster) + s.cluster.Volumes = map[string]arvados.Volume{"zzzzz-nyw5e-000000000000000": {Driver: "mock"}} + s.handler = &handler{} + c.Assert(s.handler.setup(context.Background(), s.cluster, "", prometheus.NewRegistry(), testServiceURL), check.IsNil) } func (s *ProxyRemoteSuite) TearDownTest(c *check.C) { - s.vm.Close() - KeepVM = nil - theConfig = DefaultConfig() - theConfig.Start() s.remoteAPI.Close() s.remoteKeepproxy.Close() } @@ -189,7 +184,7 @@ func (s *ProxyRemoteSuite) TestProxyRemote(c *check.C) { req.Header.Set("X-Keep-Signature", trial.xKeepSignature) } resp = httptest.NewRecorder() - s.rtr.ServeHTTP(resp, req) + s.handler.ServeHTTP(resp, req) c.Check(s.remoteKeepRequests, check.Equals, trial.expectRemoteReqs) c.Check(resp.Code, check.Equals, trial.expectCode) if resp.Code == http.StatusOK { @@ -208,13 +203,13 @@ func (s *ProxyRemoteSuite) TestProxyRemote(c *check.C) { c.Check(locHdr, check.Not(check.Equals), "") c.Check(locHdr, check.Not(check.Matches), `.*\+R.*`) - c.Check(VerifySignature(locHdr, trial.token), check.IsNil) + c.Check(VerifySignature(s.cluster, locHdr, trial.token), check.IsNil) // Ensure block can be requested using new signature req = httptest.NewRequest("GET", "/"+locHdr, nil) req.Header.Set("Authorization", "Bearer "+trial.token) resp = httptest.NewRecorder() - s.rtr.ServeHTTP(resp, req) + s.handler.ServeHTTP(resp, req) c.Check(resp.Code, check.Equals, http.StatusOK) c.Check(s.remoteKeepRequests, check.Equals, trial.expectRemoteReqs) }