github.com/vmware/govmomi@v0.51.0/cli/cluster/draft/info.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 draft 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 infoResult clusters.SettingsClustersSoftwareDraftsInfo 18 19 func (r infoResult) Write(w io.Writer) error { 20 return nil 21 } 22 23 type info struct { 24 *flags.ClientFlag 25 *flags.OutputFlag 26 27 clusterId string 28 draftId string 29 } 30 31 func init() { 32 cli.Register("cluster.draft.info", &info{}) 33 } 34 35 func (cmd *info) Register(ctx context.Context, f *flag.FlagSet) { 36 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 37 cmd.ClientFlag.Register(ctx, f) 38 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 39 40 f.StringVar(&cmd.clusterId, "cluster-id", "", "The identifier of the cluster.") 41 f.StringVar(&cmd.draftId, "draft-id", "", "The identifier of the software draft.") 42 } 43 44 func (cmd *info) Process(ctx context.Context) error { 45 if err := cmd.ClientFlag.Process(ctx); err != nil { 46 return err 47 } 48 if err := cmd.OutputFlag.Process(ctx); err != nil { 49 return err 50 } 51 52 return nil 53 } 54 55 func (cmd *info) Usage() string { 56 return "CLUSTER" 57 } 58 59 func (cmd *info) Description() string { 60 return `Displays the details of a software draft. 61 62 Examples: 63 govc cluster.draft.info -cluster-id=domain-c21 -draft-id=13` 64 } 65 66 func (cmd *info) Run(ctx context.Context, f *flag.FlagSet) error { 67 rc, err := cmd.RestClient() 68 69 if err != nil { 70 return err 71 } 72 73 dm := clusters.NewManager(rc) 74 75 if d, err := dm.GetSoftwareDraft(cmd.clusterId, cmd.draftId); err != nil { 76 return err 77 } else { 78 if !cmd.All() { 79 cmd.JSON = true 80 } 81 return cmd.WriteResult(infoResult(d)) 82 } 83 }