esxlib/cmd/vmctl/command_network.go

45 lines
784 B
Go
Raw Normal View History

2023-06-24 19:57:08 +00:00
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
}