This is an automated email from the ASF dual-hosted git repository.

pearl11594 pushed a commit to branch fix-filter-vms-ip
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit dbb2650f088686987cf2ba6138f75a92984ee2dd
Author: Pearl Dsilva <pearl1...@gmail.com>
AuthorDate: Mon Aug 19 17:56:47 2024 -0400

    Filter list VMs by IP address
---
 .../java/com/cloud/api/query/QueryManagerImpl.java | 26 ++++++++++++++--------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java 
b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
index 5286dad29e4..bf5bc8e639b 100644
--- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
@@ -1447,13 +1447,18 @@ public class QueryManagerImpl extends 
MutualExclusiveIdsManagerBase implements Q
         }
 
         if (keyword != null) {
-            userVmSearchBuilder.and().op("keywordDisplayName", 
userVmSearchBuilder.entity().getDisplayName(), Op.LIKE);
-            userVmSearchBuilder.or("keywordName", 
userVmSearchBuilder.entity().getHostName(), Op.LIKE);
-            userVmSearchBuilder.or("keywordState", 
userVmSearchBuilder.entity().getState(), Op.EQ);
+            SearchBuilder<UserVmJoinVO> userVmJoinSearchBuilder = 
_userVmJoinDao.createSearchBuilder();
+            userVmJoinSearchBuilder.and().op("keywordDisplayName", 
userVmJoinSearchBuilder.entity().getDisplayName(), Op.LIKE);
+            userVmJoinSearchBuilder.or("keywordName", 
userVmJoinSearchBuilder.entity().getHostName(), Op.LIKE);
+            userVmJoinSearchBuilder.or("keywordState", 
userVmJoinSearchBuilder.entity().getState(), Op.EQ);
+            userVmJoinSearchBuilder.or("keywordIpAddress", 
userVmJoinSearchBuilder.entity().getIpAddress(), Op.LIKE);
+            userVmJoinSearchBuilder.or("keywordPublicIpAddress", 
userVmJoinSearchBuilder.entity().getPublicIpAddress(), Op.LIKE);
+            userVmJoinSearchBuilder.or("keywordIp6Address", 
userVmJoinSearchBuilder.entity().getIp6Address(), Op.LIKE);
             if (isRootAdmin) {
-                userVmSearchBuilder.or("keywordInstanceName", 
userVmSearchBuilder.entity().getInstanceName(), Op.LIKE );
+                userVmJoinSearchBuilder.or("keywordInstanceName", 
userVmJoinSearchBuilder.entity().getInstanceName(), Op.LIKE );
             }
-            userVmSearchBuilder.cp();
+            userVmJoinSearchBuilder.cp();
+            userVmSearchBuilder.join("keyword", userVmJoinSearchBuilder, 
userVmJoinSearchBuilder.entity().getId(), userVmSearchBuilder.entity().getId(), 
JoinBuilder.JoinType.INNER);
         }
 
         if (backupOfferingId != null) {
@@ -1543,11 +1548,14 @@ public class QueryManagerImpl extends 
MutualExclusiveIdsManagerBase implements Q
 
         if (keyword != null) {
             String keywordMatch = "%" + keyword + "%";
-            userVmSearchCriteria.setParameters("keywordDisplayName", 
keywordMatch);
-            userVmSearchCriteria.setParameters("keywordName", keywordMatch);
-            userVmSearchCriteria.setParameters("keywordState", keyword);
+            
userVmSearchCriteria.setJoinParameters("keyword","keywordDisplayName", 
keywordMatch);
+            userVmSearchCriteria.setJoinParameters("keyword","keywordName", 
keywordMatch);
+            userVmSearchCriteria.setJoinParameters("keyword","keywordState", 
keywordMatch);
+            
userVmSearchCriteria.setJoinParameters("keyword","keywordIpAddress", 
keywordMatch);
+            
userVmSearchCriteria.setJoinParameters("keyword","keywordPublicIpAddress", 
keywordMatch);
+            userVmSearchCriteria.setJoinParameters("keyword", 
"keywordIp6Address", keywordMatch);
             if (isRootAdmin) {
-                userVmSearchCriteria.setParameters("keywordInstanceName", 
keywordMatch);
+                userVmSearchCriteria.setJoinParameters("keyword", 
"keywordInstanceName", keywordMatch);
             }
         }
 

Reply via email to