[
https://issues.apache.org/jira/browse/CLOUDSTACK-9896?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16315144#comment-16315144
]
ASF GitHub Bot commented on CLOUDSTACK-9896:
--------------------------------------------
rhtyd closed pull request #2073: CLOUDSTACK-9896: API: listDedicatedXXX should
respect pagination
URL: https://github.com/apache/cloudstack/pull/2073
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
b/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
index e7a6f35dce2..7cf193d49be 100644
---
a/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
+++
b/plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/DedicatedResourceManagerImpl.java
@@ -73,6 +73,7 @@
import com.cloud.utils.NumbersUtil;
import com.cloud.utils.Pair;
import com.cloud.utils.db.DB;
+import com.cloud.utils.db.Filter;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.db.TransactionCallback;
import com.cloud.utils.db.TransactionCallbackNoReturn;
@@ -816,6 +817,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
String accountName = cmd.getAccountName();
Long accountId = null;
Long affinityGroupId = cmd.getAffinityGroupId();
+ Long startIndex = cmd.getStartIndex();
+ Long pageSize = cmd.getPageSizeVal();
if (accountName != null) {
if (domainId != null) {
@@ -827,7 +830,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
throw new InvalidParameterValueException("Please specify the
domain id of the account: " + accountName);
}
}
- Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedZones(zoneId, domainId, accountId,
affinityGroupId);
+ Filter searchFilter = new Filter(DedicatedResourceVO.class, "id",
true, startIndex, pageSize);
+ Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedZones(zoneId, domainId, accountId,
affinityGroupId, searchFilter);
return new Pair<List<? extends DedicatedResourceVO>,
Integer>(result.first(), result.second());
}
@@ -838,6 +842,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
String accountName = cmd.getAccountName();
Long accountId = null;
Long affinityGroupId = cmd.getAffinityGroupId();
+ Long startIndex = cmd.getStartIndex();
+ Long pageSize = cmd.getPageSizeVal();
if (accountName != null) {
if (domainId != null) {
@@ -849,7 +855,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
throw new InvalidParameterValueException("Please specify the
domain id of the account: " + accountName);
}
}
- Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedPods(podId, domainId, accountId, affinityGroupId);
+ Filter searchFilter = new Filter(DedicatedResourceVO.class, "id",
true, startIndex, pageSize);
+ Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedPods(podId, domainId, accountId, affinityGroupId,
searchFilter);
return new Pair<List<? extends DedicatedResourceVO>,
Integer>(result.first(), result.second());
}
@@ -860,6 +867,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
String accountName = cmd.getAccountName();
Long accountId = null;
Long affinityGroupId = cmd.getAffinityGroupId();
+ Long startIndex = cmd.getStartIndex();
+ Long pageSize = cmd.getPageSizeVal();
if (accountName != null) {
if (domainId != null) {
@@ -871,7 +880,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
throw new InvalidParameterValueException("Please specify the
domain id of the account: " + accountName);
}
}
- Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedClusters(clusterId, domainId, accountId,
affinityGroupId);
+ Filter searchFilter = new Filter(DedicatedResourceVO.class, "id",
true, startIndex, pageSize);
+ Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedClusters(clusterId, domainId, accountId,
affinityGroupId, searchFilter);
return new Pair<List<? extends DedicatedResourceVO>,
Integer>(result.first(), result.second());
}
@@ -881,6 +891,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
Long domainId = cmd.getDomainId();
String accountName = cmd.getAccountName();
Long affinityGroupId = cmd.getAffinityGroupId();
+ Long startIndex = cmd.getStartIndex();
+ Long pageSize = cmd.getPageSizeVal();
Long accountId = null;
if (accountName != null) {
@@ -893,8 +905,8 @@ public DedicateHostResponse
createDedicateHostResponse(DedicatedResources resour
throw new InvalidParameterValueException("Please specify the
domain id of the account: " + accountName);
}
}
-
- Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedHosts(hostId, domainId, accountId,
affinityGroupId);
+ Filter searchFilter = new Filter(DedicatedResourceVO.class, "id",
true, startIndex, pageSize);
+ Pair<List<DedicatedResourceVO>, Integer> result =
_dedicatedDao.searchDedicatedHosts(hostId, domainId, accountId,
affinityGroupId, searchFilter);
return new Pair<List<? extends DedicatedResourceVO>,
Integer>(result.first(), result.second());
}
diff --git a/server/src/com/cloud/dc/dao/DedicatedResourceDao.java
b/server/src/com/cloud/dc/dao/DedicatedResourceDao.java
index 0876d462bb1..7c41439b1ec 100644
--- a/server/src/com/cloud/dc/dao/DedicatedResourceDao.java
+++ b/server/src/com/cloud/dc/dao/DedicatedResourceDao.java
@@ -20,6 +20,7 @@
import com.cloud.dc.DedicatedResourceVO;
import com.cloud.utils.Pair;
+import com.cloud.utils.db.Filter;
import com.cloud.utils.db.GenericDao;
public interface DedicatedResourceDao extends GenericDao<DedicatedResourceVO,
Long> {
@@ -32,13 +33,13 @@
DedicatedResourceVO findByHostId(Long hostId);
- Pair<List<DedicatedResourceVO>, Integer> searchDedicatedHosts(Long hostId,
Long domainId, Long accountId, Long affinityGroupId);
+ Pair<List<DedicatedResourceVO>, Integer> searchDedicatedHosts(Long hostId,
Long domainId, Long accountId, Long affinityGroupId, Filter filter);
- Pair<List<DedicatedResourceVO>, Integer> searchDedicatedClusters(Long
clusterId, Long domainId, Long accountId, Long affinityGroupId);
+ Pair<List<DedicatedResourceVO>, Integer> searchDedicatedClusters(Long
clusterId, Long domainId, Long accountId, Long affinityGroupId, Filter filter);
- Pair<List<DedicatedResourceVO>, Integer> searchDedicatedPods(Long podId,
Long domainId, Long accountId, Long affinityGroupId);
+ Pair<List<DedicatedResourceVO>, Integer> searchDedicatedPods(Long podId,
Long domainId, Long accountId, Long affinityGroupId, Filter filter);
- Pair<List<DedicatedResourceVO>, Integer> searchDedicatedZones(Long
dataCenterId, Long domainId, Long accountId, Long affinityGroupId);
+ Pair<List<DedicatedResourceVO>, Integer> searchDedicatedZones(Long
dataCenterId, Long domainId, Long accountId, Long affinityGroupId, Filter
filter);
List<DedicatedResourceVO> listByAccountId(Long accountId);
diff --git a/server/src/com/cloud/dc/dao/DedicatedResourceDaoImpl.java
b/server/src/com/cloud/dc/dao/DedicatedResourceDaoImpl.java
index 8f51783c8b0..c406755f994 100644
--- a/server/src/com/cloud/dc/dao/DedicatedResourceDaoImpl.java
+++ b/server/src/com/cloud/dc/dao/DedicatedResourceDaoImpl.java
@@ -19,6 +19,7 @@
import java.util.List;
+import com.cloud.utils.db.Filter;
import org.springframework.stereotype.Component;
import com.cloud.dc.DedicatedResourceVO;
@@ -231,7 +232,7 @@ public DedicatedResourceVO findByHostId(Long hostId) {
}
@Override
- public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedZones(Long
dataCenterId, Long domainId, Long accountId, Long affinityGroupId) {
+ public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedZones(Long
dataCenterId, Long domainId, Long accountId, Long affinityGroupId, Filter
filter) {
SearchCriteria<DedicatedResourceVO> sc = ListAllZonesSearch.create();
if (dataCenterId != null) {
sc.setParameters("zoneId", dataCenterId);
@@ -247,11 +248,11 @@ public DedicatedResourceVO findByHostId(Long hostId) {
sc.setParameters("accountId", (Object)null);
}
}
- return searchAndCount(sc, null);
+ return searchAndCount(sc, filter);
}
@Override
- public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedPods(Long
podId, Long domainId, Long accountId, Long affinityGroupId) {
+ public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedPods(Long
podId, Long domainId, Long accountId, Long affinityGroupId, Filter filter) {
SearchCriteria<DedicatedResourceVO> sc = ListAllPodsSearch.create();
if (podId != null) {
sc.setParameters("podId", podId);
@@ -267,11 +268,11 @@ public DedicatedResourceVO findByHostId(Long hostId) {
sc.setParameters("accountId", (Object)null);
}
}
- return searchAndCount(sc, null);
+ return searchAndCount(sc, filter);
}
@Override
- public Pair<List<DedicatedResourceVO>, Integer>
searchDedicatedClusters(Long clusterId, Long domainId, Long accountId, Long
affinityGroupId) {
+ public Pair<List<DedicatedResourceVO>, Integer>
searchDedicatedClusters(Long clusterId, Long domainId, Long accountId, Long
affinityGroupId, Filter filter) {
SearchCriteria<DedicatedResourceVO> sc =
ListAllClustersSearch.create();
if (clusterId != null) {
sc.setParameters("clusterId", clusterId);
@@ -288,11 +289,11 @@ public DedicatedResourceVO findByHostId(Long hostId) {
sc.setParameters("accountId", (Object)null);
}
}
- return searchAndCount(sc, null);
+ return searchAndCount(sc, filter);
}
@Override
- public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedHosts(Long
hostId, Long domainId, Long accountId, Long affinityGroupId) {
+ public Pair<List<DedicatedResourceVO>, Integer> searchDedicatedHosts(Long
hostId, Long domainId, Long accountId, Long affinityGroupId, Filter filter) {
SearchCriteria<DedicatedResourceVO> sc = ListAllHostsSearch.create();
if (hostId != null) {
sc.setParameters("hostId", hostId);
@@ -308,7 +309,7 @@ public DedicatedResourceVO findByHostId(Long hostId) {
sc.setParameters("accountId", (Object)null);
}
}
- return searchAndCount(sc, null);
+ return searchAndCount(sc, filter);
}
@Override
diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
index 6cb5381894a..cc244ce41ba 100644
--- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
+++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
@@ -30,6 +30,7 @@
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import com.cloud.utils.db.Filter;
import com.cloud.utils.fsm.StateMachine2;
import org.apache.log4j.Logger;
@@ -639,21 +640,21 @@ private void
checkForNonDedicatedResources(VirtualMachineProfile vmProfile, Data
if (domainGroupMappings == null || domainGroupMappings.isEmpty()) {
//The dedicated resource belongs to VM Account ID.
- tempStorage = _dedicatedDao.searchDedicatedPods(null,
vmDomainId, vmAccountId, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedPods(null,
vmDomainId, vmAccountId, null, new Filter(DedicatedResourceVO.class, "id",
true, 0L, 1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allPodsFromDedicatedID.add(vo.getPodId());
}
tempStorage.clear();
- tempStorage = _dedicatedDao.searchDedicatedClusters(null,
vmDomainId, vmAccountId, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedClusters(null,
vmDomainId, vmAccountId, null, new Filter(DedicatedResourceVO.class, "id",
true, 0L, 1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allClustersFromDedicatedID.add(vo.getClusterId());
}
tempStorage.clear();
- tempStorage = _dedicatedDao.searchDedicatedHosts(null,
vmDomainId, vmAccountId, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedHosts(null,
vmDomainId, vmAccountId, null, new Filter(DedicatedResourceVO.class, "id",
true, 0L, 1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allHostsFromDedicatedID.add(vo.getHostId());
@@ -667,21 +668,21 @@ private void
checkForNonDedicatedResources(VirtualMachineProfile vmProfile, Data
else {
//The dedicated resource belongs to VM Domain ID or No
dedication.
- tempStorage = _dedicatedDao.searchDedicatedPods(null,
vmDomainId, null, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedPods(null,
vmDomainId, null, null, new Filter(DedicatedResourceVO.class, "id", true, 0L,
1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allPodsFromDedicatedID.add(vo.getPodId());
}
tempStorage.clear();
- tempStorage = _dedicatedDao.searchDedicatedClusters(null,
vmDomainId, null, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedClusters(null,
vmDomainId, null, null, new Filter(DedicatedResourceVO.class, "id", true, 0L,
1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allClustersFromDedicatedID.add(vo.getClusterId());
}
tempStorage.clear();
- tempStorage = _dedicatedDao.searchDedicatedHosts(null,
vmDomainId, null, null).first();
+ tempStorage = _dedicatedDao.searchDedicatedHosts(null,
vmDomainId, null, null, new Filter(DedicatedResourceVO.class, "id", true, 0L,
1L)).first();
for(DedicatedResourceVO vo : tempStorage) {
allHostsFromDedicatedID.add(vo.getHostId());
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> ListDedicatedXXX doesn't respect pagination
> -------------------------------------------
>
> Key: CLOUDSTACK-9896
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9896
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: API
> Reporter: Marc-Aurèle Brothier
> Assignee: Marc-Aurèle Brothier
> Priority: Minor
>
> The listDedicatedZones, listDedicatedPods, listDedicatedClusters,
> listDedicatedHosts are not using the pagination filter to return the results.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)