本文整理汇总了Golang中github.com/tsuru/tsuru/cmd.Table.AddRow方法的典型用法代码示例。如果您正苦于以下问题:Golang Table.AddRow方法的具体用法?Golang Table.AddRow怎么用?Golang Table.AddRow使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/tsuru/tsuru/cmd.Table
的用法示例。
在下文中一共展示了Table.AddRow方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: render
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
}
示例2: Run
func (c *InfoCmd) Run(context *cmd.Context, client *cmd.Client) error {
url, err := cmd.GetURL("/docker/bs")
if err != nil {
return err
}
request, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
var conf provision.ScopedConfig
err = json.NewDecoder(response.Body).Decode(&conf)
if err != nil {
return err
}
fmt.Fprintf(context.Stdout, "Image: %s\n\nEnvironment Variables [Default]:\n", conf.Extra["image"])
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
for _, envVar := range conf.Envs {
t.AddRow(cmd.Row([]string{envVar.Name, fmt.Sprintf("%v", envVar.Value)}))
}
context.Stdout.Write(t.Bytes())
for _, pool := range conf.Pools {
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
fmt.Fprintf(context.Stdout, "\nEnvironment Variables [%s]:\n", pool.Name)
for _, envVar := range pool.Envs {
t.AddRow(cmd.Row([]string{envVar.Name, fmt.Sprintf("%v", envVar.Value)}))
}
context.Stdout.Write(t.Bytes())
}
return nil
}
示例3: renderHistoryTable
func renderHistoryTable(history []healingEvent, filter string, ctx *cmd.Context) {
fmt.Fprintln(ctx.Stdout, strings.ToUpper(filter[:1])+filter[1:]+":")
headers := cmd.Row([]string{"Start", "Finish", "Success", "Failing", "Created", "Error"})
t := cmd.Table{Headers: headers}
for i := len(history) - 1; i >= 0; i-- {
event := history[i]
if event.Action != filter+"-healing" {
continue
}
data := make([]string, 2)
if filter == "node" {
data[0] = event.FailingNode.Address
data[1] = event.CreatedNode.Address
} else {
data[0] = event.FailingContainer.ID
data[1] = event.CreatedContainer.ID
if len(data[0]) > 10 {
data[0] = data[0][:10]
}
if len(data[1]) > 10 {
data[1] = data[1][:10]
}
}
t.AddRow(cmd.Row([]string{
event.StartTime.Local().Format(time.Stamp),
event.EndTime.Local().Format(time.Stamp),
fmt.Sprintf("%t", event.Successful),
data[0],
data[1],
event.Error,
}))
}
t.LineSeparator = true
ctx.Stdout.Write(t.Bytes())
}
示例4: Run
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
}
示例5: Run
func (listPoolsInTheSchedulerCmd) Run(ctx *cmd.Context, client *cmd.Client) error {
t := cmd.Table{Headers: cmd.Row([]string{"Pools", "Teams"})}
url, err := cmd.GetURL("/docker/pool")
if err != nil {
return err
}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var pools []Pool
err = json.Unmarshal(body, &pools)
for _, p := range pools {
t.AddRow(cmd.Row([]string{p.Name, strings.Join(p.Teams, ", ")}))
}
t.Sort()
ctx.Stdout.Write(t.Bytes())
return nil
}
示例6: Run
func (listNodesInTheSchedulerCmd) Run(ctx *cmd.Context, client *cmd.Client) error {
url, err := cmd.GetURL("/node")
if err != nil {
return err
}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var nodes []map[string]string
err = json.Unmarshal(body, &nodes)
t := cmd.Table{Headers: cmd.Row([]string{"Address"})}
for _, n := range nodes {
t.AddRow(cmd.Row([]string{n["Address"]}))
}
t.Sort()
ctx.Stdout.Write(t.Bytes())
return nil
}
示例7: Run
func (listPoolsInTheSchedulerCmd) Run(ctx *cmd.Context, client *cmd.Client) error {
t := cmd.Table{Headers: cmd.Row([]string{"Pools", "Teams", "Public"})}
url, err := cmd.GetURL("/pool")
if err != nil {
return err
}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
resp, err := client.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
var pools []provision.Pool
err = json.Unmarshal(body, &pools)
for _, p := range pools {
public := ""
if p.Public {
public = " X "
}
defaultFlag := ""
if p.Default {
defaultFlag = " (default)"
}
t.AddRow(cmd.Row([]string{p.Name + defaultFlag, strings.Join(p.Teams, ", "), public}))
}
t.Sort()
ctx.Stdout.Write(t.Bytes())
return nil
}
示例8: Run
func (poolList) Run(context *cmd.Context, client *cmd.Client) error {
url, err := cmd.GetURL("/pools")
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 pools ListPoolResponse
err = json.NewDecoder(resp.Body).Decode(&pools)
if err != nil {
return err
}
t := cmd.Table{Headers: cmd.Row([]string{"Team", "Pools"})}
for _, pool := range pools.PoolsByTeam {
t.AddRow(cmd.Row([]string{pool.Team, strings.Join(pool.Pools, ", ")}))
}
t.Sort()
context.Stdout.Write(t.Bytes())
tp := cmd.Table{Headers: cmd.Row([]string{"Public Pools"})}
for _, pool := range pools.PublicPools {
tp.AddRow(cmd.Row([]string{pool.Name}))
}
tp.Sort()
context.Stdout.Write([]byte("\n"))
context.Stdout.Write(tp.Bytes())
return nil
}
示例9: Run
func (listNodesInTheSchedulerCmd) Run(ctx *cmd.Context, client *cmd.Client) error {
url, err := cmd.GetURL("/docker/node")
if err != nil {
return err
}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
resp, err := client.Do(req)
if err != nil {
return err
}
var result map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&result)
if err != nil {
return err
}
machineMap := map[string]map[string]interface{}{}
if result["machines"] != nil {
machines := result["machines"].([]interface{})
for _, m := range machines {
machine := m.(map[string]interface{})
machineMap[machine["Address"].(string)] = m.(map[string]interface{})
}
}
t := cmd.Table{Headers: cmd.Row([]string{"Address", "IaaS ID", "Status", "Metadata"}), LineSeparator: true}
var nodes []interface{}
if result["nodes"] != nil {
nodes = result["nodes"].([]interface{})
}
for _, n := range nodes {
node := n.(map[string]interface{})
addr := node["Address"].(string)
status := node["Status"].(string)
result := []string{}
metadataField, _ := node["Metadata"]
if metadataField != nil {
metadata := metadataField.(map[string]interface{})
for key, value := range metadata {
result = append(result, fmt.Sprintf("%s=%s", key, value.(string)))
}
}
sort.Strings(result)
m, ok := machineMap[urlToHost(addr)]
var iaasId string
if ok {
iaasId = m["Id"].(string)
}
t.AddRow(cmd.Row([]string{addr, iaasId, status, strings.Join(result, "\n")}))
}
t.Sort()
ctx.Stdout.Write(t.Bytes())
return nil
}
示例10: Run
func (listNodesInTheSchedulerCmd) Run(ctx *cmd.Context, client *cmd.Client) error {
t := cmd.Table{Headers: cmd.Row([]string{"ID", "Address", "Team"})}
nodes, err := listNodesInTheScheduler()
if err != nil {
return err
}
for _, n := range nodes {
t.AddRow(cmd.Row([]string{n.ID, n.Address, strings.Join(n.Teams, ", ")}))
}
t.Sort()
ctx.Stdout.Write(t.Bytes())
return nil
}
示例11: Run
func (c *dockerLogInfo) Run(context *cmd.Context, client *cmd.Client) error {
u, err := cmd.GetURL("/docker/logs")
if err != nil {
return err
}
request, err := http.NewRequest("GET", u, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
var conf map[string]container.DockerLogConfig
err = json.NewDecoder(response.Body).Decode(&conf)
if err != nil {
return err
}
baseConf := conf[""]
delete(conf, "")
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
fmt.Fprintf(context.Stdout, "Log driver [default]: %s\n", baseConf.Driver)
for optName, optValue := range baseConf.LogOpts {
t.AddRow(cmd.Row([]string{optName, optValue}))
}
if t.Rows() > 0 {
t.Sort()
context.Stdout.Write(t.Bytes())
}
poolNames := make([]string, 0, len(baseConf.LogOpts))
for poolName := range conf {
poolNames = append(poolNames, poolName)
}
sort.Strings(poolNames)
for _, poolName := range poolNames {
poolConf := conf[poolName]
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
fmt.Fprintf(context.Stdout, "\nLog driver [pool %s]: %s\n", poolName, poolConf.Driver)
for optName, optValue := range poolConf.LogOpts {
t.AddRow(cmd.Row([]string{optName, optValue}))
}
if t.Rows() > 0 {
t.Sort()
context.Stdout.Write(t.Bytes())
}
}
return nil
}
示例12: Run
func (c *dockerLogInfo) Run(context *cmd.Context, client *cmd.Client) error {
url, err := cmd.GetURL("/docker/logs")
if err != nil {
return err
}
request, err := http.NewRequest("GET", url, nil)
if err != nil {
return err
}
response, err := client.Do(request)
if err != nil {
return err
}
defer response.Body.Close()
var conf provision.ScopedConfig
err = json.NewDecoder(response.Body).Decode(&conf)
if err != nil {
return err
}
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
for _, envVar := range conf.Envs {
if envVar.Name == container.DockerLogDriverConfig {
fmt.Fprintf(context.Stdout, "Log driver [default]: %s\n", envVar.Value)
continue
}
t.AddRow(cmd.Row([]string{envVar.Name, fmt.Sprintf("%v", envVar.Value)}))
}
if t.Rows() > 0 {
t.Sort()
context.Stdout.Write(t.Bytes())
}
sort.Sort(provision.ConfigPoolEntryList(conf.Pools))
for _, pool := range conf.Pools {
t := cmd.Table{Headers: cmd.Row([]string{"Name", "Value"})}
for _, envVar := range pool.Envs {
if envVar.Name == container.DockerLogDriverConfig {
fmt.Fprintf(context.Stdout, "\nLog driver [pool %s]: %s\n", pool.Name, envVar.Value)
continue
}
t.AddRow(cmd.Row([]string{envVar.Name, fmt.Sprintf("%v", envVar.Value)}))
}
if t.Rows() > 0 {
t.Sort()
context.Stdout.Write(t.Bytes())
}
}
return nil
}