From dd01e8cf499ad0eaab81e29831b58f48e93877fb Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Sat, 7 Mar 2020 12:41:01 +0800 Subject: [PATCH] fix: not check domain quota if non_default_domain_project is off --- pkg/cloudcommon/db/quotas/interface.go | 2 ++ pkg/cloudcommon/db/quotas/quotas.go | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/pkg/cloudcommon/db/quotas/interface.go b/pkg/cloudcommon/db/quotas/interface.go index 49f5818908..e9ec237830 100644 --- a/pkg/cloudcommon/db/quotas/interface.go +++ b/pkg/cloudcommon/db/quotas/interface.go @@ -28,6 +28,8 @@ type IQuotaKeys interface { Fields() []string Values() []string Compare(IQuotaKeys) int + + OwnerId() mcclient.IIdentityProvider } type IQuota interface { diff --git a/pkg/cloudcommon/db/quotas/quotas.go b/pkg/cloudcommon/db/quotas/quotas.go index 9215682330..e9f3c8532f 100644 --- a/pkg/cloudcommon/db/quotas/quotas.go +++ b/pkg/cloudcommon/db/quotas/quotas.go @@ -22,6 +22,7 @@ import ( "yunion.io/x/log" "yunion.io/x/pkg/errors" + "yunion.io/x/onecloud/pkg/cloudcommon/consts" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/util/rbacutils" @@ -220,6 +221,16 @@ func (manager *SQuotaBaseManager) checkQuota(ctx context.Context, request IQuota func (manager *SQuotaBaseManager) __checkQuota(ctx context.Context, quota IQuota, request IQuota) error { keys := quota.GetKeys() + + if !consts.GetNonDefaultDomainProjects() { + ownerId := keys.OwnerId() + if len(ownerId.GetProjectDomainId()) > 0 && len(ownerId.GetProjectId()) == 0 { + // if non_default_domain_projects == false + // skip domain quota check + return nil + } + } + used := manager.newQuota() err := manager.usageStore.GetQuota(ctx, keys, used) if err != nil {