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.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cea14ce8 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cea14ce8 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cea14ce8 Branch: refs/heads/4.2 Commit: cea14ce8802f1f61522491f2581abbd776436ccf Parents: a14145b Author: Alena Prokharchyk <alena.prokharc...@citrix.com> Authored: Thu Sep 19 10:57:34 2013 -0700 Committer: Alena Prokharchyk <alena.prokharc...@citrix.com> Committed: Thu Sep 19 10:57:34 2013 -0700 ---------------------------------------------------------------------- server/src/com/cloud/network/NetworkManagerImpl.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cea14ce8/server/src/com/cloud/network/NetworkManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 2c00c5b..7042e18 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());