Merge branch '19603-installer-container-shell-fix'. Closes #19603
authorLucas Di Pentima <lucas.dipentima@curii.com>
Mon, 17 Oct 2022 13:16:41 +0000 (10:16 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Mon, 17 Oct 2022 13:16:41 +0000 (10:16 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

lib/config/config.default.yml
lib/config/export.go
sdk/go/arvados/config.go
sdk/go/health/aggregator.go
sdk/go/health/aggregator_test.go

index 816d0f99e2f685285f79de86c3952e6b88a4352f..9b5547248e7c8ab84adc245cdd266deb07f8da2f 100644 (file)
@@ -1716,6 +1716,10 @@ Clusters:
       # This feature is disabled when set to zero.
       IdleTimeout: 0s
 
+      # URL to a file that is a fragment of text or HTML which should
+      # be rendered in Workbench as a banner.
+      BannerURL: ""
+
       # Workbench welcome screen, this is HTML text that will be
       # incorporated directly onto the page.
       WelcomePageHTML: |
index fb17a45c84a82fe4568777065fe23684c49a4603..e7cf094eb02b63f8a613b881696940e2cec505ab 100644 (file)
@@ -291,6 +291,7 @@ var whitelist = map[string]bool{
        "Workbench.UserProfileFormFields.*.*.*":               true,
        "Workbench.UserProfileFormMessage":                    true,
        "Workbench.WelcomePageHTML":                           true,
+       "Workbench.BannerURL":                                 true,
 }
 
 func redactUnsafe(m map[string]interface{}, mPrefix, lookupPrefix string) error {
index a1fc2e89f44331f005e2b28609a32dffe7c5480a..3c1ef4826f91b4007f03c0cb96324f9ce51fbe3a 100644 (file)
@@ -291,6 +291,7 @@ type Cluster struct {
                SSHHelpPageHTML        string
                SSHHelpHostSuffix      string
                IdleTimeout            Duration
+               BannerURL              string
        }
 }
 
index caf99108a632ac44163a4e669fce9bb00366c078..63e0b0d9018f26d25cb1aa5b581bb1b35d1fbc8f 100644 (file)
@@ -438,7 +438,7 @@ func (ccmd checkCommand) RunCommand(prog string, args []string, stdin io.Reader,
        err := ccmd.run(ctx, prog, args, stdin, stdout, stderr)
        if err != nil {
                if err != errSilent {
-                       fmt.Fprintln(stdout, err.Error())
+                       fmt.Fprintln(stderr, err.Error())
                }
                return 1
        }
@@ -452,6 +452,7 @@ func (ccmd checkCommand) run(ctx context.Context, prog string, args []string, st
        loader.SetupFlags(flags)
        versionFlag := flags.Bool("version", false, "Write version information to stdout and exit 0")
        timeout := flags.Duration("timeout", defaultTimeout.Duration(), "Maximum time to wait for health responses")
+       quiet := flags.Bool("quiet", false, "Silent on success (suppress 'health check OK' message on stderr)")
        outputYAML := flags.Bool("yaml", false, "Output full health report in YAML format (default mode shows errors as plain text, is silent on success)")
        if ok, _ := cmd.ParseFlags(flags, prog, args, "", stderr); !ok {
                // cmd.ParseFlags already reported the error
@@ -487,11 +488,14 @@ func (ccmd checkCommand) run(ctx context.Context, prog string, args []string, st
        }
        if resp.Health != "OK" {
                for _, msg := range resp.Errors {
-                       fmt.Fprintln(stdout, msg)
+                       fmt.Fprintln(stderr, msg)
                }
                fmt.Fprintln(stderr, "health check failed")
                return errSilent
        }
+       if !*quiet {
+               fmt.Fprintln(stderr, "health check OK")
+       }
        return nil
 }
 
index b1166c27d457317b8a4f6d5b5bcdea69cc6bf273..f76f7b8ea80a45ba9d908e485d2dcae8b9eca300 100644 (file)
@@ -321,6 +321,13 @@ func (s *AggregatorSuite) TestCheckCommand(c *check.C) {
 
        exitcode := CheckCommand.RunCommand("check", []string{"-config=" + tmpdir + "/config.yml"}, &bytes.Buffer{}, &stdout, &stderr)
        c.Check(exitcode, check.Equals, 0)
+       c.Check(stderr.String(), check.Equals, "health check OK\n")
+       c.Check(stdout.String(), check.Equals, "")
+
+       stdout.Reset()
+       stderr.Reset()
+       exitcode = CheckCommand.RunCommand("check", []string{"-quiet", "-config=" + tmpdir + "/config.yml"}, &bytes.Buffer{}, &stdout, &stderr)
+       c.Check(exitcode, check.Equals, 0)
        c.Check(stderr.String(), check.Equals, "")
        c.Check(stdout.String(), check.Equals, "")