Merge pull request #11826 from ioito/hotfix/qx-status-filter

fix(region): add resource statistics filter params
This commit is contained in:
Zexi Li
2021-08-06 10:03:15 +08:00
committed by GitHub
4 changed files with 7 additions and 36 deletions
@@ -22,9 +22,9 @@ import (
"yunion.io/x/sqlchemy"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
@@ -82,20 +82,13 @@ func (manager *SEnabledStatusInfrasResourceBaseManager) GetPropertyStatistics(ct
var err error
q := manager.Query()
q, err = ListItemFilter(im, ctx, q, userCred, query)
q, err = ListItemQueryFilters(im, ctx, q, userCred, query, policy.PolicyActionList)
if err != nil {
return nil, err
}
sq := q.SubQuery()
statQ := sq.Query(sq.Field("status"), sqlchemy.COUNT("total_count", sq.Field("id")))
_, queryScope, err := FetchCheckQueryOwnerScope(ctx, userCred, query, im, rbacutils.ActionList, true)
if err != nil {
return nil, httperrors.NewGeneralError(err)
}
statQ = manager.FilterByOwner(statQ, userCred, queryScope)
statQ = manager.FilterBySystemAttributes(statQ, userCred, query, queryScope)
statQ = manager.FilterByHiddenSystemAttributes(statQ, userCred, query, queryScope)
statQ = statQ.GroupBy(sq.Field("status"))
ret := []struct {
+2 -9
View File
@@ -22,9 +22,9 @@ import (
"yunion.io/x/sqlchemy"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
@@ -68,20 +68,13 @@ func (manager *SStatusInfrasResourceBaseManager) GetPropertyStatistics(ctx conte
var err error
q := manager.Query()
q, err = ListItemFilter(im, ctx, q, userCred, query)
q, err = ListItemQueryFilters(im, ctx, q, userCred, query, policy.PolicyActionList)
if err != nil {
return nil, err
}
sq := q.SubQuery()
statQ := sq.Query(sq.Field("status"), sqlchemy.COUNT("total_count", sq.Field("id")))
_, queryScope, err := FetchCheckQueryOwnerScope(ctx, userCred, query, im, rbacutils.ActionList, true)
if err != nil {
return nil, httperrors.NewGeneralError(err)
}
statQ = manager.FilterByOwner(statQ, userCred, queryScope)
statQ = manager.FilterBySystemAttributes(statQ, userCred, query, queryScope)
statQ = manager.FilterByHiddenSystemAttributes(statQ, userCred, query, queryScope)
statQ = statQ.GroupBy(sq.Field("status"))
ret := []struct {
+2 -9
View File
@@ -22,9 +22,9 @@ import (
"yunion.io/x/sqlchemy"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
@@ -68,20 +68,13 @@ func (manager *SStatusStandaloneResourceBaseManager) GetPropertyStatistics(ctx c
var err error
q := manager.Query()
q, err = ListItemFilter(im, ctx, q, userCred, query)
q, err = ListItemQueryFilters(im, ctx, q, userCred, query, policy.PolicyActionList)
if err != nil {
return nil, err
}
sq := q.SubQuery()
statQ := sq.Query(sq.Field("status"), sqlchemy.COUNT("total_count", sq.Field("id")))
_, queryScope, err := FetchCheckQueryOwnerScope(ctx, userCred, query, im, rbacutils.ActionList, true)
if err != nil {
return nil, httperrors.NewGeneralError(err)
}
statQ = manager.FilterByOwner(statQ, userCred, queryScope)
statQ = manager.FilterBySystemAttributes(statQ, userCred, query, queryScope)
statQ = manager.FilterByHiddenSystemAttributes(statQ, userCred, query, queryScope)
statQ = statQ.GroupBy(sq.Field("status"))
ret := []struct {
+1 -9
View File
@@ -99,21 +99,13 @@ func (manager *SVirtualResourceBaseManager) GetPropertyStatistics(ctx context.Co
var err error
q := manager.Query()
q, err = ListItemFilter(im, ctx, q, userCred, query)
q, err = ListItemQueryFilters(im, ctx, q, userCred, query, policy.PolicyActionList)
if err != nil {
return nil, err
}
sq := q.SubQuery()
statQ := sq.Query(sq.Field("status"), sqlchemy.COUNT("total_count", sq.Field("id")), sqlchemy.SUM("pending_deleted_count", sq.Field("pending_deleted")))
_, queryScope, err := FetchCheckQueryOwnerScope(ctx, userCred, query, manager, rbacutils.ActionList, true)
if err != nil {
return nil, httperrors.NewGeneralError(err)
}
statQ = manager.FilterByOwner(statQ, userCred, queryScope)
statQ = manager.FilterBySystemAttributes(statQ, userCred, query, queryScope)
statQ = manager.FilterByHiddenSystemAttributes(statQ, userCred, query, queryScope)
statQ = statQ.GroupBy(sq.Field("status"))
ret := []struct {
Status string