16950: make specifying of the output directory mandatory (remove
authorWard Vandewege <ward@curii.com>
Wed, 18 Nov 2020 15:09:51 +0000 (10:09 -0500)
committerWard Vandewege <ward@curii.com>
Wed, 18 Nov 2020 21:05:23 +0000 (16:05 -0500)
       default).

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

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

index 8f5395f58d66614c6fffe5f7c54aae2caa772530..ddd7abc632e941e24f7c36029d72463003eb10b7 100644 (file)
@@ -92,8 +92,8 @@ Options:
                flags.PrintDefaults()
        }
        loglevel := flags.String("log-level", "info", "logging `level` (debug, info, ...)")
-       resultsDir = *flags.String("output", "results", "output `directory` for the CSV reports")
-       flags.Var(&uuids, "uuid", "Toplevel `project or container request` uuid. May be specified more than once.")
+       flags.StringVar(&resultsDir, "output", "", "output `directory` for the CSV reports (required)")
+       flags.Var(&uuids, "uuid", "Toplevel `project or container request` uuid. May be specified more than once. (required)")
        flags.BoolVar(&cache, "cache", true, "create and use a local disk cache of Arvados objects")
        err = flags.Parse(args)
        if err == flag.ErrHelp {
@@ -112,6 +112,13 @@ Options:
                return
        }
 
+       if resultsDir == "" {
+               flags.Usage()
+               err = fmt.Errorf("Error: output directory must be specified")
+               exitCode = 2
+               return
+       }
+
        lvl, err := logrus.ParseLevel(*loglevel)
        if err != nil {
                exitCode = 2
index 8253121c947356080c8fb83a7c1e8b485e1675bf..862f5161c42e203e011ebea8b10c6fa35e7c27df 100644 (file)
@@ -161,7 +161,7 @@ func (*Suite) TestUsage(c *check.C) {
 func (*Suite) TestContainerRequestUUID(c *check.C) {
        var stdout, stderr bytes.Buffer
        // Run costanalyzer with 1 container request uuid
-       exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedContainerRequestUUID}, &bytes.Buffer{}, &stdout, &stderr)
+       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 .*")
 
@@ -180,7 +180,7 @@ func (*Suite) TestContainerRequestUUID(c *check.C) {
 func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        var stdout, stderr bytes.Buffer
        // Run costanalyzer with 2 container request uuids
-       exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedContainerRequestUUID, "-uuid", arvadostest.CompletedContainerRequestUUID2}, &bytes.Buffer{}, &stdout, &stderr)
+       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 .*")
 
@@ -220,7 +220,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
        c.Assert(err, check.IsNil)
 
        // Run costanalyzer with the project uuid
-       exitcode = Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.AProjectUUID, "-cache=false", "-log-level", "debug"}, &bytes.Buffer{}, &stdout, &stderr)
+       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 .*")
 
@@ -244,7 +244,7 @@ func (*Suite) TestDoubleContainerRequestUUID(c *check.C) {
 func (*Suite) TestMultipleContainerRequestUUIDWithReuse(c *check.C) {
        var stdout, stderr bytes.Buffer
        // Run costanalyzer with 2 container request uuids
-       exitcode := Command.RunCommand("costanalyzer.test", []string{"-uuid", arvadostest.CompletedDiagnosticsContainerRequest1UUID, "-uuid", arvadostest.CompletedDiagnosticsContainerRequest2UUID}, &bytes.Buffer{}, &stdout, &stderr)
+       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 .*")