X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ecda32d08a4f6d80a2f02ae305fdb43e141672ce..e8d1a643cdbc3a5f4c0e5c745da58d9f7e1248d8:/services/keep-balance/integration_test.go diff --git a/services/keep-balance/integration_test.go b/services/keep-balance/integration_test.go index 0793889259..defabd9a10 100644 --- a/services/keep-balance/integration_test.go +++ b/services/keep-balance/integration_test.go @@ -1,26 +1,32 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( "bytes" - "log" - "net/http" "os" "strings" "testing" "time" - "git.curoverse.com/arvados.git/sdk/go/arvados" - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" - "git.curoverse.com/arvados.git/sdk/go/arvadostest" - "git.curoverse.com/arvados.git/sdk/go/keepclient" - + "git.arvados.org/arvados.git/lib/config" + "git.arvados.org/arvados.git/sdk/go/arvados" + "git.arvados.org/arvados.git/sdk/go/arvadosclient" + "git.arvados.org/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/ctxlog" + "git.arvados.org/arvados.git/sdk/go/keepclient" + "github.com/prometheus/client_golang/prometheus" + "github.com/sirupsen/logrus" check "gopkg.in/check.v1" ) var _ = check.Suite(&integrationSuite{}) type integrationSuite struct { - config Config + config *arvados.Cluster + client *arvados.Client keepClient *keepclient.KeepClient } @@ -33,13 +39,11 @@ func (s *integrationSuite) SetUpSuite(c *check.C) { arvadostest.StartKeep(4, true) arv, err := arvadosclient.MakeArvadosClient() - arv.ApiToken = arvadostest.DataManagerToken + arv.ApiToken = arvadostest.SystemRootToken + c.Assert(err, check.IsNil) + + s.keepClient, err = keepclient.MakeKeepClient(arv) c.Assert(err, check.IsNil) - s.keepClient = &keepclient.KeepClient{ - Arvados: &arv, - Client: &http.Client{}, - } - c.Assert(s.keepClient.DiscoverKeepServers(), check.IsNil) s.putReplicas(c, "foo", 4) s.putReplicas(c, "bar", 1) } @@ -59,26 +63,36 @@ func (s *integrationSuite) TearDownSuite(c *check.C) { } func (s *integrationSuite) SetUpTest(c *check.C) { - s.config = Config{ - Client: arvados.Client{ - APIHost: os.Getenv("ARVADOS_API_HOST"), - AuthToken: arvadostest.DataManagerToken, - Insecure: true, - }, - KeepServiceTypes: []string{"disk"}, + cfg, err := config.NewLoader(nil, ctxlog.TestLogger(c)).Load() + c.Assert(err, check.Equals, nil) + s.config, err = cfg.GetCluster("") + c.Assert(err, check.Equals, nil) + s.config.Collections.BalancePeriod = arvados.Duration(time.Second) + + s.client = &arvados.Client{ + APIHost: os.Getenv("ARVADOS_API_HOST"), + AuthToken: arvadostest.SystemRootToken, + Insecure: true, } } func (s *integrationSuite) TestBalanceAPIFixtures(c *check.C) { - var logBuf *bytes.Buffer + var logBuf bytes.Buffer for iter := 0; iter < 20; iter++ { - logBuf := &bytes.Buffer{} + logBuf.Reset() + logger := logrus.New() + logger.Out = &logBuf opts := RunOptions{ CommitPulls: true, CommitTrash: true, - Logger: log.New(logBuf, "", log.LstdFlags), + Logger: logger, + } + + bal := &Balancer{ + Logger: logger, + Metrics: newMetrics(prometheus.NewRegistry()), } - nextOpts, err := (&Balancer{}).Run(s.config, opts) + nextOpts, err := bal.Run(s.client, s.config, opts) c.Check(err, check.IsNil) c.Check(nextOpts.SafeRendezvousState, check.Not(check.Equals), "") c.Check(nextOpts.CommitPulls, check.Equals, true)