func (c *autoScaleInfoCmd) render(context *cmd.Context, config *autoScaleConfig, rules []autoScaleRule) error { fmt.Fprintf(context.Stdout, "Metadata filter: %s\n\n", config.GroupByMetadata) var table cmd.Table tableHeader := []string{ "Filter value", "Max container count", "Max memory ratio", "Scale down ratio", "Rebalance on scale", "Enabled", } table.Headers = tableHeader for _, rule := range rules { table.AddRow([]string{ rule.MetadataFilter, strconv.Itoa(rule.MaxContainerCount), strconv.FormatFloat(float64(rule.MaxMemoryRatio), 'f', 4, 32), strconv.FormatFloat(float64(rule.ScaleDownRatio), 'f', 4, 32), strconv.FormatBool(!rule.PreventRebalance), strconv.FormatBool(rule.Enabled), }) } fmt.Fprintf(context.Stdout, "Rules:\n%s", table.String()) return nil }
func (c *keyList) Run(context *cmd.Context, client *cmd.Client) error { url, err := cmd.GetURL("/users/keys") if err != nil { return err } request, err := http.NewRequest("GET", url, nil) if err != nil { return err } resp, err := client.Do(request) if err != nil { return err } defer resp.Body.Close() var keys map[string]string err = json.NewDecoder(resp.Body).Decode(&keys) if err != nil { return err } var table cmd.Table table.Headers = cmd.Row{"Name", "Content"} table.LineSeparator = c.notrunc for name, content := range keys { row := []string{name, content} if !c.notrunc && len(row[1]) > keyTruncate { row[1] = row[1][:keyTruncate] + "..." } table.AddRow(cmd.Row(row)) } table.SortByColumn(0) context.Stdout.Write(table.Bytes()) return nil }