Added countIPs(long dcId, boolean onlyCountAllocated) to IPAddressDao and IPAddressDaoImpl.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/12fc2b4c Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/12fc2b4c Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/12fc2b4c Branch: refs/heads/master Commit: 12fc2b4c26145721622b34f1a4f40d4e06faea93 Parents: 473f193 Author: Boris Schrijver <[email protected]> Authored: Wed Sep 16 22:15:53 2015 +0200 Committer: Boris Schrijver <[email protected]> Committed: Wed Sep 16 22:15:53 2015 +0200 ---------------------------------------------------------------------- .../src/com/cloud/network/dao/IPAddressDao.java | 2 ++ .../src/com/cloud/network/dao/IPAddressDaoImpl.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/12fc2b4c/engine/schema/src/com/cloud/network/dao/IPAddressDao.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/network/dao/IPAddressDao.java b/engine/schema/src/com/cloud/network/dao/IPAddressDao.java index cb07656..fbf5c57 100644 --- a/engine/schema/src/com/cloud/network/dao/IPAddressDao.java +++ b/engine/schema/src/com/cloud/network/dao/IPAddressDao.java @@ -40,6 +40,8 @@ public interface IPAddressDao extends GenericDao<IPAddressVO, Long> { List<IPAddressVO> listStaticNatPublicIps(long networkId); + int countIPs(long dcId, boolean onlyCountAllocated); + int countIPs(long dcId, long vlanDbId, boolean onlyCountAllocated); int countIPs(long dcId, Long accountId, String vlanId, String vlanGateway, String vlanNetmask); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/12fc2b4c/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java b/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java index 5122876..5c8b9b1 100644 --- a/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/IPAddressDaoImpl.java @@ -56,6 +56,7 @@ public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implemen protected SearchBuilder<IPAddressVO> VlanDbIdSearchUnallocated; protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCount; protected GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCount; + protected GenericSearchBuilder<IPAddressVO, Integer> AllocatedIpCountForDc; protected GenericSearchBuilder<IPAddressVO, Integer> AllIpCountForDashboard; protected SearchBuilder<IPAddressVO> DeleteAllExceptGivenIp; protected GenericSearchBuilder<IPAddressVO, Long> AllocatedIpCountForAccount; @@ -107,6 +108,12 @@ public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implemen AllocatedIpCount.and("allocated", AllocatedIpCount.entity().getAllocatedTime(), Op.NNULL); AllocatedIpCount.done(); + AllocatedIpCountForDc = createSearchBuilder(Integer.class); + AllocatedIpCountForDc.select(null, Func.COUNT, AllocatedIpCountForDc.entity().getAddress()); + AllocatedIpCountForDc.and("dc", AllocatedIpCountForDc.entity().getDataCenterId(), Op.EQ); + AllocatedIpCountForDc.and("allocated", AllocatedIpCountForDc.entity().getAllocatedTime(), Op.NNULL); + AllocatedIpCountForDc.done(); + AllIpCountForDashboard = createSearchBuilder(Integer.class); AllIpCountForDashboard.select(null, Func.COUNT, AllIpCountForDashboard.entity().getAddress()); AllIpCountForDashboard.and("dc", AllIpCountForDashboard.entity().getDataCenterId(), Op.EQ); @@ -282,6 +289,14 @@ public class IPAddressDaoImpl extends GenericDaoBase<IPAddressVO, Long> implemen } @Override + public int countIPs(long dcId, boolean onlyCountAllocated) { + SearchCriteria<Integer> sc = onlyCountAllocated ? AllocatedIpCount.create() : AllIpCount.create(); + sc.setParameters("dc", dcId); + + return customSearch(sc, null).get(0); + } + + @Override public int countIPs(long dcId, long vlanId, boolean onlyCountAllocated) { SearchCriteria<Integer> sc = onlyCountAllocated ? AllocatedIpCount.create() : AllIpCount.create(); sc.setParameters("dc", dcId);
