github.com/vmware/govmomi@v0.51.0/cli/disk/register.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 disk 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/flags" 14 ) 15 16 type register struct { 17 *flags.DatastoreFlag 18 } 19 20 func init() { 21 cli.Register("disk.register", ®ister{}) 22 } 23 24 func (cmd *register) Register(ctx context.Context, f *flag.FlagSet) { 25 cmd.DatastoreFlag, ctx = flags.NewDatastoreFlag(ctx) 26 cmd.DatastoreFlag.Register(ctx, f) 27 } 28 29 func (cmd *register) Usage() string { 30 return "PATH [NAME]" 31 } 32 33 func (cmd *register) Description() string { 34 return `Register existing disk on DS. 35 36 Examples: 37 govc disk.register disks/disk1.vmdk my-disk` 38 } 39 40 func (cmd *register) Run(ctx context.Context, f *flag.FlagSet) error { 41 m, err := NewManagerFromFlag(ctx, cmd.DatastoreFlag) 42 if err != nil { 43 return err 44 } 45 46 ds, err := cmd.Datastore() 47 if err != nil { 48 return err 49 } 50 51 path := ds.NewURL(f.Arg(0)).String() 52 53 obj, err := m.RegisterDisk(ctx, path, f.Arg(1)) 54 if err != nil { 55 return err 56 } 57 58 fmt.Println(obj.Config.Id.Id) 59 60 return nil 61 }