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