Skip to content

Commit 2643203

Browse files
authored
Merge pull request #1344 from ioito/hotfix/qx-dns-product-type
fix(aliyun): dns product type
2 parents 41f2fa7 + 75978f4 commit 2643203

File tree

6 files changed

+27
-74
lines changed

6 files changed

+27
-74
lines changed

pkg/cloudprovider/dnszone.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,14 @@ const (
7575
)
7676

7777
const (
78-
DnsProductEnterpriseUltimate = TDnsProductType("DP_EnterpriseUltimate")
79-
DnsProductEnterpriseStandard = TDnsProductType("DP_EnterpriseStandard")
80-
DnsProductEnterpriseBasic = TDnsProductType("DP_EnterpriseBasic")
81-
DnsProductPersonalProfessional = TDnsProductType("DP_PersonalProfessional")
82-
DnsProductFree = TDnsProductType("DP_Free")
78+
// 旗舰版
79+
DnsProductUltimate = TDnsProductType("Ultimate")
80+
// 企业版
81+
DnsProductEnterprise = TDnsProductType("Enterprise")
82+
// 专业版
83+
DnsProductProfessional = TDnsProductType("Professional")
84+
// 免费版
85+
DnsProductFree = TDnsProductType("Free")
8386
)
8487

8588
var (
@@ -505,9 +508,7 @@ func (ttlR TTlRange) GetSuppportedTTL(ttl int64) int64 {
505508
return ttl
506509
}
507510

508-
var TtlRangeAliyunEnterpriseUltimate = TTlRange{RangeType: ContinuousTTlRange, TTLMinValue: 1, TTLMaxValue: 86400}
509-
var TtlRangeAliyunEnterpriseStandard = TTlRange{RangeType: ContinuousTTlRange, TTLMinValue: 60, TTLMaxValue: 86400}
510-
var TtlRangeAliyunPersonal = TTlRange{RangeType: ContinuousTTlRange, TTLMinValue: 600, TTLMaxValue: 86400}
511+
var TtlRangeAliyunEnterprise = TTlRange{RangeType: ContinuousTTlRange, TTLMinValue: 1, TTLMaxValue: 86400}
511512
var TtlRangeAliyunFree = TTlRange{RangeType: ContinuousTTlRange, TTLMinValue: 600, TTLMaxValue: 86400}
512513

513514
var TtlRangeAliyunPvtz = TTlRange{RangeType: DiscreteTTlRange, AllowedTTLs: []int64{5, 10, 15, 20, 30, 60, 120, 300, 600, 1800, 3600, 43200, 86400}}

pkg/multicloud/aliyun/dns_domain.go

Lines changed: 8 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"strconv"
1919

2020
"yunion.io/x/jsonutils"
21-
"yunion.io/x/log"
2221
"yunion.io/x/pkg/errors"
2322

2423
api "yunion.io/x/cloudmux/pkg/apis/compute"
@@ -333,60 +332,20 @@ func (self *SDomain) Delete() error {
333332
return self.client.DeleteDomain(self.DomainName)
334333
}
335334

336-
func TDnsProductType(productName string) cloudprovider.TDnsProductType {
337-
switch productName {
338-
case "企业旗舰版":
339-
return cloudprovider.DnsProductEnterpriseUltimate
340-
case "企业标准版":
341-
return cloudprovider.DnsProductEnterpriseStandard
342-
case "个人版":
343-
return cloudprovider.DnsProductPersonalProfessional
344-
default:
345-
return cloudprovider.DnsProductFree
346-
}
347-
}
348-
349335
func (self *SDomain) GetDnsProductType() cloudprovider.TDnsProductType {
350-
sproducts, err := self.client.GetAllDnsProductInstances()
351-
if err != nil {
352-
log.Errorf("self.client.GetAllDnsProductInstances():%s", err)
336+
switch self.VersionCode {
337+
case "version_enterprise_advanced":
338+
return cloudprovider.DnsProductEnterprise
339+
case "mianfei":
353340
return cloudprovider.DnsProductFree
341+
default:
342+
return cloudprovider.TDnsProductType(self.VersionCode)
354343
}
355-
// https://help.aliyun.com/document_detail/29806.html?spm=a2c4g.11186623.4.1.67728197c8SCN9
356-
// 免费版,最低600
357-
self.ttlMinValue = 600
358-
for i := 0; i < len(sproducts); i++ {
359-
if sproducts[i].Domain == self.DomainName {
360-
return TDnsProductType(sproducts[i].VersionName)
361-
}
362-
}
363-
return cloudprovider.DnsProductFree
364-
}
365-
366-
func (self *SDomain) fetchTTLMinValue() (int64, error) {
367-
if self.ttlMinValue != 0 {
368-
return self.ttlMinValue, nil
369-
}
370-
sproducts, err := self.client.GetAllDnsProductInstances()
371-
if err != nil {
372-
return 0, errors.Wrap(err, "self.client.GetAllDnsProductInstances()")
373-
}
374-
// https://help.aliyun.com/document_detail/29806.html?spm=a2c4g.11186623.4.1.67728197c8SCN9
375-
// 免费版,最低600
376-
self.ttlMinValue = 600
377-
for i := 0; i < len(sproducts); i++ {
378-
if sproducts[i].Domain == self.DomainName {
379-
self.ttlMinValue = sproducts[i].TTLMinValue
380-
return self.ttlMinValue, nil
381-
}
382-
}
383-
return self.ttlMinValue, nil
384344
}
385345

386346
func (self *SDomain) GetProperlyTTL(ttl int64) int64 {
387-
ttlMin, err := self.fetchTTLMinValue()
388-
if err != nil {
389-
log.Errorf("self.fetchTTLMinValue():%s", err)
347+
ttlMin := int64(1)
348+
if self.GetDnsProductType() == cloudprovider.DnsProductFree {
390349
ttlMin = 600
391350
}
392351
if ttl <= ttlMin {

pkg/multicloud/aliyun/provider/provider.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,8 @@ func (self *SAliyunProviderFactory) GetTTLRange(zoneType cloudprovider.TDnsZoneT
118118
if zoneType == cloudprovider.PublicZone {
119119
if len(productType) > 0 {
120120
switch productType {
121-
case cloudprovider.DnsProductEnterpriseUltimate:
122-
return cloudprovider.TtlRangeAliyunEnterpriseUltimate
123-
case cloudprovider.DnsProductEnterpriseStandard:
124-
return cloudprovider.TtlRangeAliyunEnterpriseStandard
125-
case cloudprovider.DnsProductPersonalProfessional:
126-
return cloudprovider.TtlRangeAliyunPersonal
121+
case cloudprovider.DnsProductEnterprise:
122+
return cloudprovider.TtlRangeAliyunEnterprise
127123
default:
128124
return cloudprovider.TtlRangeAliyunFree
129125
}

pkg/multicloud/aliyun/shell/dns_domain.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ func init() {
130130
opts.DnsValue = args.VALUE
131131
opts.Ttl = args.TTL
132132
opts.PolicyType = cloudprovider.TDnsPolicyType(args.PolicyType)
133+
opts.PolicyValue = cloudprovider.TDnsPolicyValue(args.PolicyValue)
133134

134135
_, err := cli.GetClient().AddDomainRecord(args.DOMAINNAME, opts)
135136
if err != nil {

pkg/multicloud/qcloud/dnspod_domain.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,11 @@ func (self *SDomian) AddDnsRecord(opts *cloudprovider.DnsRecord) (string, error)
248248
func (self *SDomian) GetDnsProductType() cloudprovider.TDnsProductType {
249249
switch self.GradeTitle {
250250
case "企业旗舰版":
251-
return cloudprovider.DnsProductEnterpriseUltimate
252-
case "企业标准版":
253-
return cloudprovider.DnsProductEnterpriseStandard
254-
case "企业基础版":
255-
return cloudprovider.DnsProductEnterpriseBasic
251+
return cloudprovider.DnsProductUltimate
252+
case "企业标准版", "企业基础版":
253+
return cloudprovider.DnsProductEnterprise
256254
case "个人专业版":
257-
return cloudprovider.DnsProductPersonalProfessional
255+
return cloudprovider.DnsProductProfessional
258256
case "免费版":
259257
return cloudprovider.DnsProductFree
260258
default:

pkg/multicloud/qcloud/provider/provider.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,11 @@ func (self *SQcloudProviderFactory) GetSupportedDnsPolicyValues() map[cloudprovi
138138
func (self *SQcloudProviderFactory) GetTTLRange(zoneType cloudprovider.TDnsZoneType, productType cloudprovider.TDnsProductType) cloudprovider.TTlRange {
139139
if len(productType) > 0 {
140140
switch productType {
141-
case cloudprovider.DnsProductEnterpriseUltimate:
141+
case cloudprovider.DnsProductUltimate:
142142
return cloudprovider.TtlRangeQcloudEnterpriseUltimate
143-
case cloudprovider.DnsProductEnterpriseStandard:
143+
case cloudprovider.DnsProductEnterprise:
144144
return cloudprovider.TtlRangeQcloudEnterpriseStandard
145-
case cloudprovider.DnsProductEnterpriseBasic:
146-
return cloudprovider.TtlRangeQcloudEnterpriseBasic
147-
case cloudprovider.DnsProductPersonalProfessional:
145+
case cloudprovider.DnsProductProfessional:
148146
return cloudprovider.TtlRangeQcloudPersonalProfessional
149147
case cloudprovider.DnsProductFree:
150148
return cloudprovider.TtlRangeQcloudFree

0 commit comments

Comments
 (0)