X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a4efc2178e0e59c4b32451365691e9100ff88186..a7cdd1faaf1de132fa556944bc86831ebdfe8886:/lib/controller/federation_test.go diff --git a/lib/controller/federation_test.go b/lib/controller/federation_test.go index d49d16a35e..7d8e7a4334 100644 --- a/lib/controller/federation_test.go +++ b/lib/controller/federation_test.go @@ -19,6 +19,7 @@ import ( "git.curoverse.com/arvados.git/sdk/go/arvados" "git.curoverse.com/arvados.git/sdk/go/arvadostest" + "git.curoverse.com/arvados.git/sdk/go/ctxlog" "git.curoverse.com/arvados.git/sdk/go/httpserver" "git.curoverse.com/arvados.git/sdk/go/keepclient" "github.com/sirupsen/logrus" @@ -29,7 +30,7 @@ import ( var _ = check.Suite(&FederationSuite{}) type FederationSuite struct { - log *logrus.Logger + log logrus.FieldLogger // testServer and testHandler are the controller being tested, // "zhome". testServer *httpserver.Server @@ -44,9 +45,7 @@ type FederationSuite struct { } func (s *FederationSuite) SetUpTest(c *check.C) { - s.log = logrus.New() - s.log.Formatter = &logrus.JSONFormatter{} - s.log.Out = &logWriter{c.Log} + s.log = ctxlog.TestLogger(c) s.remoteServer = newServerFromIntegrationTestEnv(c) c.Assert(s.remoteServer.Start(), check.IsNil) @@ -55,25 +54,20 @@ func (s *FederationSuite) SetUpTest(c *check.C) { s.remoteMock.Server.Handler = http.HandlerFunc(s.remoteMockHandler) c.Assert(s.remoteMock.Start(), check.IsNil) - nodeProfile := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: ":1"}, // local reqs will error "connection refused" - } - s.testHandler = &Handler{Cluster: &arvados.Cluster{ + cluster := &arvados.Cluster{ ClusterID: "zhome", PostgreSQL: integrationTestCluster().PostgreSQL, - NodeProfiles: map[string]arvados.NodeProfile{ - "*": nodeProfile, - }, - RequestLimits: arvados.RequestLimits{ - MaxItemsPerResponse: 1000, - MultiClusterRequestConcurrency: 4, - }, - }, NodeProfile: &nodeProfile} + } + cluster.TLS.Insecure = true + cluster.API.MaxItemsPerResponse = 1000 + cluster.API.MaxRequestAmplification = 4 + arvadostest.SetServiceURL(&cluster.Services.RailsAPI, "http://localhost:1/") + arvadostest.SetServiceURL(&cluster.Services.Controller, "http://localhost:/") + s.testHandler = &Handler{Cluster: cluster} s.testServer = newServerFromIntegrationTestEnv(c) s.testServer.Server.Handler = httpserver.AddRequestIDs(httpserver.LogRequests(s.log, s.testHandler)) - s.testHandler.Cluster.RemoteClusters = map[string]arvados.RemoteCluster{ + cluster.RemoteClusters = map[string]arvados.RemoteCluster{ "zzzzz": { Host: s.remoteServer.Addr, Proxy: true, @@ -319,16 +313,8 @@ func (s *FederationSuite) localServiceHandler(c *check.C, h http.Handler) *https Handler: h, }, } - c.Assert(srv.Start(), check.IsNil) - - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: srv.Addr, - TLS: false, Insecure: true}} - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np - + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "http://"+srv.Addr) return srv } @@ -339,13 +325,8 @@ func (s *FederationSuite) localServiceReturns404(c *check.C) *httpserver.Server } func (s *FederationSuite) TestGetLocalCollection(c *check.C) { - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), - TLS: true, Insecure: true}} s.testHandler.Cluster.ClusterID = "zzzzz" - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) // HTTP GET @@ -417,12 +398,7 @@ func (s *FederationSuite) TestSignedLocatorPattern(c *check.C) { } func (s *FederationSuite) TestGetLocalCollectionByPDH(c *check.C) { - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), - TLS: true, Insecure: true}} - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) req := httptest.NewRequest("GET", "/arvados/v1/collections/"+arvadostest.UserAgreementPDH, nil) req.Header.Set("Authorization", "Bearer "+arvadostest.ActiveToken) @@ -506,12 +482,7 @@ func (s *FederationSuite) TestGetCollectionByPDHErrorBadHash(c *check.C) { } func (s *FederationSuite) TestSaltedTokenGetCollectionByPDH(c *check.C) { - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), - TLS: true, Insecure: true}} - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) req := httptest.NewRequest("GET", "/arvados/v1/collections/"+arvadostest.UserAgreementPDH, nil) req.Header.Set("Authorization", "Bearer v2/zzzzz-gj3su-077z32aux8dg2s1/282d7d172b6cfdce364c5ed12ddf7417b2d00065") @@ -527,12 +498,7 @@ func (s *FederationSuite) TestSaltedTokenGetCollectionByPDH(c *check.C) { } func (s *FederationSuite) TestSaltedTokenGetCollectionByPDHError(c *check.C) { - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), - TLS: true, Insecure: true}} - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) req := httptest.NewRequest("GET", "/arvados/v1/collections/99999999999999999999999999999999+99", nil) req.Header.Set("Authorization", "Bearer v2/zzzzz-gj3su-077z32aux8dg2s1/282d7d172b6cfdce364c5ed12ddf7417b2d00065") @@ -617,13 +583,8 @@ func (s *FederationSuite) TestCreateRemoteContainerRequestCheckRuntimeToken(c *c req.Header.Set("Authorization", "Bearer "+arvadostest.ActiveTokenV2) req.Header.Set("Content-type", "application/json") - np := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), - TLS: true, Insecure: true}} + arvadostest.SetServiceURL(&s.testHandler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) s.testHandler.Cluster.ClusterID = "zzzzz" - s.testHandler.Cluster.NodeProfiles["*"] = np - s.testHandler.NodeProfile = &np resp := s.testRequest(req) c.Check(resp.StatusCode, check.Equals, http.StatusOK) @@ -851,7 +812,7 @@ func (s *FederationSuite) TestListMultiRemoteContainersMissing(c *check.C) { } func (s *FederationSuite) TestListMultiRemoteContainerPageSizeError(c *check.C) { - s.testHandler.Cluster.RequestLimits.MaxItemsPerResponse = 1 + s.testHandler.Cluster.API.MaxItemsPerResponse = 1 req := httptest.NewRequest("GET", fmt.Sprintf("/arvados/v1/containers?count=none&filters=%s", url.QueryEscape(fmt.Sprintf(`[["uuid", "in", ["%v", "zhome-xvhdp-cr5queuedcontnr"]]]`, arvadostest.QueuedContainerUUID))),