From 6886fca10508b605a29460dcf99c812b0bb24c6d Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Tue, 11 Apr 2023 12:00:38 +0530 Subject: [PATCH] server: list vm search vm ip using keyword (#7406) Fixes #7390 Allows searching VMs by IP address using keyword parameter of the listVirtualMachine API. --- .../java/com/cloud/api/query/QueryManagerImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 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 211e6db19c0..6fecd2c3c6d 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -1162,11 +1162,15 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q if (keyword != null) { SearchCriteria ssc = _userVmJoinDao.createSearchCriteria(); - ssc.addOr("displayName", SearchCriteria.Op.LIKE, "%" + keyword + "%"); - ssc.addOr("name", SearchCriteria.Op.LIKE, "%" + keyword + "%"); + String likeKeyword = String.format("%%%s%%", keyword); + ssc.addOr("displayName", SearchCriteria.Op.LIKE, likeKeyword); + ssc.addOr("name", SearchCriteria.Op.LIKE, likeKeyword); if (isRootAdmin) { - ssc.addOr("instanceName", SearchCriteria.Op.LIKE, "%" + keyword + "%"); + ssc.addOr("instanceName", SearchCriteria.Op.LIKE, likeKeyword); } + ssc.addOr("ipAddress", SearchCriteria.Op.LIKE, likeKeyword); + ssc.addOr("publicIpAddress", SearchCriteria.Op.LIKE, likeKeyword); + ssc.addOr("ip6Address", SearchCriteria.Op.LIKE, likeKeyword); ssc.addOr("state", SearchCriteria.Op.EQ, keyword); sc.addAnd("displayName", SearchCriteria.Op.SC, ssc); }