mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Filter list VMs by IP address (#9547)
This commit is contained in:
parent
0602f46d82
commit
017cf2c367
@ -421,7 +421,6 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
pstmt.setObject(i++, value);
|
||||
}
|
||||
}
|
||||
|
||||
if (s_logger.isDebugEnabled() && lock != null) {
|
||||
txn.registerLock(pstmt.toString());
|
||||
}
|
||||
@ -1342,22 +1341,39 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
||||
onClause.append("?");
|
||||
joinAttrList.add(join.getFirstAttributes()[i]);
|
||||
} else {
|
||||
onClause.append(joinedTableNames.getOrDefault(join.getFirstAttributes()[i].table, join.getFirstAttributes()[i].table))
|
||||
.append(".")
|
||||
.append(join.getFirstAttributes()[i].columnName);
|
||||
}
|
||||
onClause.append("=");
|
||||
if (join.getSecondAttribute()[i].getValue() != null) {
|
||||
onClause.append("?");
|
||||
joinAttrList.add(join.getSecondAttribute()[i]);
|
||||
} else {
|
||||
if(!joinTableAlias.equals(joinTableName)) {
|
||||
onClause.append(joinTableAlias);
|
||||
if ((join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) ||
|
||||
(join.getSecondAttribute()[i].table == null && join.getSecondAttribute()[i].value == null)) {
|
||||
onClause.append(joinedTableNames.getOrDefault(join.getSecondAttribute()[i].table, join.getFirstAttributes()[i].table))
|
||||
.append(".");
|
||||
if (join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) {
|
||||
onClause.append(join.getSecondAttribute()[i].columnName);
|
||||
} else {
|
||||
onClause.append(join.getFirstAttributes()[i].columnName);
|
||||
}
|
||||
|
||||
} else {
|
||||
onClause.append(joinTableName);
|
||||
onClause.append(joinedTableNames.getOrDefault(join.getFirstAttributes()[i].table, join.getFirstAttributes()[i].table))
|
||||
.append(".")
|
||||
.append(join.getFirstAttributes()[i].columnName);
|
||||
}
|
||||
}
|
||||
if ((join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) ||
|
||||
(join.getSecondAttribute()[i].table == null && join.getSecondAttribute()[i].value == null)) {
|
||||
onClause.append(" IS NULL");
|
||||
} else {
|
||||
onClause.append("=");
|
||||
if (join.getSecondAttribute()[i].getValue() != null) {
|
||||
onClause.append("?");
|
||||
joinAttrList.add(join.getSecondAttribute()[i]);
|
||||
} else {
|
||||
if (!joinTableAlias.equals(joinTableName)) {
|
||||
onClause.append(joinTableAlias);
|
||||
} else {
|
||||
onClause.append(joinTableName);
|
||||
}
|
||||
onClause.append(".")
|
||||
.append(join.getSecondAttribute()[i].columnName);
|
||||
}
|
||||
onClause.append(".")
|
||||
.append(join.getSecondAttribute()[i].columnName);
|
||||
}
|
||||
}
|
||||
onClause.append(" ");
|
||||
|
||||
@ -34,6 +34,8 @@ import java.util.stream.Stream;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.IPAddressVO;
|
||||
import com.cloud.storage.StoragePool;
|
||||
import com.cloud.storage.StoragePoolHostVO;
|
||||
import com.cloud.event.EventVO;
|
||||
@ -549,6 +551,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
@Inject
|
||||
private NetworkDao networkDao;
|
||||
|
||||
@Inject
|
||||
private IPAddressDao ipAddressDao;
|
||||
|
||||
@Inject
|
||||
private NicDao nicDao;
|
||||
|
||||
@ -1453,6 +1458,22 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
if (isRootAdmin) {
|
||||
userVmSearchBuilder.or("keywordInstanceName", userVmSearchBuilder.entity().getInstanceName(), Op.LIKE );
|
||||
}
|
||||
|
||||
SearchBuilder<IPAddressVO> ipAddressSearch = ipAddressDao.createSearchBuilder();
|
||||
userVmSearchBuilder.join("ipAddressSearch", ipAddressSearch,
|
||||
ipAddressSearch.entity().getAssociatedWithVmId(), userVmSearchBuilder.entity().getId(), JoinBuilder.JoinType.LEFT);
|
||||
|
||||
SearchBuilder<NicVO> nicSearch = nicDao.createSearchBuilder();
|
||||
userVmSearchBuilder.join("nicSearch", nicSearch, JoinBuilder.JoinType.LEFT,
|
||||
JoinBuilder.JoinCondition.AND,
|
||||
nicSearch.entity().getInstanceId(), userVmSearchBuilder.entity().getId(),
|
||||
nicSearch.entity().getRemoved(), userVmSearchBuilder.entity().setLong(null));
|
||||
|
||||
userVmSearchBuilder.or("ipAddressSearch", "keywordPublicIpAddress", ipAddressSearch.entity().getAddress(), Op.LIKE);
|
||||
|
||||
userVmSearchBuilder.or("nicSearch", "keywordIpAddress", nicSearch.entity().getIPv4Address(), Op.LIKE);
|
||||
userVmSearchBuilder.or("nicSearch", "keywordIp6Address", nicSearch.entity().getIPv6Address(), Op.LIKE);
|
||||
|
||||
userVmSearchBuilder.cp();
|
||||
}
|
||||
|
||||
@ -1546,6 +1567,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
userVmSearchCriteria.setParameters("keywordDisplayName", keywordMatch);
|
||||
userVmSearchCriteria.setParameters("keywordName", keywordMatch);
|
||||
userVmSearchCriteria.setParameters("keywordState", keyword);
|
||||
userVmSearchCriteria.setParameters("keywordIpAddress", keywordMatch);
|
||||
userVmSearchCriteria.setParameters("keywordPublicIpAddress", keywordMatch);
|
||||
userVmSearchCriteria.setParameters("keywordIp6Address", keywordMatch);
|
||||
if (isRootAdmin) {
|
||||
userVmSearchCriteria.setParameters("keywordInstanceName", keywordMatch);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user