github.com/vmware/govmomi@v0.51.0/cli/host/autostart/add.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 autostart 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 "strings" 12 13 "github.com/vmware/govmomi/cli" 14 "github.com/vmware/govmomi/cli/flags" 15 "github.com/vmware/govmomi/vim25/types" 16 ) 17 18 type add struct { 19 *AutostartFlag 20 // from types.AutoStartPowerInfo 21 StartOrder int32 22 StartDelay int32 23 WaitForHeartbeat string 24 StartAction string 25 StopDelay int32 26 StopAction string 27 } 28 29 func init() { 30 cli.Register("host.autostart.add", &add{}) 31 } 32 33 var waitHeartbeatTypes = types.AutoStartWaitHeartbeatSetting("").Strings() 34 35 func (cmd *add) Register(ctx context.Context, f *flag.FlagSet) { 36 cmd.AutostartFlag, ctx = newAutostartFlag(ctx) 37 cmd.AutostartFlag.Register(ctx, f) 38 39 cmd.StartOrder = -1 40 cmd.StartDelay = -1 41 cmd.StopDelay = -1 42 f.Var(flags.NewInt32(&cmd.StartOrder), "start-order", "Start Order") 43 f.Var(flags.NewInt32(&cmd.StartDelay), "start-delay", "Start Delay") 44 f.Var(flags.NewInt32(&cmd.StopDelay), "stop-delay", "Stop Delay") 45 f.StringVar(&cmd.StartAction, "start-action", "powerOn", "Start Action") 46 f.StringVar(&cmd.StopAction, "stop-action", "systemDefault", "Stop Action") 47 f.StringVar(&cmd.WaitForHeartbeat, "wait", string(types.AutoStartWaitHeartbeatSettingSystemDefault), 48 fmt.Sprintf("Wait for Hearbeat Setting (%s)", strings.Join(waitHeartbeatTypes, "|"))) 49 } 50 51 func (cmd *add) Process(ctx context.Context) error { 52 if err := cmd.AutostartFlag.Process(ctx); err != nil { 53 return err 54 } 55 return nil 56 } 57 58 func (cmd *add) Usage() string { 59 return "VM..." 60 } 61 62 func (cmd *add) Run(ctx context.Context, f *flag.FlagSet) error { 63 powerInfo := types.AutoStartPowerInfo{ 64 StartOrder: cmd.StartOrder, 65 StartDelay: cmd.StartDelay, 66 WaitForHeartbeat: types.AutoStartWaitHeartbeatSetting(cmd.WaitForHeartbeat), 67 StartAction: cmd.StartAction, 68 StopDelay: cmd.StopDelay, 69 StopAction: cmd.StopAction, 70 } 71 return cmd.ReconfigureVMs(f.Args(), powerInfo) 72 }