diff --git a/pkg/core/ssl-applicator/acme-dns01/providers/ucloud-udnr/internal/lego.go b/pkg/core/ssl-applicator/acme-dns01/providers/ucloud-udnr/internal/lego.go index 319d2ac0c..9dd1b5722 100644 --- a/pkg/core/ssl-applicator/acme-dns01/providers/ucloud-udnr/internal/lego.go +++ b/pkg/core/ssl-applicator/acme-dns01/providers/ucloud-udnr/internal/lego.go @@ -94,10 +94,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { return fmt.Errorf("ucloud-udnr: could not find zone for domain %q: %w", domain, err) } - subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) - if err != nil { - return fmt.Errorf("ucloud-udnr: %w", err) - } + recordName := dns01.UnFqdn(info.EffectiveFQDN) udnrDomainDNSQueryReq := d.client.NewQueryDomainDNSRequest() udnrDomainDNSQueryReq.Dn = ucloud.String(authZone) @@ -108,7 +105,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { return fmt.Errorf("ucloud-udnr: %w", err) } else { for _, record := range udnrDomainDNSQueryResp.Data { - if record.DnsType == "TXT" && record.RecordName == subDomain { + if record.DnsType == "TXT" && record.RecordName == recordName { udnrDomainDNSDeleteReq := d.client.NewDeleteDomainDNSRequest() udnrDomainDNSDeleteReq.Dn = ucloud.String(authZone) udnrDomainDNSDeleteReq.DnsType = ucloud.String(record.DnsType) @@ -126,9 +123,9 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { udnrDomainDNSAddReq := d.client.NewAddDomainDNSRequest() udnrDomainDNSAddReq.Dn = ucloud.String(authZone) udnrDomainDNSAddReq.DnsType = ucloud.String("TXT") - udnrDomainDNSAddReq.RecordName = ucloud.String(subDomain) + udnrDomainDNSAddReq.RecordName = ucloud.String(recordName) udnrDomainDNSAddReq.Content = ucloud.String(info.Value) - udnrDomainDNSAddReq.TTL = ucloud.Int(int(d.config.TTL)) + udnrDomainDNSAddReq.TTL = ucloud.String(fmt.Sprintf("%d", d.config.TTL)) if d.config.ProjectId != "" { udnrDomainDNSAddReq.SetProjectId(d.config.ProjectId) } @@ -147,10 +144,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { return fmt.Errorf("ucloud-udnr: could not find zone for domain %q: %w", domain, err) } - subDomain, err := dns01.ExtractSubDomain(info.EffectiveFQDN, authZone) - if err != nil { - return fmt.Errorf("ucloud-udnr: %w", err) - } + recordName := dns01.UnFqdn(info.EffectiveFQDN) udnrDomainDNSQueryReq := d.client.NewQueryDomainDNSRequest() udnrDomainDNSQueryReq.Dn = ucloud.String(authZone) @@ -161,7 +155,7 @@ func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { return fmt.Errorf("ucloud-udnr: %w", err) } else { for _, record := range udnrDomainDNSQueryResp.Data { - if record.DnsType == "TXT" && record.RecordName == subDomain { + if record.DnsType == "TXT" && record.RecordName == recordName { udnrDomainDNSDeleteReq := d.client.NewDeleteDomainDNSRequest() udnrDomainDNSDeleteReq.Dn = ucloud.String(authZone) udnrDomainDNSDeleteReq.DnsType = ucloud.String(record.DnsType) diff --git a/pkg/sdk3rd/ucloud/udnr/api_add_domain_dns.go b/pkg/sdk3rd/ucloud/udnr/api_add_domain_dns.go index d0cfe4c59..dae8033a0 100644 --- a/pkg/sdk3rd/ucloud/udnr/api_add_domain_dns.go +++ b/pkg/sdk3rd/ucloud/udnr/api_add_domain_dns.go @@ -12,8 +12,8 @@ type AddDomainDNSRequest struct { DnsType *string `required:"true"` RecordName *string `required:"true"` Content *string `required:"true"` - TTL *int `required:"true"` - Prio *int `required:"false"` + TTL *string `required:"true"` + Prio *string `required:"false"` } type AddDomainDNSResponse struct { diff --git a/pkg/sdk3rd/ucloud/udnr/types.go b/pkg/sdk3rd/ucloud/udnr/types.go index 4d2081f5d..52fd5b164 100644 --- a/pkg/sdk3rd/ucloud/udnr/types.go +++ b/pkg/sdk3rd/ucloud/udnr/types.go @@ -4,6 +4,6 @@ type DomainDNSRecord struct { DnsType string RecordName string Content string - TTL int - Prio int + TTL string + Prio string }