From b08dd390e508ffbe5227d32306f6e87b9b4bb41a Mon Sep 17 00:00:00 2001 From: Jian Qiu Date: Fri, 5 Jul 2019 23:03:28 +0800 Subject: [PATCH] fix: quota encode json allowing zero value (#1570) --- pkg/cloudcommon/db/quotas/handler.go | 4 +- pkg/compute/models/quotas.go | 72 ++++++++++++++-------------- pkg/image/models/quotas.go | 6 +-- 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/pkg/cloudcommon/db/quotas/handler.go b/pkg/cloudcommon/db/quotas/handler.go index 4019bd2d6c..ff144243a8 100644 --- a/pkg/cloudcommon/db/quotas/handler.go +++ b/pkg/cloudcommon/db/quotas/handler.go @@ -116,7 +116,9 @@ func (manager *SQuotaBaseManager) queryQuota(ctx context.Context, scope rbacutil ret.Update(quota.ToJSON("")) ret.Update(usage.ToJSON("usage")) - ret.Update(pending.ToJSON("pending")) + if !pending.IsEmpty() { + ret.Update(pending.ToJSON("pending")) + } if scope == rbacutils.ScopeDomain { total, err := manager.getDomainTotalQuota(ctx, ownerId.GetProjectDomainId(), nil) diff --git a/pkg/compute/models/quotas.go b/pkg/compute/models/quotas.go index 39b0a01370..efcf6a708c 100644 --- a/pkg/compute/models/quotas.go +++ b/pkg/compute/models/quotas.go @@ -296,41 +296,41 @@ func keyName(prefix, name string) string { func (self *SQuota) ToJSON(prefix string) jsonutils.JSONObject { ret := jsonutils.NewDict() - if self.Cpu > 0 { - ret.Add(jsonutils.NewInt(int64(self.Cpu)), keyName(prefix, "cpu")) - } - if self.Memory > 0 { - ret.Add(jsonutils.NewInt(int64(self.Memory)), keyName(prefix, "memory")) - } - if self.Storage > 0 { - ret.Add(jsonutils.NewInt(int64(self.Storage)), keyName(prefix, "storage")) - } - if self.Port > 0 { - ret.Add(jsonutils.NewInt(int64(self.Port)), keyName(prefix, "port")) - } - if self.Eip > 0 { - ret.Add(jsonutils.NewInt(int64(self.Eip)), keyName(prefix, "eip")) - } - if self.Eport > 0 { - ret.Add(jsonutils.NewInt(int64(self.Eport)), keyName(prefix, "eport")) - } - if self.Bw > 0 { - ret.Add(jsonutils.NewInt(int64(self.Bw)), keyName(prefix, "bw")) - } - if self.Ebw > 0 { - ret.Add(jsonutils.NewInt(int64(self.Ebw)), keyName(prefix, "ebw")) - } - if self.Group > 0 { - ret.Add(jsonutils.NewInt(int64(self.Group)), keyName(prefix, "group")) - } - if self.Secgroup > 0 { - ret.Add(jsonutils.NewInt(int64(self.Secgroup)), keyName(prefix, "secgroup")) - } - if self.IsolatedDevice > 0 { - ret.Add(jsonutils.NewInt(int64(self.IsolatedDevice)), keyName(prefix, "isolated_device")) - } - if self.Snapshot > 0 { - ret.Add(jsonutils.NewInt(int64(self.Snapshot)), keyName(prefix, "snapshot")) - } + // if self.Cpu > 0 { + ret.Add(jsonutils.NewInt(int64(self.Cpu)), keyName(prefix, "cpu")) + //} + // if self.Memory > 0 { + ret.Add(jsonutils.NewInt(int64(self.Memory)), keyName(prefix, "memory")) + //} + //if self.Storage > 0 { + ret.Add(jsonutils.NewInt(int64(self.Storage)), keyName(prefix, "storage")) + //} + //if self.Port > 0 { + ret.Add(jsonutils.NewInt(int64(self.Port)), keyName(prefix, "port")) + //} + //if self.Eip > 0 { + ret.Add(jsonutils.NewInt(int64(self.Eip)), keyName(prefix, "eip")) + //} + //if self.Eport > 0 { + ret.Add(jsonutils.NewInt(int64(self.Eport)), keyName(prefix, "eport")) + //} + //if self.Bw > 0 { + ret.Add(jsonutils.NewInt(int64(self.Bw)), keyName(prefix, "bw")) + //} + //if self.Ebw > 0 { + ret.Add(jsonutils.NewInt(int64(self.Ebw)), keyName(prefix, "ebw")) + //} + //if self.Group > 0 { + ret.Add(jsonutils.NewInt(int64(self.Group)), keyName(prefix, "group")) + //} + //if self.Secgroup > 0 { + ret.Add(jsonutils.NewInt(int64(self.Secgroup)), keyName(prefix, "secgroup")) + //} + //if self.IsolatedDevice > 0 { + ret.Add(jsonutils.NewInt(int64(self.IsolatedDevice)), keyName(prefix, "isolated_device")) + //} + //if self.Snapshot > 0 { + ret.Add(jsonutils.NewInt(int64(self.Snapshot)), keyName(prefix, "snapshot")) + //} return ret } diff --git a/pkg/image/models/quotas.go b/pkg/image/models/quotas.go index 3bccd4594d..be29103ebc 100644 --- a/pkg/image/models/quotas.go +++ b/pkg/image/models/quotas.go @@ -108,8 +108,8 @@ func (self *SQuota) Exceed(request quotas.IQuota, quota quotas.IQuota) error { func (self *SQuota) ToJSON(prefix string) jsonutils.JSONObject { ret := jsonutils.NewDict() - if self.Image > 0 { - ret.Add(jsonutils.NewInt(int64(self.Image)), quotas.KeyName(prefix, "image")) - } + // if self.Image > 0 { + ret.Add(jsonutils.NewInt(int64(self.Image)), quotas.KeyName(prefix, "image")) + // } return ret }