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);

Reply via email to