From 5f072009de10a67c484c7826dd57842c606b1ebc Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 18 Jan 2011 23:35:19 -0800 Subject: [PATCH] bug 8062: cleanup PF/LB rules before calling advanceExpunge for the vm. status 8062: resolved fixed --- server/src/com/cloud/vm/UserVmManagerImpl.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index b3e9a117e2f..b214c088ea7 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1135,20 +1135,16 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager @Override public boolean expunge(UserVmVO vm, long callerUserId, Account caller) { try { - if (!_itMgr.advanceExpunge(vm, _accountMgr.getSystemUser(), caller)) { - s_logger.info("Did not expunge " + vm); - return false; - } + //Cleanup LB/PF rules before expunging the vm long vmId = vm.getId(); - - //cleanup port forwarding rules + //cleanup port forwarding rules if (_rulesMgr.revokePortForwardingRule(vmId)) { s_logger.debug("Port forwarding rules are removed successfully as a part of vm id=" + vmId + " expunge"); } else { s_logger.warn("Fail to remove port forwarding rules as a part of vm id=" + vmId + " expunge"); } - + //cleanup load balancer rules if (_lbMgr.removeVmFromLoadBalancers(vmId)) { s_logger.debug("LB rules are removed successfully as a part of vm id=" + vmId + " expunge"); @@ -1156,6 +1152,12 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager s_logger.warn("Fail to remove lb rules as a part of vm id=" + vmId + " expunge"); } + + if (!_itMgr.advanceExpunge(vm, _accountMgr.getSystemUser(), caller)) { + s_logger.info("Did not expunge " + vm); + return false; + } + _networkGroupMgr.removeInstanceFromGroups(vm.getId()); removeInstanceFromGroup(vm.getId());