server: list vm search vm ip using keyword (#7406)

Fixes #7390

Allows searching VMs by IP address using keyword parameter of the listVirtualMachine API.
This commit is contained in:
Abhishek Kumar 2023-04-11 12:00:38 +05:30 committed by GitHub
parent d6b581263f
commit 6886fca105
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 3 deletions

View File

@ -1162,11 +1162,15 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
if (keyword != null) {
SearchCriteria<UserVmJoinVO> 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);
}