|
141 | 141 | import com.cloud.network.security.dao.SecurityGroupDao; |
142 | 142 | import com.cloud.network.security.dao.SecurityGroupVMMapDao; |
143 | 143 | import com.cloud.network.vpc.VpcManager; |
| 144 | +import com.cloud.network.vpc.VpcVO; |
| 145 | +import com.cloud.network.vpc.dao.VpcDao; |
144 | 146 | import com.cloud.offering.NetworkOffering; |
145 | 147 | import com.cloud.offering.NetworkOffering.Availability; |
146 | 148 | import com.cloud.offering.ServiceOffering; |
@@ -319,6 +321,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager |
319 | 321 | @Inject |
320 | 322 | protected NicDao _nicDao; |
321 | 323 | @Inject |
| 324 | + protected VpcDao _vpcDao; |
| 325 | + @Inject |
322 | 326 | protected RulesManager _rulesMgr; |
323 | 327 | @Inject |
324 | 328 | protected LoadBalancingRulesManager _lbMgr; |
@@ -3012,6 +3016,7 @@ public List<UserVmVO> searchForUserVMs(ListVMsCmd cmd) { |
3012 | 3016 | c.addCriteria(Criteria.NETWORKID, cmd.getNetworkId()); |
3013 | 3017 | c.addCriteria(Criteria.TEMPLATE_ID, cmd.getTemplateId()); |
3014 | 3018 | c.addCriteria(Criteria.ISO_ID, cmd.getIsoId()); |
| 3019 | + c.addCriteria(Criteria.VPC_ID, cmd.getVpcId()); |
3015 | 3020 |
|
3016 | 3021 | if (domainId != null) { |
3017 | 3022 | c.addCriteria(Criteria.DOMAINID, domainId); |
@@ -3063,6 +3068,7 @@ public List<UserVmVO> searchForUserVMs(Criteria c, Account caller, Long domainId |
3063 | 3068 | Object storageId = c.getCriteria(Criteria.STORAGE_ID); |
3064 | 3069 | Object templateId = c.getCriteria(Criteria.TEMPLATE_ID); |
3065 | 3070 | Object isoId = c.getCriteria(Criteria.ISO_ID); |
| 3071 | + Object vpcId = c.getCriteria(Criteria.VPC_ID); |
3066 | 3072 |
|
3067 | 3073 | sb.and("displayName", sb.entity().getDisplayName(), SearchCriteria.Op.LIKE); |
3068 | 3074 | sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ); |
@@ -3110,6 +3116,19 @@ public List<UserVmVO> searchForUserVMs(Criteria c, Account caller, Long domainId |
3110 | 3116 |
|
3111 | 3117 | sb.join("nicSearch", nicSearch, sb.entity().getId(), nicSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER); |
3112 | 3118 | } |
| 3119 | + |
| 3120 | + if(vpcId != null && networkId == null){ |
| 3121 | + SearchBuilder<NicVO> nicSearch = _nicDao.createSearchBuilder(); |
| 3122 | + |
| 3123 | + SearchBuilder<NetworkVO> networkSearch = _networkDao.createSearchBuilder(); |
| 3124 | + nicSearch.join("networkSearch", networkSearch, nicSearch.entity().getNetworkId(), networkSearch.entity().getId(), JoinBuilder.JoinType.INNER); |
| 3125 | + |
| 3126 | + SearchBuilder<VpcVO> vpcSearch = _vpcDao.createSearchBuilder(); |
| 3127 | + vpcSearch.and("vpcId", vpcSearch.entity().getId(), SearchCriteria.Op.EQ); |
| 3128 | + networkSearch.join("vpcSearch", vpcSearch, networkSearch.entity().getVpcId(), vpcSearch.entity().getId(), JoinBuilder.JoinType.INNER); |
| 3129 | + |
| 3130 | + sb.join("nicSearch", nicSearch, sb.entity().getId(), nicSearch.entity().getInstanceId(), JoinBuilder.JoinType.INNER); |
| 3131 | + } |
3113 | 3132 |
|
3114 | 3133 | if (storageId != null) { |
3115 | 3134 | SearchBuilder<VolumeVO> volumeSearch = _volsDao.createSearchBuilder(); |
@@ -3162,6 +3181,10 @@ public List<UserVmVO> searchForUserVMs(Criteria c, Account caller, Long domainId |
3162 | 3181 | if (networkId != null) { |
3163 | 3182 | sc.setJoinParameters("nicSearch", "networkId", networkId); |
3164 | 3183 | } |
| 3184 | + |
| 3185 | + if(vpcId != null && networkId == null){ |
| 3186 | + sc.setJoinParameters("vpcSearch", "vpcId", vpcId); |
| 3187 | + } |
3165 | 3188 |
|
3166 | 3189 | if (name != null) { |
3167 | 3190 | sc.setParameters("name", "%" + name + "%"); |
|
0 commit comments