Merge pull request #6209 from swordqiu/hotfix/qj-domain-regional-cloud-resource-quota-keys

fix: missing methods for SDomainRegionalCloudResourceKeys
This commit is contained in:
Zexi Li
2020-05-09 18:59:57 +08:00
committed by GitHub
+64 -12
View File
@@ -134,14 +134,20 @@ func (k SBaseProjectQuotaKeys) Fields() []string {
)
}
func (k SCloudResourceKeys) Fields() []string {
return append(k.SBaseProjectQuotaKeys.Fields(),
func (k SCloudResourceBaseKeys) Fields() []string {
return []string{
"provider",
"brand",
"cloud_env",
"account_id",
"manager_id",
)
}
}
func (k SCloudResourceKeys) Fields() []string {
ret := k.SBaseProjectQuotaKeys.Fields()
ret = append(ret, k.SCloudResourceBaseKeys.Fields()...)
return ret
}
func (k SRegionalCloudResourceKeys) Fields() []string {
@@ -156,6 +162,13 @@ func (k SZonalCloudResourceKeys) Fields() []string {
)
}
func (k SDomainRegionalCloudResourceKeys) Fields() []string {
ret := k.SBaseDomainQuotaKeys.Fields()
ret = append(ret, k.SCloudResourceBaseKeys.Fields()...)
ret = append(ret, "region_id")
return ret
}
func (k SBaseDomainQuotaKeys) Values() []string {
return []string{
k.DomainId,
@@ -168,14 +181,20 @@ func (k SBaseProjectQuotaKeys) Values() []string {
)
}
func (k SCloudResourceKeys) Values() []string {
return append(k.SBaseProjectQuotaKeys.Values(),
func (k SCloudResourceBaseKeys) Values() []string {
return []string{
k.Provider,
k.Brand,
k.CloudEnv,
k.AccountId,
k.ManagerId,
)
}
}
func (k SCloudResourceKeys) Values() []string {
ret := k.SBaseProjectQuotaKeys.Values()
ret = append(ret, k.SCloudResourceBaseKeys.Values()...)
return ret
}
func (k SRegionalCloudResourceKeys) Values() []string {
@@ -190,6 +209,13 @@ func (k SZonalCloudResourceKeys) Values() []string {
)
}
func (k SDomainRegionalCloudResourceKeys) Values() []string {
ret := k.SBaseDomainQuotaKeys.Values()
ret = append(ret, k.SCloudResourceBaseKeys.Values()...)
ret = append(ret, k.RegionId)
return ret
}
func (k1 SBaseDomainQuotaKeys) Compare(ik IQuotaKeys) int {
k2 := ik.(SBaseDomainQuotaKeys)
if k1.DomainId < k2.DomainId {
@@ -214,12 +240,7 @@ func (k1 SBaseProjectQuotaKeys) Compare(ik IQuotaKeys) int {
return 0
}
func (k1 SCloudResourceKeys) Compare(ik IQuotaKeys) int {
k2 := ik.(SCloudResourceKeys)
r := k1.SBaseProjectQuotaKeys.Compare(k2.SBaseProjectQuotaKeys)
if r != 0 {
return r
}
func (k1 SCloudResourceBaseKeys) compare(k2 SCloudResourceBaseKeys) int {
if k1.CloudEnv < k2.CloudEnv {
return -1
} else if k1.CloudEnv > k2.CloudEnv {
@@ -238,6 +259,19 @@ func (k1 SCloudResourceKeys) Compare(ik IQuotaKeys) int {
return 0
}
func (k1 SCloudResourceKeys) Compare(ik IQuotaKeys) int {
k2 := ik.(SCloudResourceKeys)
r := k1.SBaseProjectQuotaKeys.Compare(k2.SBaseProjectQuotaKeys)
if r != 0 {
return r
}
r = k1.SCloudResourceBaseKeys.compare(k2.SCloudResourceBaseKeys)
if r != 0 {
return r
}
return 0
}
func (k1 SRegionalCloudResourceKeys) Compare(ik IQuotaKeys) int {
k2 := ik.(SRegionalCloudResourceKeys)
r := k1.SCloudResourceKeys.Compare(k2.SCloudResourceKeys)
@@ -266,6 +300,24 @@ func (k1 SZonalCloudResourceKeys) Compare(ik IQuotaKeys) int {
return 0
}
func (k1 SDomainRegionalCloudResourceKeys) Compare(ik IQuotaKeys) int {
k2 := ik.(SDomainRegionalCloudResourceKeys)
r := k1.SBaseDomainQuotaKeys.Compare(k2.SBaseDomainQuotaKeys)
if r != 0 {
return r
}
r = k1.SCloudResourceBaseKeys.compare(k2.SCloudResourceBaseKeys)
if r != 0 {
return r
}
if k1.RegionId < k2.RegionId {
return -1
} else if k1.RegionId > k2.RegionId {
return 1
}
return 0
}
func QuotaKeyWeight(k IQuotaKeys) uint64 {
w := uint64(0)
for i, v := range k.Values() {