Skip to content

Commit ef3200d

Browse files
DaanHooglanddhslove
authored andcommitted
propagate sort order through retrieval sequence (apache#9624)
1 parent 04fe34a commit ef3200d

7 files changed

Lines changed: 28 additions & 24 deletions

File tree

engine/schema/src/main/java/com/cloud/storage/dao/DiskOfferingDaoImpl.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import com.cloud.storage.DiskOfferingVO;
3333
import com.cloud.storage.Storage;
3434
import com.cloud.utils.db.Attribute;
35-
import com.cloud.utils.db.Filter;
3635
import com.cloud.utils.db.GenericDaoBase;
3736
import com.cloud.utils.db.SearchBuilder;
3837
import com.cloud.utils.db.SearchCriteria;
@@ -60,16 +59,6 @@ protected DiskOfferingDaoImpl() {
6059
_computeOnlyAttr = _allAttributes.get("computeOnly");
6160
}
6261

63-
@Override
64-
public List<DiskOfferingVO> searchIncludingRemoved(SearchCriteria<DiskOfferingVO> sc, final Filter filter, final Boolean lock, final boolean cache) {
65-
return super.searchIncludingRemoved(sc, filter, lock, cache);
66-
}
67-
68-
@Override
69-
public <K> List<K> customSearchIncludingRemoved(SearchCriteria<K> sc, final Filter filter) {
70-
return super.customSearchIncludingRemoved(sc, filter);
71-
}
72-
7362
@Override
7463
protected List<DiskOfferingVO> executeList(final String sql, final Object... params) {
7564
StringBuilder builder = new StringBuilder(sql);

server/src/main/java/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3666,7 +3666,7 @@ private List<Long> findRelatedDomainIds(Domain domain, boolean isRecursive) {
36663666
public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd) {
36673667
Pair<List<ServiceOfferingJoinVO>, Integer> result = searchForServiceOfferingsInternal(cmd);
36683668
result.first();
3669-
ListResponse<ServiceOfferingResponse> response = new ListResponse<ServiceOfferingResponse>();
3669+
ListResponse<ServiceOfferingResponse> response = new ListResponse<>();
36703670
List<ServiceOfferingResponse> offeringResponses = ViewResponseHelper.createServiceOfferingResponse(result.first().toArray(new ServiceOfferingJoinVO[result.first().size()]));
36713671
response.setResponses(offeringResponses, result.second());
36723672
return response;

server/src/main/java/com/cloud/api/query/dao/DiskOfferingJoinDaoImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@
3838
import com.cloud.offering.ServiceOffering;
3939
import com.cloud.server.ResourceTag;
4040
import com.cloud.user.AccountManager;
41-
import com.cloud.utils.db.Attribute;
4241
import com.cloud.utils.db.Filter;
4342
import com.cloud.utils.db.GenericDaoBase;
4443
import com.cloud.utils.db.SearchBuilder;
4544
import com.cloud.utils.db.SearchCriteria;
4645

46+
import static org.apache.cloudstack.query.QueryService.SortKeyAscending;
47+
4748
@Component
4849
public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO, Long> implements DiskOfferingJoinDao {
4950

@@ -58,7 +59,6 @@ public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO,
5859

5960
private final SearchBuilder<DiskOfferingJoinVO> dofIdSearch;
6061
private SearchBuilder<DiskOfferingJoinVO> diskOfferingSearch;
61-
private final Attribute _typeAttr;
6262

6363
protected DiskOfferingJoinDaoImpl() {
6464

@@ -70,9 +70,6 @@ protected DiskOfferingJoinDaoImpl() {
7070
diskOfferingSearch.and("idIN", diskOfferingSearch.entity().getId(), SearchCriteria.Op.IN);
7171
diskOfferingSearch.done();
7272

73-
74-
_typeAttr = _allAttributes.get("type");
75-
7673
_count = "select count(distinct id) from disk_offering_view WHERE ";
7774
}
7875

@@ -168,6 +165,8 @@ public DiskOfferingJoinVO newDiskOfferingView(DiskOffering offering) {
168165

169166
@Override
170167
public List<DiskOfferingJoinVO> searchByIds(Long... offeringIds) {
168+
Filter searchFilter = new Filter(DiskOfferingJoinVO.class, "sortKey", SortKeyAscending.value());
169+
searchFilter.addOrderBy(DiskOfferingJoinVO.class, "id", true);
171170
// set detail batch query size
172171
int DETAILS_BATCH_SIZE = 2000;
173172
String batchCfg = configDao.getValue("detail.batch.query.size");

server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDao.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ public interface ServiceOfferingJoinDao extends GenericDao<ServiceOfferingJoinVO
3434
ServiceOfferingJoinVO newServiceOfferingView(ServiceOffering offering);
3535

3636
Map<Long, List<String>> listDomainsOfServiceOfferingsUsedByDomainPath(String domainPath);
37+
3738
List<ServiceOfferingJoinVO> searchByIds(Long... id);
3839
}

server/src/main/java/com/cloud/api/query/dao/ServiceOfferingJoinDaoImpl.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,13 @@
4646
import com.cloud.storage.DiskOfferingVO;
4747
import com.cloud.user.AccountManager;
4848
import com.cloud.utils.db.GenericDaoBase;
49+
import com.cloud.utils.db.Filter;
4950
import com.cloud.utils.db.SearchBuilder;
5051
import com.cloud.utils.db.SearchCriteria;
5152
import com.cloud.utils.db.TransactionLegacy;
5253

54+
import static org.apache.cloudstack.query.QueryService.SortKeyAscending;
55+
5356
@Component
5457
public class ServiceOfferingJoinDaoImpl extends GenericDaoBase<ServiceOfferingJoinVO, Long> implements ServiceOfferingJoinDao {
5558

@@ -235,6 +238,9 @@ public Map<Long, List<String>> listDomainsOfServiceOfferingsUsedByDomainPath(Str
235238

236239
@Override
237240
public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
241+
Filter searchFilter = new Filter(ServiceOfferingJoinVO.class, "sortKey", SortKeyAscending.value());
242+
searchFilter.addOrderBy(ServiceOfferingJoinVO.class, "id", true);
243+
238244
// set detail batch query size
239245
int DETAILS_BATCH_SIZE = 2000;
240246
String batchCfg = configDao.getValue("detail.batch.query.size");
@@ -253,9 +259,9 @@ public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
253259
}
254260
SearchCriteria<ServiceOfferingJoinVO> sc = srvOfferingSearch.create();
255261
sc.setParameters("idIN", ids);
256-
List<ServiceOfferingJoinVO> accounts = searchIncludingRemoved(sc, searchFilter, null, false);
257-
if (accounts != null) {
258-
uvList.addAll(accounts);
262+
List<ServiceOfferingJoinVO> offerings = searchIncludingRemoved(sc, searchFilter, null, false);
263+
if (offerings != null) {
264+
uvList.addAll(offerings);
259265
}
260266
curr_index += DETAILS_BATCH_SIZE;
261267
}
@@ -269,9 +275,9 @@ public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
269275
}
270276
SearchCriteria<ServiceOfferingJoinVO> sc = srvOfferingSearch.create();
271277
sc.setParameters("idIN", ids);
272-
List<ServiceOfferingJoinVO> accounts = searchIncludingRemoved(sc, searchFilter, null, false);
273-
if (accounts != null) {
274-
uvList.addAll(accounts);
278+
List<ServiceOfferingJoinVO> offerings = searchIncludingRemoved(sc, searchFilter, null, false);
279+
if (offerings != null) {
280+
uvList.addAll(offerings);
275281
}
276282
}
277283
return uvList;

ui/src/components/view/ListView.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,12 @@ export default {
616616
explicitlyAllowRowSelection: {
617617
type: Boolean,
618618
default: false
619+
},
620+
currentPage: {
621+
type: Number
622+
},
623+
pageSize: {
624+
type: Number
619625
}
620626
},
621627
inject: ['parentFetchData', 'parentToggleLoading'],
@@ -848,8 +854,9 @@ export default {
848854
},
849855
updateOrder (data) {
850856
const promises = []
857+
const previousSortKeys = this.pageSize && this.currentPage ? this.pageSize * (this.currentPage - 1) : 0
851858
data.forEach((item, index) => {
852-
promises.push(this.handleUpdateOrder(item.id, index + 1))
859+
promises.push(this.handleUpdateOrder(item.id, previousSortKeys + index + 1))
853860
})
854861
Promise.all(promises).catch((reason) => {
855862
console.log(reason)

ui/src/views/AutogenView.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,8 @@
643643
:columns="columns"
644644
:items="items"
645645
:actions="actions"
646+
:currentPage="page"
647+
:pageSize="pageSize"
646648
:columnKeys="columnKeys"
647649
:selectedColumns="selectedColumns"
648650
ref="listview"

0 commit comments

Comments
 (0)