Merge pull request #11667 from ioito/hotfix/qx-id-sql

fix(keystone): avoid sql error
This commit is contained in:
Zexi Li
2021-07-19 14:21:56 +08:00
committed by GitHub
4 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -209,7 +209,7 @@ func (manager *SCloudproviderregionManager) QueryRelatedRegionIds(cloudAccounts
if len(cloudAccounts) > 0 {
cpq := CloudaccountManager.Query().SubQuery()
subcpq := cpq.Query(cpq.Field("id")).Filter(sqlchemy.OR(
sqlchemy.In(cpq.Field("id"), cloudAccounts),
sqlchemy.In(cpq.Field("id"), stringutils2.RemoveUtf8Strings(cloudAccounts)),
sqlchemy.In(cpq.Field("name"), cloudAccounts),
)).SubQuery()
providers := CloudproviderManager.Query().SubQuery()
+1 -1
View File
@@ -1144,7 +1144,7 @@ func (manager *SCloudproviderManager) ListItemFilter(
if len(accountArr) > 0 {
cpq := CloudaccountManager.Query().SubQuery()
subcpq := cpq.Query(cpq.Field("id")).Filter(sqlchemy.OR(
sqlchemy.In(cpq.Field("id"), accountArr),
sqlchemy.In(cpq.Field("id"), stringutils2.RemoveUtf8Strings(accountArr)),
sqlchemy.In(cpq.Field("name"), accountArr),
)).SubQuery()
q = q.In("cloudaccount_id", subcpq)
+1 -1
View File
@@ -1122,7 +1122,7 @@ func (sm *SWireManager) FetchByIdsOrNames(idOrNames []string) ([]SWire, error) {
if len(idOrNames) == 1 {
q.Filter(sqlchemy.OR(sqlchemy.Equals(q.Field("id"), idOrNames[0]), sqlchemy.Equals(q.Field("name"), idOrNames[0])))
} else {
q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), idOrNames), sqlchemy.In(q.Field("name"), idOrNames)))
q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), stringutils2.RemoveUtf8Strings(idOrNames)), sqlchemy.In(q.Field("name"), idOrNames)))
}
ret := make([]SWire, 0, len(idOrNames))
err := db.FetchModelObjects(sm, q, &ret)
+7 -7
View File
@@ -527,7 +527,7 @@ func (manager *SAssignmentManager) queryAll(
if len(users) > 0 {
subq := UserManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), users),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(users)),
sqlchemy.ContainsAny(subq.Field("name"), users),
))
q = q.In("type", []string{api.AssignmentUserProject, api.AssignmentUserDomain}).In("user_id", subq.SubQuery())
@@ -538,7 +538,7 @@ func (manager *SAssignmentManager) queryAll(
if len(groups) > 0 {
subq := GroupManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), groups),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(groups)),
sqlchemy.ContainsAny(subq.Field("name"), groups),
))
q = q.In("type", []string{api.AssignmentGroupProject, api.AssignmentGroupDomain}).In("group_id", subq.SubQuery())
@@ -549,7 +549,7 @@ func (manager *SAssignmentManager) queryAll(
if len(roles) > 0 {
subq := RoleManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), roles),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(roles)),
sqlchemy.ContainsAny(subq.Field("name"), roles),
))
q = q.In("role_id", subq.SubQuery())
@@ -560,7 +560,7 @@ func (manager *SAssignmentManager) queryAll(
if len(projects) > 0 {
subq := ProjectManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), projects),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(projects)),
sqlchemy.ContainsAny(subq.Field("name"), projects),
))
q = q.In("project_id", subq.SubQuery()).In("type", []string{api.AssignmentUserProject, api.AssignmentGroupProject})
@@ -574,7 +574,7 @@ func (manager *SAssignmentManager) queryAll(
domainQ := DomainManager.Query("id", "name").SubQuery()
subq = subq.Join(domainQ, sqlchemy.Equals(subq.Field("domain_id"), domainQ.Field("id")))
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(domainQ.Field("id"), projectDomains),
sqlchemy.In(domainQ.Field("id"), stringutils2.RemoveUtf8Strings(projectDomains)),
sqlchemy.ContainsAny(domainQ.Field("name"), projectDomains),
))
q = q.In("project_id", subq.SubQuery()).In("type", []string{api.AssignmentUserProject, api.AssignmentGroupProject})
@@ -586,7 +586,7 @@ func (manager *SAssignmentManager) queryAll(
if len(domains) > 0 {
subq := DomainManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), domains),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(domains)),
sqlchemy.ContainsAny(subq.Field("name"), domains),
))
q = q.In("domain_id", subq.SubQuery()).In("type", []string{api.AssignmentUserDomain, api.AssignmentGroupDomain})
@@ -670,7 +670,7 @@ func (manager *SAssignmentManager) FetchAll(
if len(userStrs) > 0 {
subq := UserManager.Query("id")
subq = subq.Filter(sqlchemy.OR(
sqlchemy.In(subq.Field("id"), userStrs),
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(userStrs)),
sqlchemy.ContainsAny(subq.Field("name"), userStrs),
))
q2 = q2.Filter(sqlchemy.In(memberships.Field("user_id"), subq.SubQuery()))