diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index c9e66ff4353..ac529881b60 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1081,8 +1081,6 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager _haMgr.cancelDestroy(vm, vm.getHostId()); - _accountMgr.incrementResourceCount(account.getId(), ResourceType.user_vm); - try { if (!_itMgr.stateTransitTo(vm, VirtualMachine.Event.RecoveryRequested, null)) { s_logger.debug("Unable to recover the vm because it is not in the correct state: " + vmId); @@ -1117,6 +1115,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager UsageEventVO usageEvent = new UsageEventVO(EventTypes.EVENT_VM_CREATE, vm.getAccountId(), vm.getDataCenterIdToDeployIn(), vm.getId(), vm.getHostName(), vm.getServiceOfferingId(), vm.getTemplateId(), vm .getHypervisorType().toString()); _usageEventDao.persist(usageEvent); + + _accountMgr.incrementResourceCount(account.getId(), ResourceType.user_vm); + txn.commit(); return _vmDao.findById(vmId); @@ -1642,6 +1643,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager _usageEventDao.persist(usageEvent); String msg = "Failed to deploy Vm with Id: " + vmId; _alertMgr.sendAlert(AlertManager.ALERT_TYPE_USERVM, vm.getDataCenterIdToDeployIn(), vm.getPodIdToDeployIn(), msg, msg); + + _accountMgr.decrementResourceCount(vm.getAccountId(), ResourceType.user_vm); } } } diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 4167b3a2cfe..5f796650b98 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -805,10 +805,6 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene } } finally { if (startedVm == null) { - // decrement only for user VM's and newly created VM - if (vm.getType().equals(VirtualMachine.Type.User) && (vm.getLastHostId() == null)) { - _accountMgr.decrementResourceCount(vm.getAccountId(), ResourceType.user_vm); - } if (canRetry) { try { changeState(vm, Event.OperationFailed, null, work, Step.Done);