mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-30 18:23:35 +08:00
db_dispatcher: delay compute to where needed
This commit is contained in:
@@ -829,8 +829,6 @@ func getModelItemDetails(manager IModelManager, item IModel, ctx context.Context
|
||||
func getItemDetails(manager IModelManager, item IModel, ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (jsonutils.JSONObject, error) {
|
||||
metaFields, excludeFields := GetDetailFields(manager, userCred)
|
||||
fieldFilter := jsonutils.GetQueryStringArray(query, "field")
|
||||
getFields := mergeFields(metaFields, fieldFilter, IsAllowGet(rbacutils.ScopeSystem, userCred, item))
|
||||
excludes, _, _ := stringutils2.Split(stringutils2.NewSortedStrings(excludeFields), getFields)
|
||||
|
||||
var sortedListFields stringutils2.SSortedStrings
|
||||
if len(fieldFilter) > 0 {
|
||||
@@ -841,6 +839,8 @@ func getItemDetails(manager IModelManager, item IModel, ctx context.Context, use
|
||||
return nil, errors.Wrap(err, "FetchCustomizeColumns")
|
||||
}
|
||||
if len(extraRows) == 1 {
|
||||
getFields := mergeFields(metaFields, fieldFilter, IsAllowGet(rbacutils.ScopeSystem, userCred, item))
|
||||
excludes, _, _ := stringutils2.Split(stringutils2.NewSortedStrings(excludeFields), getFields)
|
||||
return extraRows[0].CopyExcludes(excludes...), nil
|
||||
}
|
||||
log.Errorf("FetchCustomizeColumns return incorrect number of objects %d", len(extraRows))
|
||||
|
||||
Reference in New Issue
Block a user