|
|
|
|
@ -94,17 +94,18 @@ type StepCreateVM struct {
|
|
|
|
|
func (s *StepCreateVM) Run(_ context.Context, state multistep.StateBag) multistep.StepAction {
|
|
|
|
|
ui := state.Get("ui").(packer.Ui)
|
|
|
|
|
d := state.Get("driver").(*driver.Driver)
|
|
|
|
|
vmPath := fmt.Sprintf("%s/%s", s.Location.Folder, s.Location.VMName)
|
|
|
|
|
|
|
|
|
|
vm, err := d.FindVM(s.Location.VMName)
|
|
|
|
|
vm, err := d.FindVM(vmPath)
|
|
|
|
|
|
|
|
|
|
if s.Force == false && err == nil {
|
|
|
|
|
state.Put("error", fmt.Errorf("%s already exists, you can use -force flag to destroy it: %v", s.Location.VMName, err))
|
|
|
|
|
state.Put("error", fmt.Errorf("%s already exists, you can use -force flag to destroy it: %v", vmPath, err))
|
|
|
|
|
return multistep.ActionHalt
|
|
|
|
|
} else if s.Force == true && err == nil {
|
|
|
|
|
ui.Say(fmt.Sprintf("the vm/template %s already exists, but deleting it due to -force flag", s.Location.VMName))
|
|
|
|
|
ui.Say(fmt.Sprintf("the vm/template %s already exists, but deleting it due to -force flag", vmPath))
|
|
|
|
|
err := vm.Destroy()
|
|
|
|
|
if err != nil {
|
|
|
|
|
state.Put("error", fmt.Errorf("error destroying %s: %v", s.Location.VMName, err))
|
|
|
|
|
state.Put("error", fmt.Errorf("error destroying %s: %v", vmPath, err))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|