This is an automated email from the ASF dual-hosted git repository. nvazquez pushed a commit to branch 4.19 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push: new abaf4b52ad1 Fix VGPU available devices listing (#9573) abaf4b52ad1 is described below commit abaf4b52ad18b71aea53604278f302a403413d30 Author: Nicolas Vazquez <nicovazque...@gmail.com> AuthorDate: Mon Sep 2 21:04:06 2024 -0300 Fix VGPU available devices listing (#9573) * Fix VGPU available devices listing * Missing space * Refactor --- framework/db/src/main/java/com/cloud/utils/db/Filter.java | 14 +++++++++++++- .../main/java/com/cloud/resource/ResourceManagerImpl.java | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/framework/db/src/main/java/com/cloud/utils/db/Filter.java b/framework/db/src/main/java/com/cloud/utils/db/Filter.java index 15161ab058f..fb8c9ee37fc 100644 --- a/framework/db/src/main/java/com/cloud/utils/db/Filter.java +++ b/framework/db/src/main/java/com/cloud/utils/db/Filter.java @@ -22,6 +22,7 @@ import javax.persistence.Column; import com.cloud.utils.Pair; import com.cloud.utils.ReflectUtil; +import org.apache.commons.lang3.StringUtils; /** * Try to use static initialization to help you in finding incorrect @@ -59,6 +60,11 @@ public class Filter { _orderBy = " ORDER BY RAND() LIMIT " + limit; } + public Filter(Long offset, Long limit) { + _offset = offset; + _limit = limit; + } + /** * Note that this copy constructor does not copy offset and limit. * @param that filter @@ -70,6 +76,10 @@ public class Filter { } public void addOrderBy(Class<?> clazz, String field, boolean ascending) { + addOrderBy(clazz, field, ascending, null); + } + + public void addOrderBy(Class<?> clazz, String field, boolean ascending, String tableAlias) { if (field == null) { return; } @@ -83,7 +93,9 @@ public class Filter { String name = column != null ? column.name() : field; StringBuilder order = new StringBuilder(); - if (column == null || column.table() == null || column.table().length() == 0) { + if (StringUtils.isNotBlank(tableAlias)) { + order.append(tableAlias); + } else if (column == null || column.table() == null || column.table().length() == 0) { order.append(DbUtil.getTableName(clazz)); } else { order.append(column.table()); diff --git a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java index 5d3ec62c56d..5ba79c2d7bd 100755 --- a/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/main/java/com/cloud/resource/ResourceManagerImpl.java @@ -3417,7 +3417,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager, @Override public List<HostGpuGroupsVO> listAvailableGPUDevice(final long hostId, final String groupName, final String vgpuType) { - final Filter searchFilter = new Filter(VGPUTypesVO.class, "remainingCapacity", false, null, null); + Filter searchFilter = new Filter(null, null); + searchFilter.addOrderBy(VGPUTypesVO.class, "remainingCapacity", false, "groupId"); final SearchCriteria<HostGpuGroupsVO> sc = _gpuAvailability.create(); sc.setParameters("hostId", hostId); sc.setParameters("groupName", groupName);