Skip to content

Commit 9bc3b7b

Browse files
GutoVeroneziGutoVeronezi
andauthored
List service offerings without host tags when filtering VM which the current service offering has host tags (#6359)
Co-authored-by: GutoVeronezi <daniel@scclouds.com.br>
1 parent ac28571 commit 9bc3b7b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

server/src/main/java/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3319,17 +3319,22 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
33193319

33203320
List<String> hostTags = com.cloud.utils.StringUtils.csvTagsToList(currentVmOffering.getHostTag());
33213321
if (!hostTags.isEmpty()) {
3322-
SearchBuilder<ServiceOfferingJoinVO> sb = _srvOfferingJoinDao.createSearchBuilder();
3322+
SearchBuilder<ServiceOfferingJoinVO> hostTagsSearchBuilder = _srvOfferingJoinDao.createSearchBuilder();
33233323
for(String tag : hostTags) {
3324-
sb.and(tag, sb.entity().getHostTag(), Op.FIND_IN_SET);
3324+
hostTagsSearchBuilder.and(tag, hostTagsSearchBuilder.entity().getHostTag(), Op.FIND_IN_SET);
33253325
}
3326-
sb.done();
3326+
hostTagsSearchBuilder.done();
33273327

3328-
SearchCriteria<ServiceOfferingJoinVO> scc = sb.create();
3328+
SearchCriteria<ServiceOfferingJoinVO> hostTagsSearchCriteria = hostTagsSearchBuilder.create();
33293329
for(String tag : hostTags) {
3330-
scc.setParameters(tag, tag);
3330+
hostTagsSearchCriteria.setParameters(tag, tag);
33313331
}
3332-
sc.addAnd("hostTags", SearchCriteria.Op.SC, scc);
3332+
3333+
SearchCriteria<ServiceOfferingJoinVO> finalHostTagsSearchCriteria = _srvOfferingJoinDao.createSearchCriteria();
3334+
finalHostTagsSearchCriteria.addOr("hostTag", Op.NULL);
3335+
finalHostTagsSearchCriteria.addOr("hostTag", Op.SC, hostTagsSearchCriteria);
3336+
3337+
sc.addAnd("hostTagsConstraint", SearchCriteria.Op.SC, finalHostTagsSearchCriteria);
33333338
}
33343339
}
33353340

0 commit comments

Comments
 (0)