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