mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #12683 from ioito/hotfix/qx-user-tag-export
fix(region): export user_tags
This commit is contained in:
@@ -97,6 +97,31 @@ func (manager *SStandaloneResourceBaseManager) ListItemFilter(
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (manager *SStandaloneResourceBaseManager) ListItemExportKeys(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, keys stringutils2.SSortedStrings) (*sqlchemy.SQuery, error) {
|
||||
var err error
|
||||
q, err = manager.SResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SResourceBaseManager.ListItemExportKeys")
|
||||
}
|
||||
|
||||
if keys.Contains("user_tags") {
|
||||
userTagsQuery := Metadata.Query().Startswith("id", manager.keyword+"::").
|
||||
Startswith("key", USER_TAG_PREFIX).GroupBy("id")
|
||||
userTagsQuery.AppendField(sqlchemy.SubStr("resource_id", userTagsQuery.Field("id"), len(manager.keyword)+3, 0))
|
||||
userTagsQuery.AppendField(
|
||||
sqlchemy.GROUP_CONCAT("user_tags", sqlchemy.CONCAT("",
|
||||
sqlchemy.SubStr("", userTagsQuery.Field("key"), len(USER_TAG_PREFIX)+1, 0),
|
||||
sqlchemy.NewStringField(":"),
|
||||
userTagsQuery.Field("value"),
|
||||
)))
|
||||
subQ := userTagsQuery.SubQuery()
|
||||
q.LeftJoin(subQ, sqlchemy.Equals(q.Field("id"), subQ.Field("resource_id")))
|
||||
q.AppendField(subQ.Field("user_tags"))
|
||||
}
|
||||
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (manager *SStandaloneResourceBaseManager) OrderByExtraFields(
|
||||
ctx context.Context,
|
||||
q *sqlchemy.SQuery,
|
||||
|
||||
@@ -732,21 +732,6 @@ func (manager *SVirtualResourceBaseManager) ListItemExportKeys(ctx context.Conte
|
||||
return nil, errors.Wrap(err, "SProjectizedResourceBaseManager.ListItemExportKeys")
|
||||
}
|
||||
|
||||
if keys.Contains("user_tags") {
|
||||
guestUserTagsQuery := Metadata.Query().Startswith("id", manager.keyword+"::").
|
||||
Startswith("key", USER_TAG_PREFIX).GroupBy("id")
|
||||
guestUserTagsQuery.AppendField(sqlchemy.SubStr("resource_id", guestUserTagsQuery.Field("id"), len(manager.keyword)+3, 0))
|
||||
guestUserTagsQuery.AppendField(
|
||||
sqlchemy.GROUP_CONCAT("user_tags", sqlchemy.CONCAT("",
|
||||
sqlchemy.SubStr("", guestUserTagsQuery.Field("key"), len(USER_TAG_PREFIX)+1, 0),
|
||||
sqlchemy.NewStringField(":"),
|
||||
guestUserTagsQuery.Field("value"),
|
||||
)))
|
||||
subQ := guestUserTagsQuery.SubQuery()
|
||||
q.LeftJoin(subQ, sqlchemy.Equals(q.Field("id"), subQ.Field("resource_id")))
|
||||
q.AppendField(subQ.Field("user_tags"))
|
||||
}
|
||||
|
||||
return q, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -315,6 +315,10 @@ func (self *SConfigManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQue
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (manager *SConfigManager) ListItemExportKeys(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, keys stringutils2.SSortedStrings) (*sqlchemy.SQuery, error) {
|
||||
return manager.SStandaloneResourceBaseManager.ListItemExportKeys(ctx, q, userCred, keys)
|
||||
}
|
||||
|
||||
func (cm *SConfigManager) FetchCustomizeColumns(
|
||||
ctx context.Context,
|
||||
userCred mcclient.TokenCredential,
|
||||
|
||||
Reference in New Issue
Block a user