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);
|
pstmt.setObject(i++, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_logger.isDebugEnabled() && lock != null) {
|
if (s_logger.isDebugEnabled() && lock != null) {
|
||||||
txn.registerLock(pstmt.toString());
|
txn.registerLock(pstmt.toString());
|
||||||
}
|
}
|
||||||
@ -1342,22 +1341,39 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
|
|||||||
onClause.append("?");
|
onClause.append("?");
|
||||||
joinAttrList.add(join.getFirstAttributes()[i]);
|
joinAttrList.add(join.getFirstAttributes()[i]);
|
||||||
} else {
|
} else {
|
||||||
onClause.append(joinedTableNames.getOrDefault(join.getFirstAttributes()[i].table, join.getFirstAttributes()[i].table))
|
if ((join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) ||
|
||||||
.append(".")
|
(join.getSecondAttribute()[i].table == null && join.getSecondAttribute()[i].value == null)) {
|
||||||
.append(join.getFirstAttributes()[i].columnName);
|
onClause.append(joinedTableNames.getOrDefault(join.getSecondAttribute()[i].table, join.getFirstAttributes()[i].table))
|
||||||
}
|
.append(".");
|
||||||
onClause.append("=");
|
if (join.getFirstAttributes()[i].table == null && join.getFirstAttributes()[i].value == null) {
|
||||||
if (join.getSecondAttribute()[i].getValue() != null) {
|
onClause.append(join.getSecondAttribute()[i].columnName);
|
||||||
onClause.append("?");
|
} else {
|
||||||
joinAttrList.add(join.getSecondAttribute()[i]);
|
onClause.append(join.getFirstAttributes()[i].columnName);
|
||||||
} else {
|
}
|
||||||
if(!joinTableAlias.equals(joinTableName)) {
|
|
||||||
onClause.append(joinTableAlias);
|
|
||||||
} else {
|
} 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(" ");
|
onClause.append(" ");
|
||||||
|
|||||||
@ -34,6 +34,8 @@ import java.util.stream.Stream;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
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.StoragePool;
|
||||||
import com.cloud.storage.StoragePoolHostVO;
|
import com.cloud.storage.StoragePoolHostVO;
|
||||||
import com.cloud.event.EventVO;
|
import com.cloud.event.EventVO;
|
||||||
@ -549,6 +551,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
@Inject
|
@Inject
|
||||||
private NetworkDao networkDao;
|
private NetworkDao networkDao;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private IPAddressDao ipAddressDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private NicDao nicDao;
|
private NicDao nicDao;
|
||||||
|
|
||||||
@ -1453,6 +1458,22 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
if (isRootAdmin) {
|
if (isRootAdmin) {
|
||||||
userVmSearchBuilder.or("keywordInstanceName", userVmSearchBuilder.entity().getInstanceName(), Op.LIKE );
|
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();
|
userVmSearchBuilder.cp();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1546,6 +1567,9 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
userVmSearchCriteria.setParameters("keywordDisplayName", keywordMatch);
|
userVmSearchCriteria.setParameters("keywordDisplayName", keywordMatch);
|
||||||
userVmSearchCriteria.setParameters("keywordName", keywordMatch);
|
userVmSearchCriteria.setParameters("keywordName", keywordMatch);
|
||||||
userVmSearchCriteria.setParameters("keywordState", keyword);
|
userVmSearchCriteria.setParameters("keywordState", keyword);
|
||||||
|
userVmSearchCriteria.setParameters("keywordIpAddress", keywordMatch);
|
||||||
|
userVmSearchCriteria.setParameters("keywordPublicIpAddress", keywordMatch);
|
||||||
|
userVmSearchCriteria.setParameters("keywordIp6Address", keywordMatch);
|
||||||
if (isRootAdmin) {
|
if (isRootAdmin) {
|
||||||
userVmSearchCriteria.setParameters("keywordInstanceName", keywordMatch);
|
userVmSearchCriteria.setParameters("keywordInstanceName", keywordMatch);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user