18992: Fixup and test log messages about config loading.
authorTom Clegg <tom@curii.com>
Thu, 14 Apr 2022 19:08:56 +0000 (15:08 -0400)
committerTom Clegg <tom@curii.com>
Thu, 14 Apr 2022 19:08:56 +0000 (15:08 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

lib/crunchrun/crunchrun.go
lib/crunchrun/integration_test.go

index 6ac7a5f0cc0931369ac9bd869b7e1dcda3883f0a..474fbf4ade16cb6e6b0894ea7bb47524ac0eef09 100644 (file)
@@ -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
 }
 
index ebd2726d0b8e98842d7a9e4ebe1079aafce20d28..0b139dd97de02227ddabfe4ab2e458755c9491f1 100644 (file)
@@ -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())