DNS API支持查询多个同名记录/优化ACME申请

This commit is contained in:
GoEdgeLab
2022-11-17 17:33:59 +08:00
parent 1e1f81f2a0
commit 8b1a5e1fb7
16 changed files with 381 additions and 35 deletions

View File

@@ -1328,6 +1328,41 @@ func (this *HuaweiDNSProvider) QueryRecord(domain string, name string, recordTyp
}, nil
}
// QueryRecords 查询多个记录
func (this *HuaweiDNSProvider) QueryRecords(domain string, name string, recordType dnstypes.RecordType) ([]*dnstypes.Record, error) {
var resp = new(huaweidns.RecordSetsResponse)
err := this.doAPI(http.MethodGet, "/v2.1/recordsets", map[string]string{
"name": name + "." + domain + ".",
"type": recordType,
}, maps.Map{}, resp)
if err != nil {
return nil, err
}
if len(resp.RecordSets) == 0 {
return nil, nil
}
var result = []*dnstypes.Record{}
for _, recordSet := range resp.RecordSets {
if len(recordSet.Records) == 0 {
continue
}
for _, record := range recordSet.Records {
result = append(result, &dnstypes.Record{
Id: recordSet.Id + "@" + record,
Name: name,
Type: recordType,
Value: record,
Route: recordSet.Line,
TTL: types.Int32(recordSet.Ttl),
})
}
}
return result, nil
}
// AddRecord 设置记录
func (this *HuaweiDNSProvider) AddRecord(domain string, newRecord *dnstypes.Record) error {
zoneId, err := this.findZoneIdWithDomain(domain)