Skip to content

Commit 466e888

Browse files
committed
Fix import VM tasks pagination
1 parent 349feeb commit 466e888

4 files changed

Lines changed: 14 additions & 18 deletions

File tree

api/src/main/java/org/apache/cloudstack/api/command/admin/vm/ListImportVMTasksCmd.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ public class ListImportVMTasksCmd extends BaseListCmd {
7575
description = "Conversion host of the importing task")
7676
private Long convertHostId;
7777

78-
@Parameter(name = ApiConstants.LIST_ALL, type = CommandType.BOOLEAN, description = "Whether to list all import tasks.")
79-
private boolean listAll = false;
80-
8178
@Parameter(name = ApiConstants.SHOW_COMPLETED, type = CommandType.BOOLEAN, description = "Whether to list completed tasks.")
8279
private boolean showCompleted = false;
8380

@@ -97,10 +94,6 @@ public Long getConvertHostId() {
9794
return convertHostId;
9895
}
9996

100-
public boolean isListAll() {
101-
return listAll;
102-
}
103-
10497
public boolean isShowCompleted() {
10598
return showCompleted;
10699
}

engine/schema/src/main/java/com/cloud/vm/dao/ImportVMTaskDao.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
//
1919
package com.cloud.vm.dao;
2020

21+
import com.cloud.utils.Pair;
2122
import com.cloud.utils.db.GenericDao;
2223
import com.cloud.vm.ImportVMTaskVO;
2324

2425
import java.util.List;
2526

2627
public interface ImportVMTaskDao extends GenericDao<ImportVMTaskVO, Long> {
2728

28-
List<ImportVMTaskVO> listImportVMTasks(Long zoneId, Long accountId, String vcenter, Long convertHostId, boolean showCompleted);
29+
Pair<List<ImportVMTaskVO>, Integer> listImportVMTasks(Long zoneId, Long accountId, String vcenter, Long convertHostId, boolean showCompleted, Long startIndex, Long pageSizeVal);
2930
}

engine/schema/src/main/java/com/cloud/vm/dao/ImportVMTaskDaoImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
// under the License.
1717
package com.cloud.vm.dao;
1818

19+
import com.cloud.utils.Pair;
20+
import com.cloud.utils.db.Filter;
1921
import com.cloud.utils.db.GenericDaoBase;
2022
import com.cloud.utils.db.SearchBuilder;
2123
import com.cloud.utils.db.SearchCriteria;
2224
import com.cloud.vm.ImportVMTaskVO;
25+
import org.apache.cloudstack.acl.RoleVO;
2326
import org.apache.commons.lang3.StringUtils;
2427
import org.springframework.stereotype.Component;
2528

@@ -46,7 +49,7 @@ void init() {
4649

4750

4851
@Override
49-
public List<ImportVMTaskVO> listImportVMTasks(Long zoneId, Long accountId, String vcenter, Long convertHostId, boolean showCompleted) {
52+
public Pair<List<ImportVMTaskVO>, Integer> listImportVMTasks(Long zoneId, Long accountId, String vcenter, Long convertHostId, boolean showCompleted, Long startIndex, Long pageSizeVal) {
5053
SearchCriteria<ImportVMTaskVO> sc = AllFieldsSearch.create();
5154
if (zoneId != null) {
5255
sc.setParameters("zoneId", zoneId);
@@ -60,6 +63,7 @@ public List<ImportVMTaskVO> listImportVMTasks(Long zoneId, Long accountId, Strin
6063
if (convertHostId != null) {
6164
sc.setParameters("convertHostId", convertHostId);
6265
}
63-
return showCompleted ? listIncludingRemovedBy(sc) : listBy(sc);
66+
Filter filter = new Filter(RoleVO.class, "created", false, startIndex, pageSizeVal);
67+
return searchAndCount(sc, filter, showCompleted);
6468
}
6569
}

server/src/main/java/org/apache/cloudstack/vm/ImportVmTasksManagerImpl.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.cloud.user.Account;
2626
import com.cloud.user.AccountService;
2727
import com.cloud.utils.DateUtil;
28+
import com.cloud.utils.Pair;
2829
import com.cloud.vm.ImportVMTaskVO;
2930
import com.cloud.vm.UserVmVO;
3031
import com.cloud.vm.dao.ImportVMTaskDao;
@@ -72,22 +73,19 @@ public ListResponse<ImportVMTaskResponse> listImportVMTasks(ListImportVMTasksCmd
7273
Long accountId = cmd.getAccountId();
7374
String vcenter = cmd.getVcenter();
7475
Long convertHostId = cmd.getConvertHostId();
75-
boolean listAll = cmd.isListAll();
7676
boolean showCompleted = cmd.isShowCompleted();
77+
Long startIndex = cmd.getStartIndex();
78+
Long pageSizeVal = cmd.getPageSizeVal();
7779

78-
List<ImportVMTaskVO> tasks;
79-
if (listAll) {
80-
tasks = importVMTaskDao.listAll();
81-
} else {
82-
tasks = importVMTaskDao.listImportVMTasks(zoneId, accountId, vcenter, convertHostId, showCompleted);
83-
}
80+
Pair<List<ImportVMTaskVO>, Integer> result = importVMTaskDao.listImportVMTasks(zoneId, accountId, vcenter, convertHostId, showCompleted, startIndex, pageSizeVal);
81+
List<ImportVMTaskVO> tasks = result.first();
8482

8583
List<ImportVMTaskResponse> responses = new ArrayList<>();
8684
for (ImportVMTaskVO task : tasks) {
8785
responses.add(createImportVMTaskResponse(task));
8886
}
8987
ListResponse<ImportVMTaskResponse> listResponses = new ListResponse<>();
90-
listResponses.setResponses(responses, responses.size());
88+
listResponses.setResponses(responses, result.second());
9189
return listResponses;
9290
}
9391

0 commit comments

Comments
 (0)