@@ -551,6 +551,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
551551 @ Inject
552552 private NetworkDao networkDao ;
553553
554+ @ Inject
555+ private IPAddressDao ipAddressDao ;
556+
554557 @ Inject
555558 private NicDao nicDao ;
556559
@@ -1461,6 +1464,22 @@ private Pair<List<Long>, Integer> searchForUserVMIdsAndCount(ListVMsCmd cmd) {
14611464 if (isRootAdmin ) {
14621465 userVmSearchBuilder .or ("keywordInstanceName" , userVmSearchBuilder .entity ().getInstanceName (), Op .LIKE );
14631466 }
1467+
1468+ SearchBuilder <IPAddressVO > ipAddressSearch = ipAddressDao .createSearchBuilder ();
1469+ userVmSearchBuilder .join ("ipAddressSearch" , ipAddressSearch ,
1470+ ipAddressSearch .entity ().getAssociatedWithVmId (), userVmSearchBuilder .entity ().getId (), JoinBuilder .JoinType .LEFT );
1471+
1472+ SearchBuilder <NicVO > nicSearch = nicDao .createSearchBuilder ();
1473+ userVmSearchBuilder .join ("nicSearch" , nicSearch , JoinBuilder .JoinType .LEFT ,
1474+ JoinBuilder .JoinCondition .AND ,
1475+ nicSearch .entity ().getInstanceId (), userVmSearchBuilder .entity ().getId (),
1476+ nicSearch .entity ().getRemoved (), userVmSearchBuilder .entity ().setLong (null ));
1477+
1478+ userVmSearchBuilder .or ("ipAddressSearch" , "keywordPublicIpAddress" , ipAddressSearch .entity ().getAddress (), Op .LIKE );
1479+
1480+ userVmSearchBuilder .or ("nicSearch" , "keywordIpAddress" , nicSearch .entity ().getIPv4Address (), Op .LIKE );
1481+ userVmSearchBuilder .or ("nicSearch" , "keywordIp6Address" , nicSearch .entity ().getIPv6Address (), Op .LIKE );
1482+
14641483 userVmSearchBuilder .cp ();
14651484 }
14661485
@@ -1554,6 +1573,9 @@ private Pair<List<Long>, Integer> searchForUserVMIdsAndCount(ListVMsCmd cmd) {
15541573 userVmSearchCriteria .setParameters ("keywordDisplayName" , keywordMatch );
15551574 userVmSearchCriteria .setParameters ("keywordName" , keywordMatch );
15561575 userVmSearchCriteria .setParameters ("keywordState" , keyword );
1576+ userVmSearchCriteria .setParameters ("keywordIpAddress" , keywordMatch );
1577+ userVmSearchCriteria .setParameters ("keywordPublicIpAddress" , keywordMatch );
1578+ userVmSearchCriteria .setParameters ("keywordIp6Address" , keywordMatch );
15571579 if (isRootAdmin ) {
15581580 userVmSearchCriteria .setParameters ("keywordInstanceName" , keywordMatch );
15591581 }
0 commit comments