From 5372a52223aef2cd7205895c91acae1f0c980c98 Mon Sep 17 00:00:00 2001 From: Drew Bailey <2614075+drewbailey@users.noreply.github.com> Date: Thu, 30 Apr 2020 08:56:40 -0400 Subject: [PATCH] properly format license output --- command/license.go | 44 ++++++++++++++++--------------------- command/license_get_test.go | 11 ++++++---- command/license_put.go | 3 --- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/command/license.go b/command/license.go index 724b3e92a..101191469 100644 --- a/command/license.go +++ b/command/license.go @@ -24,20 +24,15 @@ For more detailed examples see: https://www.nomadproject.io/docs/commands/license/ Install a new license from a file: - $ nomad license put @nomad.license + $ nomad license put Install a new license from stdin: $ nomad license put - -Install a new license from a string: - $ nomad license put "" - Retrieve the current license: $ nomad license get -Reset the current license: - $ nomad license reset ` return strings.TrimSpace(helpText) } @@ -53,21 +48,22 @@ func (l *LicenseCommand) Run(args []string) int { } func OutputLicenseReply(ui cli.Ui, resp *api.LicenseReply) int { + var validity string if resp.Valid { - ui.Output("License is valid") - outputLicenseInfo(ui, resp.License, false) + validity = "valid" + outputLicenseInfo(ui, resp.License, false, validity) return 0 } else if resp.License != nil { now := time.Now() if resp.License.ExpirationTime.Before(now) { - ui.Output("License has expired!") - outputLicenseInfo(ui, resp.License, true) + validity = "expired!" + outputLicenseInfo(ui, resp.License, true, validity) } else { - ui.Output("License is invalid!") + validity = "invalid!" for _, warn := range resp.Warnings { ui.Output(fmt.Sprintf(" %s", warn)) } - outputLicenseInfo(ui, resp.License, false) + outputLicenseInfo(ui, resp.License, false, validity) } return 1 } else { @@ -78,28 +74,26 @@ func OutputLicenseReply(ui cli.Ui, resp *api.LicenseReply) int { } } -func outputLicenseInfo(ui cli.Ui, lic *api.License, expired bool) { +func outputLicenseInfo(ui cli.Ui, lic *api.License, expired bool, validity string) { expStr := "" if expired { - expStr = fmt.Sprintf("Expired At: %s", lic.ExpirationTime.String()) + expStr = fmt.Sprintf("Expired At|%s", lic.ExpirationTime.String()) } else { - expStr = fmt.Sprintf("Expires At: %s", lic.ExpirationTime.String()) + expStr = fmt.Sprintf("Expires At|%s", lic.ExpirationTime.String()) } output := []string{ - fmt.Sprintf("License ID: %s", lic.LicenseID), - fmt.Sprintf("Customer ID: %s", lic.CustomerID), + fmt.Sprintf("License Status|%s", validity), + fmt.Sprintf("License ID|%s", lic.LicenseID), + fmt.Sprintf("Customer ID|%s", lic.CustomerID), expStr, - fmt.Sprintf("License ID: %s", lic.LicenseID), - fmt.Sprintf("Customer ID: %s", lic.CustomerID), - fmt.Sprintf("Terminates At: %s", lic.TerminationTime.String()), - fmt.Sprintf("Datacenter: %s", lic.InstallationID), + fmt.Sprintf("License ID|%s", lic.LicenseID), + fmt.Sprintf("Customer ID|%s", lic.CustomerID), + fmt.Sprintf("Terminates At|%s", lic.TerminationTime.String()), + fmt.Sprintf("Datacenter|%s", lic.InstallationID), } ui.Output(formatKV(output)) - // ui.Output(fmt.Sprintf("License ID: %s", lic.LicenseID)) - // ui.Output(fmt.Sprintf("Customer ID: %s", lic.CustomerID)) - // ui.Output(fmt.Sprintf("Terminates At: %s", lic.TerminationTime.String())) - // ui.Output(fmt.Sprintf("Datacenter: %s", lic.InstallationID)) + if len(lic.Modules) > 0 { ui.Output("Modules:") for _, mod := range lic.Modules { diff --git a/command/license_get_test.go b/command/license_get_test.go index ae3a67c82..39f25bc3f 100644 --- a/command/license_get_test.go +++ b/command/license_get_test.go @@ -18,10 +18,13 @@ func TestCommand_LicenseGet_OSSErr(t *testing.T) { ui := new(cli.MockUi) cmd := &LicenseGetCommand{Meta: Meta{Ui: ui}} - if code := cmd.Run([]string{"-address=" + url}); code != 1 { - require.Equal(t, 1, code) + code := cmd.Run([]string{"-address=" + url}) + require.Equal(t, 1, code) + + if srv.Enterprise { + require.Contains(t, ui.OutputWriter.String(), "License Status") + } else { + require.Contains(t, ui.ErrorWriter.String(), "Nomad Enterprise only endpoint") } - require.Contains(t, ui.ErrorWriter.String(), "Nomad Enterprise only endpoint") - } diff --git a/command/license_put.go b/command/license_put.go index 4a1549a9c..f7148ab17 100644 --- a/command/license_put.go +++ b/command/license_put.go @@ -35,9 +35,6 @@ Install a new license from stdin: $ nomad license put - -Install a new license from a string: - - $ nomad license put "" ` return strings.TrimSpace(helpText) }