From db558ddc6b409ffa990b0216f2c9ea98442ee55e Mon Sep 17 00:00:00 2001 From: aheeren Date: Thu, 21 Apr 2016 12:27:36 -0400 Subject: [PATCH] Checking for powered off state before deletion (#6283) --- .../resource_vsphere_virtual_machine.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go index cfab8a016f..1c90d6176b 100644 --- a/builtin/providers/vsphere/resource_vsphere_virtual_machine.go +++ b/builtin/providers/vsphere/resource_vsphere_virtual_machine.go @@ -638,18 +638,24 @@ func resourceVSphereVirtualMachineDelete(d *schema.ResourceData, meta interface{ } log.Printf("[INFO] Deleting virtual machine: %s", d.Id()) - - task, err := vm.PowerOff(context.TODO()) + state, err := vm.PowerState(context.TODO()) if err != nil { return err } - err = task.Wait(context.TODO()) - if err != nil { - return err + if state == types.VirtualMachinePowerStatePoweredOn { + task, err := vm.PowerOff(context.TODO()) + if err != nil { + return err + } + + err = task.Wait(context.TODO()) + if err != nil { + return err + } } - task, err = vm.Destroy(context.TODO()) + task, err := vm.Destroy(context.TODO()) if err != nil { return err }