X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3c88abd3cb33cbe80bb81a7cca779fe668036c9e..a3851eec63fb52c1f8121395d0092f4aff25405f:/tools/keep-block-check/keep-block-check_test.go diff --git a/tools/keep-block-check/keep-block-check_test.go b/tools/keep-block-check/keep-block-check_test.go index 6c776126ab..a2000baefd 100644 --- a/tools/keep-block-check/keep-block-check_test.go +++ b/tools/keep-block-check/keep-block-check_test.go @@ -1,3 +1,7 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + package main import ( @@ -12,6 +16,7 @@ import ( "testing" "time" + "git.curoverse.com/arvados.git/sdk/go/arvadosclient" "git.curoverse.com/arvados.git/sdk/go/arvadostest" "git.curoverse.com/arvados.git/sdk/go/keepclient" @@ -64,6 +69,7 @@ func (s *DoMainTestSuite) SetUpSuite(c *C) { func (s *DoMainTestSuite) SetUpTest(c *C) { logOutput := io.MultiWriter(&logBuffer) log.SetOutput(logOutput) + keepclient.RefreshServiceDiscovery() } func (s *DoMainTestSuite) TearDownTest(c *C) { @@ -72,18 +78,25 @@ func (s *DoMainTestSuite) TearDownTest(c *C) { } func setupKeepBlockCheck(c *C, enforcePermissions bool, keepServicesJSON string) { + setupKeepBlockCheckWithTTL(c, enforcePermissions, keepServicesJSON, blobSignatureTTL) +} + +func setupKeepBlockCheckWithTTL(c *C, enforcePermissions bool, keepServicesJSON string, ttl time.Duration) { var config apiConfig config.APIHost = os.Getenv("ARVADOS_API_HOST") config.APIToken = arvadostest.DataManagerToken - config.APIHostInsecure = matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE")) + config.APIHostInsecure = arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE")) // Start Keep servers arvadostest.StartKeep(2, enforcePermissions) // setup keepclients var err error - kc, err = setupKeepClient(config, keepServicesJSON, blobSignatureTTL) + kc, ttl, err = setupKeepClient(config, keepServicesJSON, ttl) + c.Assert(ttl, Equals, blobSignatureTTL) c.Check(err, IsNil) + + keepclient.RefreshServiceDiscovery() } // Setup test data @@ -139,9 +152,8 @@ func setupBlockHashFile(c *C, name string, blocks []string) string { func checkErrorLog(c *C, blocks []string, prefix, suffix string) { for _, hash := range blocks { - expected := prefix + `.*` + hash + `.*` + suffix - match, _ := regexp.MatchString(expected, logBuffer.String()) - c.Assert(match, Equals, true) + expected := `(?ms).*` + prefix + `.*` + hash + `.*` + suffix + `.*` + c.Check(logBuffer.String(), Matches, expected) } } @@ -167,6 +179,14 @@ func (s *ServerRequiredSuite) TestBlockCheckWithBlobSigning(c *C) { checkNoErrorsLogged(c, "Error verifying block", "Block not found") } +func (s *ServerRequiredSuite) TestBlockCheckWithBlobSigningAndTTLFromDiscovery(c *C) { + setupKeepBlockCheckWithTTL(c, true, "", 0) + allLocators := setupTestData(c) + err := performKeepBlockCheck(kc, blobSignatureTTL, arvadostest.BlobSigningKey, allLocators, true) + c.Check(err, IsNil) + checkNoErrorsLogged(c, "Error verifying block", "Block not found") +} + func (s *ServerRequiredSuite) TestBlockCheck_NoSuchBlock(c *C) { setupKeepBlockCheck(c, false, "") allLocators := setupTestData(c) @@ -275,7 +295,7 @@ func (s *ServerRequiredSuite) TestLoadConfig(c *C) { c.Assert(config.APIHost, Equals, os.Getenv("ARVADOS_API_HOST")) c.Assert(config.APIToken, Equals, arvadostest.DataManagerToken) - c.Assert(config.APIHostInsecure, Equals, matchTrue.MatchString(os.Getenv("ARVADOS_API_HOST_INSECURE"))) + c.Assert(config.APIHostInsecure, Equals, arvadosclient.StringBool(os.Getenv("ARVADOS_API_HOST_INSECURE"))) c.Assert(config.ExternalClient, Equals, false) c.Assert(blobSigningKey, Equals, "abcdefg") }