@@ -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