Commit ba8a0dbe authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

builder/vmware: only unregister if registration success

parent e5ae5421
...@@ -20,6 +20,8 @@ import ( ...@@ -20,6 +20,8 @@ import (
type stepRun struct { type stepRun struct {
bootTime time.Time bootTime time.Time
vmxPath string vmxPath string
registered bool
} }
func (s *stepRun) Run(state multistep.StateBag) multistep.StepAction { func (s *stepRun) Run(state multistep.StateBag) multistep.StepAction {
...@@ -49,6 +51,8 @@ func (s *stepRun) Run(state multistep.StateBag) multistep.StepAction { ...@@ -49,6 +51,8 @@ func (s *stepRun) Run(state multistep.StateBag) multistep.StepAction {
ui.Error(err.Error()) ui.Error(err.Error())
return multistep.ActionHalt return multistep.ActionHalt
} }
s.registered = true
} }
if err := driver.Start(vmxPath, config.Headless); err != nil { if err := driver.Start(vmxPath, config.Headless); err != nil {
...@@ -91,11 +95,13 @@ func (s *stepRun) Cleanup(state multistep.StateBag) { ...@@ -91,11 +95,13 @@ func (s *stepRun) Cleanup(state multistep.StateBag) {
} }
} }
if remoteDriver, ok := driver.(RemoteDriver); ok { if remoteDriver, ok := driver.(RemoteDriver); ok && s.registered {
ui.Say("Unregistering virtual machine...") ui.Say("Unregistering virtual machine...")
if err := remoteDriver.Unregister(s.vmxPath); err != nil { if err := remoteDriver.Unregister(s.vmxPath); err != nil {
ui.Error(fmt.Sprintf("Error unregistering VM: %s", err)) ui.Error(fmt.Sprintf("Error unregistering VM: %s", err))
} }
s.registered = false
} }
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment