X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d22f92638664d9744a38e60dce9f0d95a2d393f0..72d7d41944006d1f48f570784dafe56b9812b0c8:/lib/controller/server_test.go diff --git a/lib/controller/server_test.go b/lib/controller/server_test.go index 381e08948e..051f355716 100644 --- a/lib/controller/server_test.go +++ b/lib/controller/server_test.go @@ -5,50 +5,54 @@ package controller import ( - "bytes" + "context" "net/http" "os" + "path/filepath" + "time" - "git.curoverse.com/arvados.git/sdk/go/arvados" - "git.curoverse.com/arvados.git/sdk/go/httpserver" - "github.com/Sirupsen/logrus" + "git.arvados.org/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/ctxlog" + "git.arvados.org/arvados.git/sdk/go/httpserver" check "gopkg.in/check.v1" ) -// logWriter is an io.Writer that writes by calling a "write log" -// function, typically (*check.C)Log(). -type logWriter struct { - logfunc func(...interface{}) -} - -func (tl *logWriter) Write(buf []byte) (int, error) { - tl.logfunc(string(bytes.TrimRight(buf, "\n"))) - return len(buf), nil +func integrationTestCluster() *arvados.Cluster { + cfg, err := arvados.GetConfig(filepath.Join(os.Getenv("WORKSPACE"), "tmp", "arvados.yml")) + if err != nil { + panic(err) + } + cc, err := cfg.GetCluster("zzzzz") + if err != nil { + panic(err) + } + return cc } // Return a new unstarted controller server, using the Rails API // provided by the integration-testing environment. func newServerFromIntegrationTestEnv(c *check.C) *httpserver.Server { - log := logrus.New() - log.Formatter = &logrus.JSONFormatter{} - log.Out = &logWriter{c.Log} + log := ctxlog.TestLogger(c) - nodeProfile := arvados.NodeProfile{ - Controller: arvados.SystemServiceInstance{Listen: ":"}, - RailsAPI: arvados.SystemServiceInstance{Listen: os.Getenv("ARVADOS_TEST_API_HOST"), TLS: true, Insecure: true}, - } handler := &Handler{Cluster: &arvados.Cluster{ - ClusterID: "zzzzz", - NodeProfiles: map[string]arvados.NodeProfile{ - "*": nodeProfile, - }, - }, NodeProfile: &nodeProfile} + ClusterID: "zzzzz", + PostgreSQL: integrationTestCluster().PostgreSQL, + }} + handler.Cluster.TLS.Insecure = true + handler.Cluster.Collections.BlobSigning = true + handler.Cluster.Collections.BlobSigningKey = arvadostest.BlobSigningKey + handler.Cluster.Collections.BlobSigningTTL = arvados.Duration(time.Hour * 24 * 14) + arvadostest.SetServiceURL(&handler.Cluster.Services.RailsAPI, "https://"+os.Getenv("ARVADOS_TEST_API_HOST")) + arvadostest.SetServiceURL(&handler.Cluster.Services.Controller, "http://localhost:/") srv := &httpserver.Server{ Server: http.Server{ - Handler: httpserver.AddRequestIDs(httpserver.LogRequests(log, handler)), + Handler: httpserver.HandlerWithContext( + ctxlog.Context(context.Background(), log), + httpserver.AddRequestIDs(httpserver.LogRequests(handler))), }, - Addr: nodeProfile.Controller.Listen, + Addr: ":", } return srv }