@@ -3067,20 +3067,34 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
30673067 }
30683068
30693069 if (currentVmOffering != null ) {
3070- List <String > tags = StringUtils .csvTagsToList (currentVmOffering .getTags ());
3071- tags .addAll (StringUtils .csvTagsToList (currentVmOffering .getHostTag ()));
3072- if (!tags .isEmpty ()) {
3070+ List <String > storageTags = StringUtils .csvTagsToList (currentVmOffering .getTags ());
3071+ if (!storageTags .isEmpty ()) {
30733072 SearchBuilder <ServiceOfferingJoinVO > sb = _srvOfferingJoinDao .createSearchBuilder ();
3074- for (int i = 0 ; i < tags . size (); i ++ ) {
3075- sb .and (Integer . toString ( i ) , sb .entity ().getTags (), Op .FIND_IN_SET );
3073+ for (String tag : storageTags ) {
3074+ sb .and (tag , sb .entity ().getTags (), Op .FIND_IN_SET );
30763075 }
30773076 sb .done ();
30783077
30793078 SearchCriteria <ServiceOfferingJoinVO > scc = sb .create ();
3080- for (int i = 0 ; i < tags . size (); i ++ ) {
3081- scc .setParameters (Integer . toString ( i ), tags . get ( i ) );
3079+ for (String tag : storageTags ) {
3080+ scc .setParameters (tag , tag );
30823081 }
3083- sc .addAnd ("tags" , SearchCriteria .Op .SC , scc );
3082+ sc .addAnd ("storageTags" , SearchCriteria .Op .SC , scc );
3083+ }
3084+
3085+ List <String > hostTags = StringUtils .csvTagsToList (currentVmOffering .getHostTag ());
3086+ if (!hostTags .isEmpty ()) {
3087+ SearchBuilder <ServiceOfferingJoinVO > sb = _srvOfferingJoinDao .createSearchBuilder ();
3088+ for (String tag : hostTags ) {
3089+ sb .and (tag , sb .entity ().getHostTag (), Op .FIND_IN_SET );
3090+ }
3091+ sb .done ();
3092+
3093+ SearchCriteria <ServiceOfferingJoinVO > scc = sb .create ();
3094+ for (String tag : hostTags ) {
3095+ scc .setParameters (tag , tag );
3096+ }
3097+ sc .addAnd ("hostTags" , SearchCriteria .Op .SC , scc );
30843098 }
30853099 }
30863100
0 commit comments