feat(helm): Add --full-output to helm list and helm history

The default maximum length of the output table is 60 chars.
When the length is greater than 60, the content will be omitted.
This patch adds -f and --full-output to helm list and helm history
which can display full information of releases on the screen.

Closes #2828
pull/2836/head
rocky-nupt 8 years ago committed by 徐海刚
parent 43dad8b3c9
commit 056b94e88d

@ -46,11 +46,11 @@ The historical release set is printed as a formatted table, e.g:
` `
type historyCmd struct { type historyCmd struct {
max int32 max int32
rls string rls string
out io.Writer out io.Writer
helmc helm.Interface helmc helm.Interface
output string colWidth uint
} }
func newHistoryCmd(c helm.Interface, w io.Writer) *cobra.Command { func newHistoryCmd(c helm.Interface, w io.Writer) *cobra.Command {
@ -76,7 +76,7 @@ func newHistoryCmd(c helm.Interface, w io.Writer) *cobra.Command {
f := cmd.Flags() f := cmd.Flags()
f.Int32Var(&his.max, "max", 256, "maximum number of revision to include in history") f.Int32Var(&his.max, "max", 256, "maximum number of revision to include in history")
f.StringVar(&his.output, "output", "short", "specifies the output format: short|wide") f.UintVar(&his.colWidth, "col-width", 60, "specifies the max column width of output")
return cmd return cmd
} }
@ -90,19 +90,14 @@ func (cmd *historyCmd) run() error {
return nil return nil
} }
fmt.Fprintln(cmd.out, formatHistory(r.Releases, cmd.output)) fmt.Fprintln(cmd.out, formatHistory(r.Releases, cmd.colWidth))
return nil return nil
} }
func formatHistory(rls []*release.Release, output string) string { func formatHistory(rls []*release.Release, colWidth uint) string {
tbl := uitable.New() tbl := uitable.New()
switch output {
case "wide":
break
default:
tbl.MaxColWidth = 60
}
tbl.MaxColWidth = colWidth
tbl.AddRow("REVISION", "UPDATED", "STATUS", "CHART", "DESCRIPTION") tbl.AddRow("REVISION", "UPDATED", "STATUS", "CHART", "DESCRIPTION")
for i := len(rls) - 1; i >= 0; i-- { for i := len(rls) - 1; i >= 0; i-- {
r := rls[i] r := rls[i]

@ -74,7 +74,7 @@ type listCmd struct {
superseded bool superseded bool
pending bool pending bool
client helm.Interface client helm.Interface
output string colWidth uint
} }
func newListCmd(client helm.Interface, out io.Writer) *cobra.Command { func newListCmd(client helm.Interface, out io.Writer) *cobra.Command {
@ -113,7 +113,7 @@ func newListCmd(client helm.Interface, out io.Writer) *cobra.Command {
f.BoolVar(&list.failed, "failed", false, "show failed releases") f.BoolVar(&list.failed, "failed", false, "show failed releases")
f.BoolVar(&list.pending, "pending", false, "show pending releases") f.BoolVar(&list.pending, "pending", false, "show pending releases")
f.StringVar(&list.namespace, "namespace", "", "show releases within a specific namespace") f.StringVar(&list.namespace, "namespace", "", "show releases within a specific namespace")
f.StringVar(&list.output, "output", "short", "specifies the output format: short|wide") f.UintVar(&list.colWidth, "col-width", 60, "specifies the max column width of output")
// TODO: Do we want this as a feature of 'helm list'? // TODO: Do we want this as a feature of 'helm list'?
//f.BoolVar(&list.superseded, "history", true, "show historical releases") //f.BoolVar(&list.superseded, "history", true, "show historical releases")
@ -164,7 +164,7 @@ func (l *listCmd) run() error {
} }
return nil return nil
} }
fmt.Fprintln(l.out, formatList(rels, l.output)) fmt.Fprintln(l.out, formatList(rels, l.colWidth))
return nil return nil
} }
@ -209,15 +209,10 @@ func (l *listCmd) statusCodes() []release.Status_Code {
return status return status
} }
func formatList(rels []*release.Release, output string) string { func formatList(rels []*release.Release, colWidth uint) string {
table := uitable.New() table := uitable.New()
switch output {
case "wide":
break
default:
table.MaxColWidth = 60
}
table.MaxColWidth = colWidth
table.AddRow("NAME", "REVISION", "UPDATED", "STATUS", "CHART", "NAMESPACE") table.AddRow("NAME", "REVISION", "UPDATED", "STATUS", "CHART", "NAMESPACE")
for _, r := range rels { for _, r := range rels {
c := fmt.Sprintf("%s-%s", r.Chart.Metadata.Name, r.Chart.Metadata.Version) c := fmt.Sprintf("%s-%s", r.Chart.Metadata.Name, r.Chart.Metadata.Version)

@ -28,8 +28,8 @@ helm history [flags] RELEASE_NAME
### Options ### Options
``` ```
--col-width uint specifies the max column width of output (default 60)
--max int32 maximum number of revision to include in history (default 256) --max int32 maximum number of revision to include in history (default 256)
--output string specifies the output format: short|wide (default "short")
--tls enable TLS for request --tls enable TLS for request
--tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem")
--tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem")

@ -40,6 +40,7 @@ helm list [flags] [FILTER]
``` ```
-a, --all show all releases, not just the ones marked DEPLOYED -a, --all show all releases, not just the ones marked DEPLOYED
--col-width uint specifies the max column width of output (default 60)
-d, --date sort by release date -d, --date sort by release date
--deleted show deleted releases --deleted show deleted releases
--deleting show releases that are currently being deleted --deleting show releases that are currently being deleted
@ -48,7 +49,6 @@ helm list [flags] [FILTER]
-m, --max int maximum number of releases to fetch (default 256) -m, --max int maximum number of releases to fetch (default 256)
--namespace string show releases within a specific namespace --namespace string show releases within a specific namespace
-o, --offset string next release name in the list, used to offset from start value -o, --offset string next release name in the list, used to offset from start value
--output string specifies the output format: short|wide (default "short")
--pending show pending releases --pending show pending releases
-r, --reverse reverse the sort order -r, --reverse reverse the sort order
-q, --short output short (quiet) listing format -q, --short output short (quiet) listing format

Loading…
Cancel
Save