github.com/vmware/govmomi@v0.51.0/cli/datastore/remove.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 datastore 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 "github.com/vmware/govmomi/cli/flags" 13 ) 14 15 type remove struct { 16 *flags.HostSystemFlag 17 *flags.DatastoreFlag 18 } 19 20 func init() { 21 cli.Register("datastore.remove", &remove{}) 22 } 23 24 func (cmd *remove) Register(ctx context.Context, f *flag.FlagSet) { 25 cmd.HostSystemFlag, ctx = flags.NewHostSystemFlag(ctx) 26 cmd.HostSystemFlag.Register(ctx, f) 27 28 cmd.DatastoreFlag, ctx = flags.NewDatastoreFlag(ctx) 29 cmd.DatastoreFlag.Register(ctx, f) 30 } 31 32 func (cmd *remove) Process(ctx context.Context) error { 33 if err := cmd.HostSystemFlag.Process(ctx); err != nil { 34 return err 35 } 36 if err := cmd.DatastoreFlag.Process(ctx); err != nil { 37 return err 38 } 39 return nil 40 } 41 42 func (cmd *remove) Usage() string { 43 return "HOST..." 44 } 45 46 func (cmd *remove) Description() string { 47 return `Remove datastore from HOST. 48 49 Examples: 50 govc datastore.remove -ds nfsDatastore cluster1 51 govc datastore.remove -ds nasDatastore host1 host2 host3` 52 } 53 54 func (cmd *remove) Run(ctx context.Context, f *flag.FlagSet) error { 55 ds, err := cmd.Datastore() 56 if err != nil { 57 return err 58 } 59 60 hosts, err := cmd.HostSystems(f.Args()) 61 if err != nil { 62 return err 63 } 64 65 for _, host := range hosts { 66 hds, err := host.ConfigManager().DatastoreSystem(ctx) 67 if err != nil { 68 return err 69 } 70 71 err = hds.Remove(ctx, ds) 72 if err != nil { 73 return err 74 } 75 } 76 77 return nil 78 }