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 <[email protected]>
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);