Skip to content

Commit 0fae0c0

Browse files
authored
propagate sort order through retrieval sequence (#9624)
1 parent dda9ef2 commit 0fae0c0

File tree

7 files changed

+36
-31
lines changed

7 files changed

+36
-31
lines changed

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
@@ -3639,7 +3639,7 @@ private List<Long> findRelatedDomainIds(Domain domain, boolean isRecursive) {
36393639
public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd) {
36403640
Pair<List<ServiceOfferingJoinVO>, Integer> result = searchForServiceOfferingsInternal(cmd);
36413641
result.first();
3642-
ListResponse<ServiceOfferingResponse> response = new ListResponse<ServiceOfferingResponse>();
3642+
ListResponse<ServiceOfferingResponse> response = new ListResponse<>();
36433643
List<ServiceOfferingResponse> offeringResponses = ViewResponseHelper.createServiceOfferingResponse(result.first().toArray(new ServiceOfferingJoinVO[result.first().size()]));
36443644
response.setResponses(offeringResponses, result.second());
36453645
return response;

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@
3939
import com.cloud.offering.ServiceOffering;
4040
import com.cloud.server.ResourceTag;
4141
import com.cloud.user.AccountManager;
42-
import com.cloud.utils.db.Attribute;
42+
import com.cloud.utils.db.Filter;
4343
import com.cloud.utils.db.GenericDaoBase;
4444
import com.cloud.utils.db.SearchBuilder;
4545
import com.cloud.utils.db.SearchCriteria;
4646

47+
import static org.apache.cloudstack.query.QueryService.SortKeyAscending;
48+
4749
@Component
4850
public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO, Long> implements DiskOfferingJoinDao {
4951
public static final Logger s_logger = Logger.getLogger(DiskOfferingJoinDaoImpl.class);
@@ -59,7 +61,6 @@ public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO,
5961

6062
private final SearchBuilder<DiskOfferingJoinVO> dofIdSearch;
6163
private SearchBuilder<DiskOfferingJoinVO> diskOfferingSearch;
62-
private final Attribute _typeAttr;
6364

6465
protected DiskOfferingJoinDaoImpl() {
6566

@@ -71,9 +72,6 @@ protected DiskOfferingJoinDaoImpl() {
7172
diskOfferingSearch.and("idIN", diskOfferingSearch.entity().getId(), SearchCriteria.Op.IN);
7273
diskOfferingSearch.done();
7374

74-
75-
_typeAttr = _allAttributes.get("type");
76-
7775
_count = "select count(distinct id) from disk_offering_view WHERE ";
7876
}
7977

@@ -168,6 +166,8 @@ public DiskOfferingJoinVO newDiskOfferingView(DiskOffering offering) {
168166

169167
@Override
170168
public List<DiskOfferingJoinVO> searchByIds(Long... offeringIds) {
169+
Filter searchFilter = new Filter(DiskOfferingJoinVO.class, "sortKey", SortKeyAscending.value());
170+
searchFilter.addOrderBy(DiskOfferingJoinVO.class, "id", true);
171171
// set detail batch query size
172172
int DETAILS_BATCH_SIZE = 2000;
173173
String batchCfg = configDao.getValue("detail.batch.query.size");
@@ -186,7 +186,7 @@ public List<DiskOfferingJoinVO> searchByIds(Long... offeringIds) {
186186
}
187187
SearchCriteria<DiskOfferingJoinVO> sc = diskOfferingSearch.create();
188188
sc.setParameters("idIN", ids);
189-
List<DiskOfferingJoinVO> accounts = searchIncludingRemoved(sc, null, null, false);
189+
List<DiskOfferingJoinVO> accounts = searchIncludingRemoved(sc, searchFilter, null, false);
190190
if (accounts != null) {
191191
uvList.addAll(accounts);
192192
}
@@ -202,7 +202,7 @@ public List<DiskOfferingJoinVO> searchByIds(Long... offeringIds) {
202202
}
203203
SearchCriteria<DiskOfferingJoinVO> sc = diskOfferingSearch.create();
204204
sc.setParameters("idIN", ids);
205-
List<DiskOfferingJoinVO> accounts = searchIncludingRemoved(sc, null, null, false);
205+
List<DiskOfferingJoinVO> accounts = searchIncludingRemoved(sc, searchFilter, null, false);
206206
if (accounts != null) {
207207
uvList.addAll(accounts);
208208
}

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: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,8 @@
2525
import java.util.List;
2626
import java.util.Map;
2727

28-
import com.cloud.dc.VsphereStoragePolicyVO;
29-
import com.cloud.dc.dao.VsphereStoragePolicyDao;
30-
import com.cloud.user.AccountManager;
31-
import com.cloud.utils.db.TransactionLegacy;
3228
import org.apache.cloudstack.annotation.AnnotationService;
3329
import org.apache.cloudstack.annotation.dao.AnnotationDao;
34-
import com.cloud.storage.DiskOfferingVO;
3530
import org.apache.cloudstack.api.ApiConstants;
3631
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
3732
import org.apache.cloudstack.context.CallContext;
@@ -41,14 +36,22 @@
4136

4237
import com.cloud.api.ApiDBUtils;
4338
import com.cloud.api.query.vo.ServiceOfferingJoinVO;
39+
import com.cloud.dc.VsphereStoragePolicyVO;
40+
import com.cloud.dc.dao.VsphereStoragePolicyDao;
4441
import com.cloud.offering.ServiceOffering;
4542
import com.cloud.server.ResourceTag.ResourceObjectType;
43+
import com.cloud.storage.DiskOfferingVO;
44+
import com.cloud.user.AccountManager;
4645
import com.cloud.utils.db.GenericDaoBase;
46+
import com.cloud.utils.db.Filter;
4747
import com.cloud.utils.db.SearchBuilder;
4848
import com.cloud.utils.db.SearchCriteria;
49+
import com.cloud.utils.db.TransactionLegacy;
4950

5051
import javax.inject.Inject;
5152

53+
import static org.apache.cloudstack.query.QueryService.SortKeyAscending;
54+
5255
@Component
5356
public class ServiceOfferingJoinDaoImpl extends GenericDaoBase<ServiceOfferingJoinVO, Long> implements ServiceOfferingJoinDao {
5457
public static final Logger s_logger = Logger.getLogger(ServiceOfferingJoinDaoImpl.class);
@@ -230,6 +233,9 @@ public Map<Long, List<String>> listDomainsOfServiceOfferingsUsedByDomainPath(Str
230233

231234
@Override
232235
public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
236+
Filter searchFilter = new Filter(ServiceOfferingJoinVO.class, "sortKey", SortKeyAscending.value());
237+
searchFilter.addOrderBy(ServiceOfferingJoinVO.class, "id", true);
238+
233239
// set detail batch query size
234240
int DETAILS_BATCH_SIZE = 2000;
235241
String batchCfg = configDao.getValue("detail.batch.query.size");
@@ -248,9 +254,9 @@ public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
248254
}
249255
SearchCriteria<ServiceOfferingJoinVO> sc = srvOfferingSearch.create();
250256
sc.setParameters("idIN", ids);
251-
List<ServiceOfferingJoinVO> accounts = searchIncludingRemoved(sc, null, null, false);
252-
if (accounts != null) {
253-
uvList.addAll(accounts);
257+
List<ServiceOfferingJoinVO> offerings = searchIncludingRemoved(sc, searchFilter, null, false);
258+
if (offerings != null) {
259+
uvList.addAll(offerings);
254260
}
255261
curr_index += DETAILS_BATCH_SIZE;
256262
}
@@ -264,9 +270,9 @@ public List<ServiceOfferingJoinVO> searchByIds(Long... offeringIds) {
264270
}
265271
SearchCriteria<ServiceOfferingJoinVO> sc = srvOfferingSearch.create();
266272
sc.setParameters("idIN", ids);
267-
List<ServiceOfferingJoinVO> accounts = searchIncludingRemoved(sc, null, null, false);
268-
if (accounts != null) {
269-
uvList.addAll(accounts);
273+
List<ServiceOfferingJoinVO> offerings = searchIncludingRemoved(sc, searchFilter, null, false);
274+
if (offerings != null) {
275+
uvList.addAll(offerings);
270276
}
271277
}
272278
return uvList;

ui/src/components/view/ListView.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,12 @@ export default {
534534
actions: {
535535
type: Array,
536536
default: () => []
537+
},
538+
currentPage: {
539+
type: Number
540+
},
541+
pageSize: {
542+
type: Number
537543
}
538544
},
539545
inject: ['parentFetchData', 'parentToggleLoading'],
@@ -754,8 +760,9 @@ export default {
754760
},
755761
updateOrder (data) {
756762
const promises = []
763+
const previousSortKeys = this.pageSize && this.currentPage ? this.pageSize * (this.currentPage - 1) : 0
757764
data.forEach((item, index) => {
758-
promises.push(this.handleUpdateOrder(item.id, index + 1))
765+
promises.push(this.handleUpdateOrder(item.id, previousSortKeys + index + 1))
759766
})
760767
Promise.all(promises).catch((reason) => {
761768
console.log(reason)

ui/src/views/AutogenView.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,8 @@
412412
:columns="columns"
413413
:items="items"
414414
:actions="actions"
415+
:currentPage="page"
416+
:pageSize="pageSize"
415417
:columnKeys="columnKeys"
416418
:selectedColumns="selectedColumns"
417419
ref="listview"

0 commit comments

Comments
 (0)