From 1eb2b8514c62c40d9097e6f36333bd861fbd0d2e Mon Sep 17 00:00:00 2001 From: alena Date: Thu, 19 May 2011 16:35:03 -0700 Subject: [PATCH] bug 9667: when delete port forwarding rule as a part of vm expunge, keep in mind that guest ip addresses can be the same for the same account in different zones status 9667: resolved fixed --- server/src/com/cloud/vm/UserVmManagerImpl.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index f46e0b1300d..e07900a2a69 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -1166,6 +1166,7 @@ public class UserVmManagerImpl implements UserVmManager { } + @Override public void releaseGuestIpAddress(UserVmVO userVm) { ServiceOffering offering = _offeringDao.findById(userVm.getServiceOfferingId()); @@ -1974,7 +1975,7 @@ public class UserVmManagerImpl implements UserVmManager { if(publicIp!=null) { - if((publicIp.getAccountId().longValue() == vm.getAccountId())) + if((publicIp.getAccountId().longValue() == vm.getAccountId()) && (publicIp.getDataCenterId() == vm.getDataCenterId())) { _networkMgr.deleteRule(rule.getId(), Long.valueOf(User.UID_SYSTEM), Long.valueOf(User.UID_SYSTEM)); if(s_logger.isDebugEnabled()) @@ -2218,6 +2219,7 @@ public class UserVmManagerImpl implements UserVmManager { } } + @Override public VMTemplateVO createPrivateTemplateRecord(Long userId, long volumeId, String name, String description, long guestOSId, Boolean requiresHvm, Integer bits, Boolean passwordEnabled, boolean isPublic, boolean featured) throws InvalidParameterValueException { @@ -2940,7 +2942,8 @@ public class UserVmManagerImpl implements UserVmManager { _vmMgr = vmMgr; } - public void run() { + @Override + public void run() { GlobalLock scanLock = GlobalLock.getInternLock("UserVMExpunge"); try { if(scanLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION)) {