Merge pull request #12052 from zexi/automated-cherry-pick-of-#12050-upstream-release-3.8

Automated cherry pick of #12050: fix(glance): image fuzzy match by distro
This commit is contained in:
Zexi Li
2021-08-27 18:02:46 +08:00
committed by GitHub
+5 -2
View File
@@ -1271,11 +1271,14 @@ func (manager *SImageManager) ListItemFilter(
propQ := ImagePropertyManager.Query().In("name", nameKeys)
conds := make([]sqlchemy.ICondition, 0)
for _, val := range vals {
conds = append(conds, sqlchemy.Like(propQ.Field("value"), val))
field := propQ.Field("value")
conds = append(conds,
sqlchemy.Like(field, val),
sqlchemy.Contains(field, val))
}
propQ.Filter(sqlchemy.OR(conds...))
propSq := propQ.SubQuery()
q = q.Join(propSq, sqlchemy.Equals(q.Field("id"), propSq.Field("image_id")))
q = q.Join(propSq, sqlchemy.Equals(q.Field("id"), propSq.Field("image_id"))).Distinct()
}
propFilter([]string{api.IMAGE_OS_TYPE}, query.OsTypes)
propFilter([]string{api.IMAGE_OS_DISTRO, "distro"}, query.Distributions)