github.com/vmware/govmomi@v0.51.0/cli/disk/snapshot/create.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 snapshot 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/disk" 14 "github.com/vmware/govmomi/cli/flags" 15 ) 16 17 type create struct { 18 *flags.DatastoreFlag 19 } 20 21 func init() { 22 cli.Register("disk.snapshot.create", &create{}) 23 } 24 25 func (cmd *create) Register(ctx context.Context, f *flag.FlagSet) { 26 cmd.DatastoreFlag, ctx = flags.NewDatastoreFlag(ctx) 27 cmd.DatastoreFlag.Register(ctx, f) 28 } 29 30 func (cmd *create) Usage() string { 31 return "ID DESC" 32 } 33 34 func (cmd *create) Description() string { 35 return `Create snapshot of ID on DS. 36 37 Examples: 38 govc disk.snapshot.create b9fe5f17-3b87-4a03-9739-09a82ddcc6b0 my-disk-snapshot` 39 } 40 41 func (cmd *create) Run(ctx context.Context, f *flag.FlagSet) error { 42 m, err := disk.NewManagerFromFlag(ctx, cmd.DatastoreFlag) 43 if err != nil { 44 return err 45 } 46 47 id := f.Arg(0) 48 desc := f.Arg(1) 49 50 res, err := m.CreateSnapshot(ctx, id, desc) 51 if err != nil { 52 return err 53 } 54 55 fmt.Println(res.Id) 56 57 return nil 58 }