From: Tom Clegg Date: Thu, 14 Apr 2022 19:08:56 +0000 (-0400) Subject: 18992: Fixup and test log messages about config loading. X-Git-Tag: 2.5.0~202^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/b45a44c93bcda724d862891eb2eed5666c8fd197 18992: Fixup and test log messages about config loading. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/lib/crunchrun/crunchrun.go b/lib/crunchrun/crunchrun.go index 6ac7a5f0cc..474fbf4ade 100644 --- a/lib/crunchrun/crunchrun.go +++ b/lib/crunchrun/crunchrun.go @@ -2001,14 +2001,15 @@ func loadClusterConfigFile(path string, stderr io.Writer) *arvados.Cluster { ldr.Path = path cfg, err := ldr.Load() if err != nil { - fmt.Fprintf(stderr, "could not load config file %s: %s", path, err) + fmt.Fprintf(stderr, "could not load config file %s: %s\n", path, err) return nil } cluster, err := cfg.GetCluster("") if err != nil { - fmt.Fprintf(stderr, "could not use config file %s: %s", path, err) + fmt.Fprintf(stderr, "could not use config file %s: %s\n", path, err) return nil } + fmt.Fprintf(stderr, "loaded config file %s\n", path) return cluster } diff --git a/lib/crunchrun/integration_test.go b/lib/crunchrun/integration_test.go index ebd2726d0b..0b139dd97d 100644 --- a/lib/crunchrun/integration_test.go +++ b/lib/crunchrun/integration_test.go @@ -32,6 +32,7 @@ type integrationSuite struct { stdin bytes.Buffer stdout bytes.Buffer stderr bytes.Buffer + args []string cr arvados.ContainerRequest client *arvados.Client ac *arvadosclient.ArvadosClient @@ -103,6 +104,7 @@ func (s *integrationSuite) TearDownSuite(c *C) { func (s *integrationSuite) SetUpTest(c *C) { os.Unsetenv("ARVADOS_KEEP_SERVICES") s.engine = "docker" + s.args = nil s.stdin = bytes.Buffer{} s.stdout = bytes.Buffer{} s.stderr = bytes.Buffer{} @@ -219,6 +221,26 @@ func (s *integrationSuite) TestRunTrivialContainerWithLocalKeepstore(c *C) { s.stdin.Reset() s.testRunTrivialContainer(c) c.Check(s.logFiles["crunch-run.txt"], Matches, `(?ms).*not starting a local keepstore process because a volume \(zzzzz-nyw5e-000000000000000\) uses AccessViaHosts\n.*`) + + // Check that config read errors are logged + s.SetUpTest(c) + s.args = []string{"-config", c.MkDir() + "/config-error.yaml"} + s.stdin.Reset() + s.testRunTrivialContainer(c) + c.Check(s.logFiles["crunch-run.txt"], Matches, `(?ms).*could not load config file \Q`+s.args[1]+`\E:.* no such file or directory\n.*`) + + s.SetUpTest(c) + s.args = []string{"-config", c.MkDir() + "/config-unreadable.yaml"} + s.stdin.Reset() + err := ioutil.WriteFile(s.args[1], []byte{}, 0) + c.Check(err, IsNil) + s.testRunTrivialContainer(c) + c.Check(s.logFiles["crunch-run.txt"], Matches, `(?ms).*could not load config file \Q`+s.args[1]+`\E:.* permission denied\n.*`) + + s.SetUpTest(c) + s.stdin.Reset() + s.testRunTrivialContainer(c) + c.Check(s.logFiles["crunch-run.txt"], Matches, `(?ms).*loaded config file \Q`+os.Getenv("ARVADOS_CONFIG")+`\E\n.*`) } func (s *integrationSuite) testRunTrivialContainer(c *C) { @@ -231,11 +253,12 @@ func (s *integrationSuite) testRunTrivialContainer(c *C) { args := []string{ "-runtime-engine=" + s.engine, "-enable-memory-limit=false", - s.cr.ContainerUUID, } if s.stdin.Len() > 0 { - args = append([]string{"-stdin-config=true"}, args...) + args = append(args, "-stdin-config=true") } + args = append(args, s.args...) + args = append(args, s.cr.ContainerUUID) code := command{}.RunCommand("crunch-run", args, &s.stdin, io.MultiWriter(&s.stdout, os.Stderr), io.MultiWriter(&s.stderr, os.Stderr)) c.Logf("\n===== stdout =====\n%s", s.stdout.String()) c.Logf("\n===== stderr =====\n%s", s.stderr.String())