github.com/vmware/govmomi@v0.51.0/cli/vlcm/depot/offline/rm.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 offline 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 "github.com/vmware/govmomi/cli/flags" 13 "github.com/vmware/govmomi/vapi/cis/tasks" 14 "github.com/vmware/govmomi/vapi/esx/settings/depots" 15 ) 16 17 type rm struct { 18 *flags.ClientFlag 19 20 depotId string 21 } 22 23 func init() { 24 cli.Register("vlcm.depot.offline.rm", &rm{}) 25 } 26 27 func (cmd *rm) Register(ctx context.Context, f *flag.FlagSet) { 28 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 29 cmd.ClientFlag.Register(ctx, f) 30 31 f.StringVar(&cmd.depotId, "depot-id", "", "The identifier of the depot. Use the 'ls' command to see the list of depots.") 32 } 33 34 func (cmd *rm) Process(ctx context.Context) error { 35 return cmd.ClientFlag.Process(ctx) 36 } 37 38 func (cmd *rm) Usage() string { 39 return "VLCM" 40 } 41 42 func (cmd *rm) Description() string { 43 return `Deletes an offline image depot. 44 45 Execution will block the terminal for the duration of the task. 46 47 Examples: 48 govc vlcm.depot.offline.rm -depot-id=<your depot's identifier>` 49 } 50 51 func (cmd *rm) Run(ctx context.Context, f *flag.FlagSet) error { 52 rc, err := cmd.RestClient() 53 54 if err != nil { 55 return err 56 } 57 58 dm := depots.NewManager(rc) 59 60 if taskId, err := dm.DeleteOfflineDepot(cmd.depotId); err != nil { 61 return err 62 } else if _, err = tasks.NewManager(rc).WaitForCompletion(ctx, taskId); err != nil { 63 return err 64 } else { 65 return nil 66 } 67 }