add `-show-url` option for `ui` command (#11213)

This commit is contained in:
Yan 2021-10-06 09:08:42 +09:00 committed by GitHub
parent ca021d7c9d
commit 6ff0b6debc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 3 deletions

3
.changelog/11213.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:improvement
cli: Add `-show-url` option for the `nomad ui` command.
```

View File

@ -35,6 +35,8 @@ UI Options
-authenticate: Exchange your Nomad ACL token for a one-time token in the -authenticate: Exchange your Nomad ACL token for a one-time token in the
web UI, if ACLs are enabled. web UI, if ACLs are enabled.
-show-url: Show the Nomad UI URL instead of opening with the default browser.
` `
return strings.TrimSpace(helpText) return strings.TrimSpace(helpText)
@ -82,10 +84,12 @@ func (c *UiCommand) Name() string { return "ui" }
func (c *UiCommand) Run(args []string) int { func (c *UiCommand) Run(args []string) int {
var authenticate bool var authenticate bool
var showUrl bool
flags := c.Meta.FlagSet(c.Name(), FlagSetClient) flags := c.Meta.FlagSet(c.Name(), FlagSetClient)
flags.Usage = func() { c.Ui.Output(c.Help()) } flags.Usage = func() { c.Ui.Output(c.Help()) }
flags.BoolVar(&authenticate, "authenticate", false, "") flags.BoolVar(&authenticate, "authenticate", false, "")
flags.BoolVar(&showUrl, "show-url", false, "")
if err := flags.Parse(args); err != nil { if err := flags.Parse(args); err != nil {
return 1 return 1
@ -178,17 +182,24 @@ func (c *UiCommand) Run(args []string) int {
} }
} }
var output string
if authenticate && ottSecret != "" { if authenticate && ottSecret != "" {
c.Ui.Output(fmt.Sprintf("Opening URL %q with one-time token", url.String())) output = fmt.Sprintf("Opening URL %q with one-time token", url.String())
url.RawQuery = fmt.Sprintf("ott=%s", ottSecret) url.RawQuery = fmt.Sprintf("ott=%s", ottSecret)
} else { } else {
c.Ui.Output(fmt.Sprintf("Opening URL %q", url.String())) output = fmt.Sprintf("Opening URL %q", url.String())
} }
if showUrl {
c.Ui.Output(fmt.Sprintf("URL for web UI: %s", url.String()))
return 0
}
c.Ui.Output(output)
if err := open.Start(url.String()); err != nil { if err := open.Start(url.String()); err != nil {
c.Ui.Error(fmt.Sprintf("Error opening URL: %s", err)) c.Ui.Error(fmt.Sprintf("Error opening URL: %s", err))
return 1 return 1
} }
return 0 return 0
} }

View File

@ -36,6 +36,8 @@ storage for authentication.
- `-authenticate`: Exchange your Nomad ACL token for a one-time token in the - `-authenticate`: Exchange your Nomad ACL token for a one-time token in the
web UI. web UI.
- `-show-url`: Show the Nomad UI URL instead of opening with the default browser.
## Examples ## Examples
Open the UI homepage: Open the UI homepage:
@ -65,3 +67,10 @@ Open the UI and authenticate using your ACL token:
$ NOMAD_ACL_TOKEN=e9674b26-763b-4637-a28f-0df95c53cdda nomad ui -authenticate $ NOMAD_ACL_TOKEN=e9674b26-763b-4637-a28f-0df95c53cdda nomad ui -authenticate
Opening URL "http://127.0.0.1:4646" with token Opening URL "http://127.0.0.1:4646" with token
``` ```
Show the UI URL without opening the browser:
```shell-session
$ nomad ui -show-url
URL for web UI: http://127.0.0.1:4646
```