bug 8062: cleanup PF/LB rules before calling advanceExpunge for the vm.

status 8062: resolved fixed
This commit is contained in:
alena 2011-01-18 23:35:19 -08:00
parent fa2ae5793a
commit 5f072009de
1 changed files with 9 additions and 7 deletions

View File

@ -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());