@@ -33,16 +33,18 @@ type SAliasTarget struct {
3333 HostedZoneId string `xml:"HostedZoneId"`
3434}
3535
36+ type SResourceRecord struct {
37+ Value string `xml:"Value"`
38+ }
39+
3640type SDnsRecord struct {
3741 multicloud.SDnsRecordBase
3842 zone * SDnsZone
3943
40- Name string `xml:"Name"`
41- Type string `xml:"Type"`
42- TTL int64 `xml:"TTL"`
43- ResourceRecords []struct {
44- Value string `xml:"Value"`
45- } `xml:"ResourceRecords>ResourceRecord"`
44+ Name string `xml:"Name"`
45+ Type string `xml:"Type"`
46+ TTL int64 `xml:"TTL"`
47+ ResourceRecords []SResourceRecord `xml:"ResourceRecords>ResourceRecord"`
4648
4749 AliasTarget SAliasTarget `xml:"AliasTarget"`
4850 GeoLocation GeoLocationDetails `xml:"GeoLocation"`
@@ -113,14 +115,13 @@ func (self *SDnsRecord) Delete() error {
113115 for _ , r := range self .ResourceRecords {
114116 values = append (values , r .Value )
115117 }
116- _ , err := self .zone .client .ChangeResourceRecordSets ("DELETE" , self .zone .Id , self .Name , self .SetIdentifier , cloudprovider.DnsRecord {
118+ return self .zone .client .ChangeResourceRecordSets ("DELETE" , self .zone .Id , self .Name , self .SetIdentifier , cloudprovider.DnsRecord {
117119 DnsType : cloudprovider .TDnsType (self .Type ),
118120 Ttl : self .TTL ,
119121 DnsValue : strings .Join (values , "\n " ),
120122 PolicyType : self .GetPolicyType (),
121123 PolicyValue : self .GetPolicyValue (),
122124 })
123- return err
124125}
125126
126127func (self * SDnsRecord ) GetDnsType () cloudprovider.TDnsType {
@@ -199,7 +200,7 @@ func (self *SDnsRecord) GetMxPriority() int64 {
199200 return 0
200201}
201202
202- func (self * SAwsClient ) ChangeResourceRecordSets (action , zoneId , name , id string , opts cloudprovider.DnsRecord ) ( string , error ) {
203+ func (self * SAwsClient ) ChangeResourceRecordSets (action , zoneId , name , id string , opts cloudprovider.DnsRecord ) error {
203204 record := & SDnsRecord {Name : id , Type : string (opts .DnsType )}
204205 params := map [string ]string {
205206 "Id" : zoneId ,
@@ -234,7 +235,7 @@ func (self *SAwsClient) ChangeResourceRecordSets(action, zoneId, name, id string
234235 case cloudprovider .DnsPolicyTypeByGeoLocation :
235236 locations , err := self .ListGeoLocations ()
236237 if err != nil {
237- return "" , errors .Wrapf (err , "ListGeoLocations" )
238+ return errors .Wrapf (err , "ListGeoLocations" )
238239 }
239240 find := false
240241 for i := range locations {
@@ -252,27 +253,18 @@ func (self *SAwsClient) ChangeResourceRecordSets(action, zoneId, name, id string
252253 }
253254 }
254255 if ! find {
255- return "" , errors .Errorf ("invalid policy value %s %s" , opts .PolicyType , opts .PolicyValue )
256+ return errors .Errorf ("invalid policy value %s %s" , opts .PolicyType , opts .PolicyValue )
256257 }
257258 case cloudprovider .DnsPolicyTypeFailover :
258- return "" , cloudprovider .ErrNotImplemented
259+ return cloudprovider .ErrNotImplemented
259260 case cloudprovider .DnsPolicyTypeWeighted :
260261 params ["ChangeBatch.Changes.0.Change.ResourceRecordSet.Weight" ] = string (opts .PolicyValue )
261262 case cloudprovider .DnsPolicyTypeMultiValueAnswer :
262263 params ["ChangeBatch.Changes.0.Change.ResourceRecordSet.MultiValueAnswer" ] = "true"
263264 case cloudprovider .DnsPolicyTypeLatency :
264265 params ["ChangeBatch.Changes.0.Change.ResourceRecordSet.Region" ] = string (opts .PolicyValue )
265266 }
266- ret := struct {
267- ChangeInfo struct {
268- Id string `xml:"Id"`
269- } `xml:"ChangeInfo"`
270- }{}
271- err := self .dnsRequest ("ChangeResourceRecordSets" , params , & ret )
272- if err != nil {
273- return "" , err
274- }
275- return record .GetGlobalId (), nil
267+ return self .dnsRequest ("ChangeResourceRecordSets" , params , nil )
276268}
277269
278270// trafficpolicy 信息
@@ -339,6 +331,5 @@ func (self *SDnsRecord) Disable() error {
339331}
340332
341333func (self * SDnsRecord ) Update (opts * cloudprovider.DnsRecord ) error {
342- _ , err := self .zone .client .ChangeResourceRecordSets ("UPSERT" , self .zone .Id , self .Name , self .SetIdentifier , * opts )
343- return err
334+ return self .zone .client .ChangeResourceRecordSets ("UPSERT" , self .zone .Id , self .Name , self .SetIdentifier , * opts )
344335}
0 commit comments