From cea14ce8802f1f61522491f2581abbd776436ccf Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 19 Sep 2013 10:57:34 -0700 Subject: [PATCH] CLOUDSTACK-4573: fixed resource limit check when acquire public IP in VPC - update resource count for VPC public ip even when network_id is not set yet. --- server/src/com/cloud/network/NetworkManagerImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 2c00c5bebd6..7042e182284 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -551,7 +551,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L addr.getSystem(), addr.getClass().getName(), addr.getUuid()); } // don't increment resource count for direct and dedicated ip addresses - if (addr.getAssociatedWithNetworkId() != null && !isIpDedicated(addr)) { + if (updateIpResourceCount(addr)) { _resourceLimitMgr.incrementResourceCount(owner.getId(), ResourceType.public_ip); } } @@ -3783,7 +3783,7 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L txn.start(); // don't decrement resource count for direct and dedicated ips - if (ip.getAssociatedWithNetworkId() != null && !isIpDedicated(ip)) { + if (updateIpResourceCount(ip)) { _resourceLimitMgr.decrementResourceCount(_ipAddressDao.findById(addrId).getAllocatedToAccountId(), ResourceType.public_ip); } @@ -3807,7 +3807,10 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L return ip; } - + + protected boolean updateIpResourceCount(IPAddressVO ip) { + return (ip.getAssociatedWithNetworkId() != null || ip.getVpcId() != null) && !isIpDedicated(ip); + } Random _rand = new Random(System.currentTimeMillis());