You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2020/07/06 09:24:23 UTC
[cloudstack] branch 4.14 updated: quota: Adding pagination for
quotaSummary and quotaTariffList (#4186)
This is an automated email from the ASF dual-hosted git repository.
rohit pushed a commit to branch 4.14
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.14 by this push:
new b64d0b2 quota: Adding pagination for quotaSummary and quotaTariffList (#4186)
b64d0b2 is described below
commit b64d0b2d92dbd81910c895510fe818c3a7a54f8c
Author: davidjumani <dj...@gmail.com>
AuthorDate: Mon Jul 6 14:54:04 2020 +0530
quota: Adding pagination for quotaSummary and quotaTariffList (#4186)
Adds pagination and keyword search support to quotaSummary and quotaTariffList
Fixes: #4181
---
.../main/java/com/cloud/user/dao/AccountDao.java | 2 ++
.../java/com/cloud/user/dao/AccountDaoImpl.java | 12 +++++--
.../cloudstack/quota/dao/QuotaAccountDao.java | 3 ++
.../cloudstack/quota/dao/QuotaAccountDaoImpl.java | 14 ++++++--
.../cloudstack/quota/dao/QuotaTariffDao.java | 9 +++--
.../cloudstack/quota/dao/QuotaTariffDaoImpl.java | 39 +++++++++++++++-----
.../cloudstack/api/command/QuotaSummaryCmd.java | 9 ++---
.../cloudstack/api/command/QuotaTariffListCmd.java | 7 ++--
.../api/response/QuotaResponseBuilder.java | 10 ++++--
.../api/response/QuotaResponseBuilderImpl.java | 42 +++++++++++++++-------
.../api/response/QuotaSummaryResponse.java | 12 +++----
.../api/command/QuotaTariffListCmdTest.java | 4 ++-
12 files changed, 118 insertions(+), 45 deletions(-)
diff --git a/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java b/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
index b97f318..d7754e1 100644
--- a/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
+++ b/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
@@ -31,6 +31,8 @@ public interface AccountDao extends GenericDao<AccountVO, Long> {
List<AccountVO> findAccountsLike(String accountName);
+ Pair<List<AccountVO>, Integer> findAccountsLike(String accountName, Filter filter);
+
List<AccountVO> findActiveAccounts(Long maxAccountId, Filter filter);
List<AccountVO> findRecentlyDeletedAccounts(Long maxAccountId, Date earliestRemovedDate, Filter filter);
diff --git a/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java b/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
index 956f8a8..81bd545 100644
--- a/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
@@ -29,6 +29,7 @@ import com.cloud.utils.db.GenericSearchBuilder;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op;
+import com.google.common.base.Strings;
import com.cloud.utils.db.TransactionLegacy;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -157,9 +158,16 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
@Override
public List<AccountVO> findAccountsLike(String accountName) {
+ return findAccountsLike(accountName, null).first();
+ }
+
+ @Override
+ public Pair<List<AccountVO>, Integer> findAccountsLike(String accountName, Filter filter) {
SearchCriteria<AccountVO> sc = createSearchCriteria();
- sc.addAnd("accountName", SearchCriteria.Op.LIKE, "%" + accountName + "%");
- return listBy(sc);
+ if (!Strings.isNullOrEmpty(accountName)) {
+ sc.addAnd("accountName", SearchCriteria.Op.LIKE, "%" + accountName + "%");
+ }
+ return searchAndCount(sc, filter);
}
@Override
diff --git a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDao.java b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDao.java
index d1b441b..ff3fb7c 100644
--- a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDao.java
+++ b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDao.java
@@ -20,12 +20,15 @@ import java.util.List;
import org.apache.cloudstack.quota.vo.QuotaAccountVO;
+import com.cloud.utils.Pair;
import com.cloud.utils.db.GenericDao;
public interface QuotaAccountDao extends GenericDao<QuotaAccountVO, Long> {
List<QuotaAccountVO> listAllQuotaAccount();
+ Pair<List<QuotaAccountVO>,Integer> listAllQuotaAccount(Long startIndex, Long pageSize);
+
QuotaAccountVO findByIdQuotaAccount(Long id);
QuotaAccountVO persistQuotaAccount(QuotaAccountVO entity);
diff --git a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDaoImpl.java b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDaoImpl.java
index 2e28d33..23df0d4 100644
--- a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDaoImpl.java
+++ b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaAccountDaoImpl.java
@@ -22,6 +22,8 @@ import org.apache.cloudstack.quota.vo.QuotaAccountVO;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import com.cloud.utils.Pair;
+import com.cloud.utils.db.Filter;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.db.TransactionCallback;
@@ -34,10 +36,16 @@ public class QuotaAccountDaoImpl extends GenericDaoBase<QuotaAccountVO, Long> im
@Override
public List<QuotaAccountVO> listAllQuotaAccount() {
- return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<List<QuotaAccountVO>>() {
+ return listAllQuotaAccount(null, null).first();
+ }
+
+ @Override
+ public Pair<List<QuotaAccountVO>,Integer> listAllQuotaAccount(final Long startIndex, final Long pageSize) {
+ return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<Pair<List<QuotaAccountVO>,Integer>>() {
@Override
- public List<QuotaAccountVO> doInTransaction(final TransactionStatus status) {
- return listAll();
+ public Pair<List<QuotaAccountVO>,Integer> doInTransaction(final TransactionStatus status) {
+ Filter filter = new Filter(QuotaAccountVO.class, "accountId", true, startIndex, pageSize);
+ return searchAndCount(null, filter);
}
});
}
diff --git a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDao.java b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDao.java
index fda2cf6..e2ed312 100644
--- a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDao.java
+++ b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDao.java
@@ -16,6 +16,7 @@
//under the License.
package org.apache.cloudstack.quota.dao;
+import com.cloud.utils.Pair;
import com.cloud.utils.db.GenericDao;
import org.apache.cloudstack.quota.vo.QuotaTariffVO;
@@ -27,9 +28,13 @@ public interface QuotaTariffDao extends GenericDao<QuotaTariffVO, Long> {
QuotaTariffVO findTariffPlanByUsageType(int quotaType, Date onOrBefore);
- List<QuotaTariffVO> listAllTariffPlans();
+ Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans();
- List<QuotaTariffVO> listAllTariffPlans(Date onOrBefore);
+ Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(final Long startIndex, final Long pageSize);
+
+ Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(Date onOrBefore);
+
+ Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(Date onOrBefore, Long startIndex, Long pageSize);
Boolean updateQuotaTariff(QuotaTariffVO plan);
diff --git a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDaoImpl.java b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDaoImpl.java
index 76c911a..8b1f2c2 100644
--- a/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDaoImpl.java
+++ b/framework/quota/src/main/java/org/apache/cloudstack/quota/dao/QuotaTariffDaoImpl.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.quota.dao;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -25,6 +26,7 @@ import org.apache.cloudstack.quota.vo.QuotaTariffVO;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import com.cloud.utils.Pair;
import com.cloud.utils.db.Filter;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
@@ -77,20 +79,41 @@ public class QuotaTariffDaoImpl extends GenericDaoBase<QuotaTariffVO, Long> impl
}
@Override
- public List<QuotaTariffVO> listAllTariffPlans() {
- return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<List<QuotaTariffVO>>() {
+ public Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans() {
+ return listAllTariffPlans(null, null);
+ }
+
+ @Override
+ public Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(final Long startIndex, final Long pageSize) {
+ return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<Pair<List<QuotaTariffVO>, Integer>>() {
@Override
- public List<QuotaTariffVO> doInTransaction(final TransactionStatus status) {
- return listAll();
+ public Pair<List<QuotaTariffVO>, Integer> doInTransaction(final TransactionStatus status) {
+ return searchAndCount(null, new Filter(QuotaTariffVO.class, "updatedOn", false, startIndex, pageSize));
}
});
}
+
+ private <T> List<T> paginateList(final List<T> list, final Long startIndex, final Long pageSize) {
+ if (startIndex == null || pageSize == null) {
+ return list;
+ }
+ if (list.size() < startIndex){
+ return Collections.emptyList();
+ }
+ return list.subList(startIndex.intValue(), (int) Math.min(startIndex + pageSize, list.size()));
+ }
+
+ @Override
+ public Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(final Date effectiveDate) {
+ return listAllTariffPlans(effectiveDate, null, null);
+ }
+
@Override
- public List<QuotaTariffVO> listAllTariffPlans(final Date effectiveDate) {
- return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<List<QuotaTariffVO>>() {
+ public Pair<List<QuotaTariffVO>, Integer> listAllTariffPlans(final Date effectiveDate, final Long startIndex, final Long pageSize) {
+ return Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallback<Pair<List<QuotaTariffVO>, Integer>>() {
@Override
- public List<QuotaTariffVO> doInTransaction(final TransactionStatus status) {
+ public Pair<List<QuotaTariffVO>, Integer> doInTransaction(final TransactionStatus status) {
List<QuotaTariffVO> tariffs = new ArrayList<QuotaTariffVO>();
final Filter filter = new Filter(QuotaTariffVO.class, "updatedOn", false, 0L, 1L);
final SearchCriteria<QuotaTariffVO> sc = listAllIncludedUsageType.create();
@@ -106,7 +129,7 @@ public class QuotaTariffDaoImpl extends GenericDaoBase<QuotaTariffVO, Long> impl
}
}
}
- return tariffs;
+ return new Pair<>(paginateList(tariffs, startIndex, pageSize), tariffs.size());
}
});
}
diff --git a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java
index 21441ef..112014b 100644
--- a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java
+++ b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaSummaryCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command;
import com.cloud.user.Account;
+import com.cloud.utils.Pair;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
@@ -58,17 +59,17 @@ public class QuotaSummaryCmd extends BaseListCmd {
@Override
public void execute() {
Account caller = CallContext.current().getCallingAccount();
- List<QuotaSummaryResponse> responses;
+ Pair<List<QuotaSummaryResponse>, Integer> responses;
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN) { //admin account
if (getAccountName() != null && getDomainId() != null)
- responses = _responseBuilder.createQuotaSummaryResponse(caller.getAccountName(), caller.getDomainId());
+ responses = _responseBuilder.createQuotaSummaryResponse(getAccountName(), getDomainId());
else
- responses = _responseBuilder.createQuotaSummaryResponse(isListAll());
+ responses = _responseBuilder.createQuotaSummaryResponse(isListAll(), getKeyword(), getStartIndex(), getPageSizeVal());
} else {
responses = _responseBuilder.createQuotaSummaryResponse(caller.getAccountName(), caller.getDomainId());
}
final ListResponse<QuotaSummaryResponse> response = new ListResponse<QuotaSummaryResponse>();
- response.setResponses(responses);
+ response.setResponses(responses.first(), responses.second());
response.setResponseName(getCommandName());
setResponseObject(response);
}
diff --git a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaTariffListCmd.java b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaTariffListCmd.java
index 9e7d1bc..c136810 100644
--- a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaTariffListCmd.java
+++ b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/command/QuotaTariffListCmd.java
@@ -17,6 +17,7 @@
package org.apache.cloudstack.api.command;
import com.cloud.user.Account;
+import com.cloud.utils.Pair;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
@@ -54,10 +55,10 @@ public class QuotaTariffListCmd extends BaseListCmd {
@Override
public void execute() {
- final List<QuotaTariffVO> result = _responseBuilder.listQuotaTariffPlans(this);
+ final Pair<List<QuotaTariffVO>, Integer> result = _responseBuilder.listQuotaTariffPlans(this);
final List<QuotaTariffResponse> responses = new ArrayList<QuotaTariffResponse>();
- for (final QuotaTariffVO resource : result) {
+ for (final QuotaTariffVO resource : result.first()) {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Result desc=" + resource.getDescription() + " date=" + resource.getEffectiveOn() + " val=" + resource.getCurrencyValue());
}
@@ -65,7 +66,7 @@ public class QuotaTariffListCmd extends BaseListCmd {
}
final ListResponse<QuotaTariffResponse> response = new ListResponse<QuotaTariffResponse>();
- response.setResponses(responses);
+ response.setResponses(responses, result.second());
response.setResponseName(getCommandName());
setResponseObject(response);
}
diff --git a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilder.java b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilder.java
index 0f27697..bde432c 100644
--- a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilder.java
+++ b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilder.java
@@ -29,11 +29,13 @@ import org.apache.cloudstack.quota.vo.QuotaUsageVO;
import java.util.Date;
import java.util.List;
+import com.cloud.utils.Pair;
+
public interface QuotaResponseBuilder {
QuotaTariffVO updateQuotaTariffPlan(QuotaTariffUpdateCmd cmd);
- List<QuotaTariffVO> listQuotaTariffPlans(QuotaTariffListCmd cmd);
+ Pair<List<QuotaTariffVO>, Integer> listQuotaTariffPlans(QuotaTariffListCmd cmd);
QuotaTariffResponse createQuotaTariffResponse(QuotaTariffVO configuration);
@@ -41,9 +43,11 @@ public interface QuotaResponseBuilder {
QuotaBalanceResponse createQuotaBalanceResponse(List<QuotaBalanceVO> quotaUsage, Date startDate, Date endDate);
- List<QuotaSummaryResponse> createQuotaSummaryResponse(Boolean listAll);
+ Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(Boolean listAll);
+
+ Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(Boolean listAll, String keyword, Long startIndex, Long pageSize);
- List<QuotaSummaryResponse> createQuotaSummaryResponse(String accountName, Long domainId);
+ Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(String accountName, Long domainId);
QuotaBalanceResponse createQuotaLastBalanceResponse(List<QuotaBalanceVO> quotaBalance, Date startDate);
diff --git a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
index 0fbf50e..6345552 100644
--- a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
+++ b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaResponseBuilderImpl.java
@@ -69,6 +69,8 @@ import com.cloud.user.AccountVO;
import com.cloud.user.User;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDao;
+import com.cloud.utils.Pair;
+import com.cloud.utils.db.Filter;
@Component
public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
@@ -117,7 +119,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
}
@Override
- public List<QuotaSummaryResponse> createQuotaSummaryResponse(final String accountName, final Long domainId) {
+ public Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(final String accountName, final Long domainId) {
List<QuotaSummaryResponse> result = new ArrayList<QuotaSummaryResponse>();
if (accountName != null && domainId != null) {
@@ -126,20 +128,30 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
result.add(qr);
}
- return result;
+ return new Pair<>(result, result.size());
}
@Override
- public List<QuotaSummaryResponse> createQuotaSummaryResponse(Boolean listAll) {
- List<QuotaSummaryResponse> result = new ArrayList<QuotaSummaryResponse>();
+ public Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(Boolean listAll) {
+ return createQuotaSummaryResponse(listAll, null, null, null);
+ }
+ @Override
+ public Pair<List<QuotaSummaryResponse>, Integer> createQuotaSummaryResponse(Boolean listAll, final String keyword, final Long startIndex, final Long pageSize) {
+ List<QuotaSummaryResponse> result = new ArrayList<QuotaSummaryResponse>();
+ Integer count = 0;
if (listAll) {
- for (final AccountVO account : _accountDao.listAll()) {
+ Filter filter = new Filter(AccountVO.class, "accountName", true, startIndex, pageSize);
+ Pair<List<AccountVO>, Integer> data = _accountDao.findAccountsLike(keyword, filter);
+ count = data.second();
+ for (final AccountVO account : data.first()) {
QuotaSummaryResponse qr = getQuotaSummaryResponse(account);
result.add(qr);
}
} else {
- for (final QuotaAccountVO quotaAccount : _quotaAccountDao.listAllQuotaAccount()) {
+ Pair<List<QuotaAccountVO>, Integer> data = _quotaAccountDao.listAllQuotaAccount(startIndex, pageSize);
+ count = data.second();
+ for (final QuotaAccountVO quotaAccount : data.first()) {
AccountVO account = _accountDao.findById(quotaAccount.getId());
if (account == null) {
continue;
@@ -148,7 +160,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
result.add(qr);
}
}
- return result;
+ return new Pair<>(result, count);
}
private QuotaSummaryResponse getQuotaSummaryResponse(final Account account) {
@@ -160,9 +172,9 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
BigDecimal curBalance = _quotaBalanceDao.lastQuotaBalance(account.getAccountId(), account.getDomainId(), period[1].getTime());
BigDecimal quotaUsage = _quotaUsageDao.findTotalQuotaUsage(account.getAccountId(), account.getDomainId(), null, period[0].getTime(), period[1].getTime());
- qr.setAccountId(account.getAccountId());
+ qr.setAccountId(account.getUuid());
qr.setAccountName(account.getAccountName());
- qr.setDomainId(account.getDomainId());
+ qr.setDomainId(domain.getUuid());
qr.setDomainName(domain.getName());
qr.setBalance(curBalance);
qr.setQuotaUsage(quotaUsage);
@@ -341,8 +353,8 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
}
@Override
- public List<QuotaTariffVO> listQuotaTariffPlans(final QuotaTariffListCmd cmd) {
- List<QuotaTariffVO> result = new ArrayList<QuotaTariffVO>();
+ public Pair<List<QuotaTariffVO>, Integer> listQuotaTariffPlans(final QuotaTariffListCmd cmd) {
+ Pair<List<QuotaTariffVO>, Integer> result;
Date effectiveDate = cmd.getEffectiveDate() == null ? new Date() : cmd.getEffectiveDate();
Date adjustedEffectiveDate = _quotaService.computeAdjustedTime(effectiveDate);
if (s_logger.isDebugEnabled()) {
@@ -351,10 +363,14 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
if (cmd.getUsageType() != null) {
QuotaTariffVO tariffPlan = _quotaTariffDao.findTariffPlanByUsageType(cmd.getUsageType(), adjustedEffectiveDate);
if (tariffPlan != null) {
- result.add(tariffPlan);
+ List<QuotaTariffVO> list = new ArrayList<>();
+ list.add(tariffPlan);
+ result = new Pair<>(list, list.size());
+ } else {
+ result = new Pair<>(new ArrayList<>(), 0);
}
} else {
- result = _quotaTariffDao.listAllTariffPlans(adjustedEffectiveDate);
+ result = _quotaTariffDao.listAllTariffPlans(adjustedEffectiveDate, cmd.getStartIndex(), cmd.getPageSizeVal());
}
return result;
}
diff --git a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaSummaryResponse.java b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaSummaryResponse.java
index 4e6f684..863a0c3 100644
--- a/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaSummaryResponse.java
+++ b/plugins/database/quota/src/main/java/org/apache/cloudstack/api/response/QuotaSummaryResponse.java
@@ -31,7 +31,7 @@ public class QuotaSummaryResponse extends BaseResponse {
@SerializedName("accountid")
@Param(description = "account id")
- private Long accountId;
+ private String accountId;
@SerializedName("account")
@Param(description = "account name")
@@ -39,7 +39,7 @@ public class QuotaSummaryResponse extends BaseResponse {
@SerializedName("domainid")
@Param(description = "domain id")
- private Long domainId;
+ private String domainId;
@SerializedName("domain")
@Param(description = "domain name")
@@ -73,11 +73,11 @@ public class QuotaSummaryResponse extends BaseResponse {
super();
}
- public Long getAccountId() {
+ public String getAccountId() {
return accountId;
}
- public void setAccountId(Long accountId) {
+ public void setAccountId(String accountId) {
this.accountId = accountId;
}
@@ -89,11 +89,11 @@ public class QuotaSummaryResponse extends BaseResponse {
this.accountName = accountName;
}
- public Long getDomainId() {
+ public String getDomainId() {
return domainId;
}
- public void setDomainId(Long domainId) {
+ public void setDomainId(String domainId) {
this.domainId = domainId;
}
diff --git a/plugins/database/quota/src/test/java/org/apache/cloudstack/api/command/QuotaTariffListCmdTest.java b/plugins/database/quota/src/test/java/org/apache/cloudstack/api/command/QuotaTariffListCmdTest.java
index 5781103..1cbd575 100644
--- a/plugins/database/quota/src/test/java/org/apache/cloudstack/api/command/QuotaTariffListCmdTest.java
+++ b/plugins/database/quota/src/test/java/org/apache/cloudstack/api/command/QuotaTariffListCmdTest.java
@@ -33,6 +33,8 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import com.cloud.utils.Pair;
+
@RunWith(MockitoJUnitRunner.class)
public class QuotaTariffListCmdTest extends TestCase {
@Mock
@@ -53,7 +55,7 @@ public class QuotaTariffListCmdTest extends TestCase {
tariff.setUsageType(QuotaTypes.MEMORY);
quotaTariffVOList.add(new QuotaTariffVO());
- Mockito.when(responseBuilder.listQuotaTariffPlans(Mockito.eq(cmd))).thenReturn(quotaTariffVOList);
+ Mockito.when(responseBuilder.listQuotaTariffPlans(Mockito.eq(cmd))).thenReturn(new Pair<>(quotaTariffVOList, quotaTariffVOList.size()));
Mockito.when(responseBuilder.createQuotaTariffResponse(Mockito.any(QuotaTariffVO.class))).thenReturn(new QuotaTariffResponse());
cmd.execute();