From bfd83eebbe44770eb2b6314b32640c0f5d5374c5 Mon Sep 17 00:00:00 2001 From: Ken Pepple Date: Sat, 7 Mar 2015 16:29:59 +0100 Subject: [PATCH] fixes Issue #750 by allowing virtualbox driver start command to start VMs in saved state and resume VMs in paused state. Signed-off-by: Ken Pepple converted to switch statement per @nathanleclaire suggestion Signed-off-by: Ken Pepple small typo Signed-off-by: Ken Pepple --- drivers/virtualbox/virtualbox.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index a59c3e0e57..ed65ee4369 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -344,11 +344,19 @@ func (d *Driver) Start() error { return err } - if s == state.Stopped { + switch s { + case state.Stopped, state.Saved: if err := vbm("startvm", d.MachineName, "--type", "headless"); err != nil { return err } log.Infof("Waiting for VM to start...") + case state.Paused: + if err := vbm("controlvm", d.MachineName, "resume", "--type", "headless"); err != nil { + return err + } + log.Infof("Resuming VM ...") + default: + log.Infof("VM not in restartable state") } return ssh.WaitForTCP(fmt.Sprintf("localhost:%d", d.SSHPort))