From b7f45cfbd66f15309e5ab4602f28aa6543d74df1 Mon Sep 17 00:00:00 2001 From: alena Date: Wed, 14 Sep 2011 10:31:52 -0700 Subject: [PATCH] bug 11434: don't execute destroy call when vm is already in Destroyed/Expunging state status 11434: resolved fixed --- server/src/com/cloud/vm/UserVmManagerImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index cd69483e0d4..e026191116a 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2910,10 +2910,15 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager // Verify input parameters UserVmVO vm = _vmDao.findById(vmId); - if (vm == null) { + if (vm == null || vm.getRemoved() != null) { throw new InvalidParameterValueException("Unable to find a virtual machine with id " + vmId); - } + } + if (vm.getState() == State.Destroyed || vm.getState() == State.Expunging) { + s_logger.trace("Vm id=" + vmId + " is already destroyed"); + return vm; + } + userId = accountAndUserValidation(vmId, account, userId, vm); User caller = _userDao.findById(userId);