From ba8a0dbec0600a259d9216057739fd71aba68d4c Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 7 Nov 2013 21:19:24 -0800 Subject: [PATCH] builder/vmware: only unregister if registration success --- builder/vmware/step_run.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/builder/vmware/step_run.go b/builder/vmware/step_run.go index 0222173ef..697c71752 100644 --- a/builder/vmware/step_run.go +++ b/builder/vmware/step_run.go @@ -20,6 +20,8 @@ import ( type stepRun struct { bootTime time.Time vmxPath string + + registered bool } 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()) return multistep.ActionHalt } + + s.registered = true } if err := driver.Start(vmxPath, config.Headless); err != nil { @@ -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...") if err := remoteDriver.Unregister(s.vmxPath); err != nil { ui.Error(fmt.Sprintf("Error unregistering VM: %s", err)) } + + s.registered = false } } }