builder/vmware: only unregister if registration success

pull/919/head
Mitchell Hashimoto 13 years ago
parent e5ae542142
commit ba8a0dbec0

@ -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 {
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) {
} }
} }
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
} }
} }
} }

Loading…
Cancel
Save