github.com/vmware/govmomi@v0.51.0/cli/vm/check/relocate.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 check 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 "github.com/vmware/govmomi/vim25/types" 13 ) 14 15 type relocate struct { 16 checkFlag 17 } 18 19 func init() { 20 cli.Register("vm.check.relocate", &relocate{}, true) 21 } 22 23 func (cmd *relocate) Description() string { 24 return `Check if VM can be relocated. 25 26 Examples: 27 govc vm.migrate -spec my-vm | govc vm.check.relocate -vm my-vm` 28 } 29 30 func (cmd *relocate) Run(ctx context.Context, f *flag.FlagSet) error { 31 vm, err := cmd.VirtualMachine() 32 if err != nil { 33 return err 34 } 35 36 if vm == nil { 37 return flag.ErrHelp 38 } 39 40 var spec types.VirtualMachineRelocateSpec 41 if err := cmd.Spec(&spec); err != nil { 42 return err 43 } 44 45 checker, err := cmd.provChecker() 46 if err != nil { 47 return err 48 } 49 50 res, err := checker.CheckRelocate(ctx, vm.Reference(), spec, cmd.testTypes...) 51 if err != nil { 52 return err 53 } 54 55 return cmd.result(ctx, res) 56 }