45 lines
784 B
Go
45 lines
784 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"os"
|
||
|
|
||
|
"esxlib/api/cloud"
|
||
|
"esxlib/pkg/pprint"
|
||
|
|
||
|
"github.com/urfave/cli/v2"
|
||
|
)
|
||
|
|
||
|
var netCommands = []*cli.Command{
|
||
|
{
|
||
|
Name: "list",
|
||
|
Aliases: []string{"ls", "list"},
|
||
|
Usage: "list networks",
|
||
|
Description: "list networks",
|
||
|
Flags: []cli.Flag{
|
||
|
&zoneIdFlag,
|
||
|
},
|
||
|
Action: netCommandList,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
func netCommandList(ctx *cli.Context) error {
|
||
|
client := mustGetClient(ctx)
|
||
|
|
||
|
resp, err := client.NetworksList(context.Background(), &cloud.NetworksListRequest{
|
||
|
ZoneId: ctx.String(zoneIdFlag.Name),
|
||
|
})
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
out := pprint.NewPrinter("human", os.Stdout)
|
||
|
|
||
|
out.Headers("ID", "Name", "VLAN")
|
||
|
for _, item := range resp.Networks {
|
||
|
out.Fields(item.Id, item.Name, item.VLAN)
|
||
|
}
|
||
|
out.Flush()
|
||
|
return nil
|
||
|
}
|