diff --git a/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDao.java b/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDao.java index 2e478775730..8bf07ecfe9e 100644 --- a/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDao.java +++ b/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDao.java @@ -36,7 +36,7 @@ public interface QuotaBalanceDao extends GenericDao { List findQuotaBalance(Long accountId, Long domainId, Date startDate, Date endDate); - List findQuotaBalance(Long accountId, Long domainId, Date startDate); + List lastQuotaBalanceVO(Long accountId, Long domainId, Date startDate); BigDecimal lastQuotaBalance(Long accountId, Long domainId, Date startDate); diff --git a/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDaoImpl.java b/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDaoImpl.java index 4cb4b3f6d8f..628777eda81 100644 --- a/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDaoImpl.java +++ b/framework/quota/src/org/apache/cloudstack/quota/dao/QuotaBalanceDaoImpl.java @@ -127,7 +127,9 @@ public class QuotaBalanceDaoImpl extends GenericDaoBase im return new ArrayList(); } quotaUsageRecords = listBy(sc); - quotaUsageRecords.addAll(findQuotaBalance(accountId, domainId, startDate)); + if (quotaUsageRecords.size() == 0) { + quotaUsageRecords.addAll(lastQuotaBalanceVO(accountId, domainId, startDate)); + } } finally { txn.close(); } @@ -136,9 +138,10 @@ public class QuotaBalanceDaoImpl extends GenericDaoBase im return quotaUsageRecords; } + @SuppressWarnings("deprecation") @Override - public List findQuotaBalance(final Long accountId, final Long domainId, final Date startDate) { + public List lastQuotaBalanceVO(final Long accountId, final Long domainId, final Date pivotDate) { final short opendb = TransactionLegacy.currentTxn().getDatabaseId(); TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.USAGE_DB); @@ -155,8 +158,8 @@ public class QuotaBalanceDaoImpl extends GenericDaoBase im if (domainId != null) { sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId); } - if ((startDate != null)) { - sc.addAnd("updatedOn", SearchCriteria.Op.LTEQ, startDate); + if ((pivotDate != null)) { + sc.addAnd("updatedOn", SearchCriteria.Op.LTEQ, pivotDate); } quotaUsageRecords = search(sc, filter); @@ -182,7 +185,7 @@ public class QuotaBalanceDaoImpl extends GenericDaoBase im @Override public BigDecimal lastQuotaBalance(final Long accountId, final Long domainId, Date startDate) { - List quotaBalance = findQuotaBalance(accountId, domainId, startDate); + List quotaBalance = lastQuotaBalanceVO(accountId, domainId, startDate); if (quotaBalance.size() == 0) { new InvalidParameterValueException("There are no balance entries on or before the requested date."); } diff --git a/plugins/database/quota/src/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java b/plugins/database/quota/src/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java index 21f3ca26318..56e4cedf3ec 100644 --- a/plugins/database/quota/src/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java +++ b/plugins/database/quota/src/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java @@ -175,7 +175,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder { BigDecimal totalUsage = new BigDecimal(0); quotaUsage.add(new QuotaUsageVO());// boundary QuotaUsageVO prev = quotaUsage.get(0); - s_logger.info("createQuotaStatementResponse record count=" + quotaUsage.size()); + //s_logger.info("createQuotaStatementResponse record count=" + quotaUsage.size()); for (final QuotaUsageVO quotaRecord : quotaUsage) { //s_logger.info("createQuotaStatementResponse Type=" + quotaRecord.getUsageType() + " usage=" + usage + " name" + quotaRecord.getUsageItemId()); if (type != quotaRecord.getUsageType()) { @@ -385,7 +385,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder { @Override public List getQuotaBalance(QuotaBalanceCmd cmd) { - return _quotaService.getQuotaBalance(cmd.getAccountId(), cmd.getAccountName(), cmd.getDomainId(), cmd.getStartDate(), cmd.getEndDate()); + return _quotaService.findQuotaBalanceVO(cmd.getAccountId(), cmd.getAccountName(), cmd.getDomainId(), cmd.getStartDate(), cmd.getEndDate()); } @Override diff --git a/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaService.java b/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaService.java index 69b52837af6..8ee39b878af 100644 --- a/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaService.java +++ b/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaService.java @@ -28,7 +28,7 @@ public interface QuotaService extends PluggableService { List getQuotaUsage(Long accountId, String accountName, Long domainId, Integer usageType, Date startDate, Date endDate); - List getQuotaBalance(Long accountId, String accountName, Long domainId, Date startDate, Date endDate); + List findQuotaBalanceVO(Long accountId, String accountName, Long domainId, Date startDate, Date endDate); Date computeAdjustedTime(Date date); diff --git a/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaServiceImpl.java b/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaServiceImpl.java index 06702061bff..3dda70fbb6b 100644 --- a/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaServiceImpl.java +++ b/plugins/database/quota/src/org/apache/cloudstack/quota/QuotaServiceImpl.java @@ -137,7 +137,7 @@ public class QuotaServiceImpl extends ManagerBase implements QuotaService, Confi } @Override - public List getQuotaBalance(Long accountId, String accountName, Long domainId, Date startDate, Date endDate) { + public List findQuotaBalanceVO(Long accountId, String accountName, Long domainId, Date startDate, Date endDate) { final short opendb = TransactionLegacy.currentTxn().getDatabaseId(); TransactionLegacy.open(TransactionLegacy.CLOUD_DB).close(); @@ -169,7 +169,7 @@ public class QuotaServiceImpl extends ManagerBase implements QuotaService, Confi // adjust start date to end of day as there is no end date Date adjustedStartDate = computeAdjustedTime(_respBldr.startOfNextDay(startDate)); s_logger.debug("getQuotaBalance1: Getting quota balance records for account: " + accountId + ", domainId: " + domainId + ", on or before " + adjustedStartDate); - List qbrecords = _quotaBalanceDao.findQuotaBalance(accountId, domainId, adjustedStartDate); + List qbrecords = _quotaBalanceDao.lastQuotaBalanceVO(accountId, domainId, adjustedStartDate); s_logger.info("Found records size=" + qbrecords.size()); if (qbrecords.size() == 0) { throw new InvalidParameterValueException("Incorrect Date there are no quota records before this date " + adjustedStartDate); diff --git a/usage/src/org/apache/cloudstack/quota/job/QuotaAlertManagerImpl.java b/usage/src/org/apache/cloudstack/quota/job/QuotaAlertManagerImpl.java index 94f9c360c19..085435be9b7 100644 --- a/usage/src/org/apache/cloudstack/quota/job/QuotaAlertManagerImpl.java +++ b/usage/src/org/apache/cloudstack/quota/job/QuotaAlertManagerImpl.java @@ -157,9 +157,11 @@ public class QuotaAlertManagerImpl extends ManagerBase implements QuotaAlertMana @Override public void checkAndSendQuotaAlertEmails() { + s_logger.info("Running checkAndSendQuotaAlertEmails"); List deferredQuotaEmailList = new ArrayList(); final BigDecimal zeroBalance = new BigDecimal(0); for (final QuotaAccountVO quotaAccount : _quotaAcc.listAll()) { + s_logger.info("checkAndSendQuotaAlertEmails accId=" + quotaAccount.getId()); BigDecimal accountBalance = quotaAccount.getQuotaBalance(); Date balanceDate = quotaAccount.getQuotaBalanceDate(); Date alertDate = quotaAccount.getQuotaAlertDate();