github.com/vmware/govmomi@v0.51.0/cli/vlcm/depot/content/baseimages/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 baseimages 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/depots" 15 ) 16 17 type lsResult []depots.BaseImagesSummary 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 28 func init() { 29 cli.Register("vlcm.depot.baseimages.ls", &ls{}) 30 } 31 32 func (cmd *ls) Register(ctx context.Context, f *flag.FlagSet) { 33 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 34 cmd.ClientFlag.Register(ctx, f) 35 36 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 37 } 38 39 func (cmd *ls) Process(ctx context.Context) error { 40 if err := cmd.ClientFlag.Process(ctx); err != nil { 41 return err 42 } 43 if err := cmd.OutputFlag.Process(ctx); err != nil { 44 return err 45 } 46 47 return nil 48 } 49 50 func (cmd *ls) Usage() string { 51 return "VLCM" 52 } 53 54 func (cmd *ls) Description() string { 55 return `Displays the list of available ESXi base images. 56 57 Examples: 58 govc vlcm.depot.baseimages.ls` 59 } 60 61 func (cmd *ls) Run(ctx context.Context, f *flag.FlagSet) error { 62 rc, err := cmd.RestClient() 63 64 if err != nil { 65 return err 66 } 67 68 dm := depots.NewManager(rc) 69 70 if res, err := dm.ListBaseImages(); err != nil { 71 return err 72 } else { 73 if !cmd.All() { 74 cmd.JSON = true 75 } 76 return cmd.WriteResult(lsResult(res)) 77 } 78 }