github.com/vmware/govmomi@v0.51.0/cli/cluster/draft/component/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 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 infoResult clusters.SettingsComponentInfo 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 componentId string 30 } 31 32 func init() { 33 cli.Register("cluster.draft.component.info", &info{}) 34 } 35 36 func (cmd *info) Register(ctx context.Context, f *flag.FlagSet) { 37 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 38 cmd.ClientFlag.Register(ctx, f) 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 f.StringVar(&cmd.componentId, "component-id", "", "The identifier of the software component.") 44 } 45 46 func (cmd *info) 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 *info) Usage() string { 58 return "CLUSTER" 59 } 60 61 func (cmd *info) Description() string { 62 return `Displays the details of a component in a software draft. 63 64 Examples: 65 govc cluster.draft.component.info -cluster-id=domain-c21 -draft-id=13 -component-id=NVD-AIE-800` 66 } 67 68 func (cmd *info) 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.GetSoftwareDraftComponent(cmd.clusterId, cmd.draftId, cmd.componentId); err != nil { 78 return err 79 } else { 80 if !cmd.All() { 81 cmd.JSON = true 82 } 83 return cmd.WriteResult(infoResult(d)) 84 } 85 }