16950: switch to os.UserHomeDir(), and send all output to stderr.
authorWard Vandewege <ward@curii.com>
Wed, 18 Nov 2020 21:20:40 +0000 (16:20 -0500)
committerWard Vandewege <ward@curii.com>
Wed, 18 Nov 2020 21:20:40 +0000 (16:20 -0500)
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

lib/costanalyzer/cmd.go
lib/costanalyzer/costanalyzer.go
lib/costanalyzer/costanalyzer_test.go

index 800860ddf490b8a4b1186f823e58d7c7efe35f74..9b0685225b788ba2bf35b469eded10575367e2c3 100644 (file)
@@ -33,7 +33,6 @@ func (command) RunCommand(prog string, args []string, stdin io.Reader, stdout, s
        }()
 
        logger.SetFormatter(new(NoPrefixFormatter))
-       logger.SetOutput(stdout)
 
        loader := config.NewLoader(stdin, logger)
        loader.SkipLegacy = true
index ddd7abc632e941e24f7c36029d72463003eb10b7..4284542b869a07d713d698fbb7eaa1a243e77ec5 100644 (file)
@@ -17,7 +17,6 @@ import (
        "io/ioutil"
        "net/http"
        "os"
-       "os/user"
        "strconv"
        "strings"
        "time"
@@ -227,12 +226,12 @@ func loadObject(logger *logrus.Logger, ac *arvados.Client, path string, uuid str
        if !cache {
                reload = true
        } else {
-               user, err := user.Current()
+               homeDir, err := os.UserHomeDir()
                if err != nil {
                        reload = true
-                       logger.Info("Unable to determine current user, not using cache")
+                       logger.Info("Unable to determine current user home directory, not using cache")
                } else {
-                       cacheDir = user.HomeDir + "/.cache/arvados/costanalyzer/"
+                       cacheDir = homeDir + "/.cache/arvados/costanalyzer/"
                        err = ensureDirectory(logger, cacheDir)
                        if err != nil {
                                reload = true
index 862f5161c42e203e011ebea8b10c6fa35e7c27df..4fab93bf4fadb13919b0346109bc175c96084c93 100644 (file)
@@ -163,13 +163,13 @@ func (*Suite) TestContainerRequestUUID(c *check.C) {
        // Run costanalyzer with 1 container request uuid
        exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedContainerRequestUUID, "-output", "results"}, &bytes.Buffer{}, &stdout, &stderr)
        c.Check(exitcode, check.Equals, 0)
-       c.Assert(stdout.String(), check.Matches, "(?ms).*supplied uuids in .*")
+       c.Assert(stderr.String(), check.Matches, "(?ms).*supplied uuids in .*")
 
        uuidReport, err := ioutil.ReadFile("results/" + arvadostest.CompletedContainerRequestUUID + ".csv")
        c.Assert(err, check.IsNil)
        c.Check(string(uuidReport), check.Matches, "(?ms).*TOTAL,,,,,,,,,7.01302889")
        re := regexp.MustCompile(`(?ms).*supplied uuids in (.*?)\n`)
-       matches := re.FindStringSubmatch(stdout.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
+       matches := re.FindStringSubmatch(stderr.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
 
        aggregateCostReport, err := ioutil.ReadFile(matches[1])
        c.Assert(err, check.IsNil)
@@ -182,7 +182,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        // Run costanalyzer with 2 container request uuids
        exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedContainerRequestUUID, "-uuid", arvadostest.CompletedContainerRequestUUID2, "-output", "results"}, &bytes.Buffer{}, &stdout, &stderr)
        c.Check(exitcode, check.Equals, 0)
-       c.Assert(stdout.String(), check.Matches, "(?ms).*supplied uuids in .*")
+       c.Assert(stderr.String(), check.Matches, "(?ms).*supplied uuids in .*")
 
        uuidReport, err := ioutil.ReadFile("results/" + arvadostest.CompletedContainerRequestUUID + ".csv")
        c.Assert(err, check.IsNil)
@@ -193,7 +193,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        c.Check(string(uuidReport2), check.Matches, "(?ms).*TOTAL,,,,,,,,,42.27031111")
 
        re := regexp.MustCompile(`(?ms).*supplied uuids in (.*?)\n`)
-       matches := re.FindStringSubmatch(stdout.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
+       matches := re.FindStringSubmatch(stderr.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
 
        aggregateCostReport, err := ioutil.ReadFile(matches[1])
        c.Assert(err, check.IsNil)
@@ -222,7 +222,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        // Run costanalyzer with the project uuid
        exitcode = Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.AProjectUUID, "-cache=false", "-log-level", "debug", "-output", "results"}, &bytes.Buffer{}, &stdout, &stderr)
        c.Check(exitcode, check.Equals, 0)
-       c.Assert(stdout.String(), check.Matches, "(?ms).*supplied uuids in .*")
+       c.Assert(stderr.String(), check.Matches, "(?ms).*supplied uuids in .*")
 
        uuidReport, err = ioutil.ReadFile("results/" + arvadostest.CompletedContainerRequestUUID + ".csv")
        c.Assert(err, check.IsNil)
@@ -233,7 +233,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        c.Check(string(uuidReport2), check.Matches, "(?ms).*TOTAL,,,,,,,,,42.27031111")
 
        re = regexp.MustCompile(`(?ms).*supplied uuids in (.*?)\n`)
-       matches = re.FindStringSubmatch(stdout.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
+       matches = re.FindStringSubmatch(stderr.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
 
        aggregateCostReport, err = ioutil.ReadFile(matches[1])
        c.Assert(err, check.IsNil)
@@ -246,7 +246,7 @@ func (*Suite) TestMultipleContainerRequestUUIDWithReuse(c *check.C) {
        // Run costanalyzer with 2 container request uuids
        exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedDiagnosticsContainerRequest1UUID, "-uuid", arvadostest.CompletedDiagnosticsContainerRequest2UUID, "-output", "results"}, &bytes.Buffer{}, &stdout, &stderr)
        c.Check(exitcode, check.Equals, 0)
-       c.Assert(stdout.String(), check.Matches, "(?ms).*supplied uuids in .*")
+       c.Assert(stderr.String(), check.Matches, "(?ms).*supplied uuids in .*")
 
        uuidReport, err := ioutil.ReadFile("results/" + arvadostest.CompletedDiagnosticsContainerRequest1UUID + ".csv")
        c.Assert(err, check.IsNil)
@@ -257,7 +257,7 @@ func (*Suite) TestMultipleContainerRequestUUIDWithReuse(c *check.C) {
        c.Check(string(uuidReport2), check.Matches, "(?ms).*TOTAL,,,,,,,,,0.00588088")
 
        re := regexp.MustCompile(`(?ms).*supplied uuids in (.*?)\n`)
-       matches := re.FindStringSubmatch(stdout.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
+       matches := re.FindStringSubmatch(stderr.String()) // matches[1] contains a string like 'results/2020-11-02-18-57-45-aggregate-costaccounting.csv'
 
        aggregateCostReport, err := ioutil.ReadFile(matches[1])
        c.Assert(err, check.IsNil)