From 2027aa9a8ab2599f833253855fada7e937fbbb32 Mon Sep 17 00:00:00 2001 From: alena Date: Fri, 18 Mar 2011 16:30:08 -0700 Subject: [PATCH] bug 9044: don't cleanup vm resources if the vm is already expunged status 9044: resolved fixed --- .../src/com/cloud/vm/UserVmManagerImpl.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index c36c82eccde..937b8866767 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1127,17 +1127,22 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager return false; } - //Cleanup vm resources - all the PF/LB/StaticNat rules associated with vm - s_logger.debug("Starting cleaning up vm " + vm + " resources..."); - if (cleanupVmResources(vm.getId())) { - s_logger.debug("Successfully cleaned up vm " + vm + " resources as a part of expunge process"); - } else { - s_logger.warn("Failed to cleanup resources as a part of vm " + vm + " expunge"); - return false; + //Only if vm is not expunged already, cleanup it's resources + if (vm != null && vm.getRemoved() == null) { + //Cleanup vm resources - all the PF/LB/StaticNat rules associated with vm + s_logger.debug("Starting cleaning up vm " + vm + " resources..."); + if (cleanupVmResources(vm.getId())) { + s_logger.debug("Successfully cleaned up vm " + vm + " resources as a part of expunge process"); + } else { + s_logger.warn("Failed to cleanup resources as a part of vm " + vm + " expunge"); + return false; + } + + _itMgr.remove(vm, _accountMgr.getSystemUser(), caller); } - - _itMgr.remove(vm, _accountMgr.getSystemUser(), caller); - return true; + + return true; + } catch (ResourceUnavailableException e) { s_logger.warn("Unable to expunge " + vm, e); return false;