This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/main by this push:
new 9bc3b7b98c List service offerings without host tags when filtering VM
which the current service offering has host tags (#6359)
9bc3b7b98c is described below
commit 9bc3b7b98c18821a550133680cd5e4df43200c9e
Author: Daniel Augusto Veronezi Salvador
<[email protected]>
AuthorDate: Tue Aug 2 03:50:56 2022 -0300
List service offerings without host tags when filtering VM which the
current service offering has host tags (#6359)
Co-authored-by: GutoVeronezi <[email protected]>
---
.../main/java/com/cloud/api/query/QueryManagerImpl.java | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
index 57c9aa82ca..19997cc576 100644
--- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java
@@ -3319,17 +3319,22 @@ public class QueryManagerImpl extends
MutualExclusiveIdsManagerBase implements Q
List<String> hostTags =
com.cloud.utils.StringUtils.csvTagsToList(currentVmOffering.getHostTag());
if (!hostTags.isEmpty()) {
- SearchBuilder<ServiceOfferingJoinVO> sb =
_srvOfferingJoinDao.createSearchBuilder();
+ SearchBuilder<ServiceOfferingJoinVO> hostTagsSearchBuilder =
_srvOfferingJoinDao.createSearchBuilder();
for(String tag : hostTags) {
- sb.and(tag, sb.entity().getHostTag(), Op.FIND_IN_SET);
+ hostTagsSearchBuilder.and(tag,
hostTagsSearchBuilder.entity().getHostTag(), Op.FIND_IN_SET);
}
- sb.done();
+ hostTagsSearchBuilder.done();
- SearchCriteria<ServiceOfferingJoinVO> scc = sb.create();
+ SearchCriteria<ServiceOfferingJoinVO> hostTagsSearchCriteria =
hostTagsSearchBuilder.create();
for(String tag : hostTags) {
- scc.setParameters(tag, tag);
+ hostTagsSearchCriteria.setParameters(tag, tag);
}
- sc.addAnd("hostTags", SearchCriteria.Op.SC, scc);
+
+ SearchCriteria<ServiceOfferingJoinVO>
finalHostTagsSearchCriteria = _srvOfferingJoinDao.createSearchCriteria();
+ finalHostTagsSearchCriteria.addOr("hostTag", Op.NULL);
+ finalHostTagsSearchCriteria.addOr("hostTag", Op.SC,
hostTagsSearchCriteria);
+
+ sc.addAnd("hostTagsConstraint", SearchCriteria.Op.SC,
finalHostTagsSearchCriteria);
}
}