github.com/vmware/govmomi@v0.51.0/cli/cluster/draft/component/ls.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package component 6 7 import ( 8 "context" 9 "flag" 10 "io" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/flags" 14 "github.com/vmware/govmomi/vapi/esx/settings/clusters" 15 ) 16 17 type lsResult map[string]clusters.SettingsComponentInfo 18 19 func (r lsResult) Write(w io.Writer) error { 20 return nil 21 } 22 23 type ls struct { 24 *flags.ClientFlag 25 *flags.OutputFlag 26 27 clusterId string 28 draftId string 29 } 30 31 func init() { 32 cli.Register("cluster.draft.component.ls", &ls{}) 33 } 34 35 func (cmd *ls) Register(ctx context.Context, f *flag.FlagSet) { 36 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 37 cmd.ClientFlag.Register(ctx, f) 38 39 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 40 41 f.StringVar(&cmd.clusterId, "cluster-id", "", "The identifier of the cluster.") 42 f.StringVar(&cmd.draftId, "draft-id", "", "The identifier of the software draft.") 43 44 } 45 46 func (cmd *ls) Process(ctx context.Context) error { 47 if err := cmd.ClientFlag.Process(ctx); err != nil { 48 return err 49 } 50 if err := cmd.OutputFlag.Process(ctx); err != nil { 51 return err 52 } 53 54 return nil 55 } 56 57 func (cmd *ls) Usage() string { 58 return "CLUSTER" 59 } 60 61 func (cmd *ls) Description() string { 62 return `Displays the list of components in a software draft. 63 64 Examples: 65 govc cluster.draft.component.ls -cluster-id=domain-c21 -draft-id=13` 66 } 67 68 func (cmd *ls) Run(ctx context.Context, f *flag.FlagSet) error { 69 rc, err := cmd.RestClient() 70 71 if err != nil { 72 return err 73 } 74 75 dm := clusters.NewManager(rc) 76 77 if d, err := dm.ListSoftwareDraftComponents(cmd.clusterId, cmd.draftId); err != nil { 78 return err 79 } else { 80 if !cmd.All() { 81 cmd.JSON = true 82 } 83 return cmd.WriteResult(lsResult(d)) 84 } 85 }