mirror of
https://github.com/certimate-go/certimate.git
synced 2026-09-24 23:10:13 +08:00
Merge branch 'main' into next
This commit is contained in:
@@ -90,7 +90,7 @@ func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
|
||||
func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
info := dns01.GetChallengeInfo(domain, keyAuth)
|
||||
|
||||
if err := d.addOrUpdateDNSRecord(dns01.UnFqdn(info.EffectiveFQDN), info.Value); err != nil {
|
||||
if err := d.addDNSRecord(dns01.UnFqdn(info.EffectiveFQDN), info.Value); err != nil {
|
||||
return fmt.Errorf("tencentcloud-eo: %w", err)
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error {
|
||||
func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error {
|
||||
info := dns01.GetChallengeInfo(domain, keyAuth)
|
||||
|
||||
if err := d.removeDNSRecord(dns01.UnFqdn(info.EffectiveFQDN)); err != nil {
|
||||
if err := d.removeDNSRecord(dns01.UnFqdn(info.EffectiveFQDN), info.Value); err != nil {
|
||||
return fmt.Errorf("tencentcloud-eo: %w", err)
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) {
|
||||
return d.config.PropagationTimeout, d.config.PollingInterval
|
||||
}
|
||||
|
||||
func (d *DNSProvider) findDNSRecord(effectiveFQDN string) (*teo.DnsRecord, error) {
|
||||
func (d *DNSProvider) findDNSRecord(effectiveFQDN, value string) (*teo.DnsRecord, error) {
|
||||
pageOffset := 0
|
||||
pageLimit := 1000
|
||||
for {
|
||||
@@ -135,7 +135,7 @@ func (d *DNSProvider) findDNSRecord(effectiveFQDN string) (*teo.DnsRecord, error
|
||||
break
|
||||
} else {
|
||||
for _, record := range response.Response.DnsRecords {
|
||||
if *record.Name == effectiveFQDN {
|
||||
if *record.Name == effectiveFQDN && *record.Content == value {
|
||||
return record, nil
|
||||
}
|
||||
}
|
||||
@@ -151,8 +151,8 @@ func (d *DNSProvider) findDNSRecord(effectiveFQDN string) (*teo.DnsRecord, error
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (d *DNSProvider) addOrUpdateDNSRecord(effectiveFQDN, value string) error {
|
||||
record, err := d.findDNSRecord(effectiveFQDN)
|
||||
func (d *DNSProvider) addDNSRecord(effectiveFQDN, value string) error {
|
||||
record, err := d.findDNSRecord(effectiveFQDN, value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -167,15 +167,6 @@ func (d *DNSProvider) addOrUpdateDNSRecord(effectiveFQDN, value string) error {
|
||||
_, err := d.client.CreateDnsRecord(request)
|
||||
return err
|
||||
} else {
|
||||
record.Content = common.StringPtr(value)
|
||||
record.TTL = common.Int64Ptr(int64(d.config.TTL))
|
||||
request := teo.NewModifyDnsRecordsRequest()
|
||||
request.ZoneId = common.StringPtr(d.config.ZoneID)
|
||||
request.DnsRecords = []*teo.DnsRecord{record}
|
||||
if _, err := d.client.ModifyDnsRecords(request); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if *record.Status == "disable" {
|
||||
request := teo.NewModifyDnsRecordsStatusRequest()
|
||||
request.ZoneId = common.StringPtr(d.config.ZoneID)
|
||||
@@ -184,13 +175,12 @@ func (d *DNSProvider) addOrUpdateDNSRecord(effectiveFQDN, value string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func (d *DNSProvider) removeDNSRecord(effectiveFQDN string) error {
|
||||
record, err := d.findDNSRecord(effectiveFQDN)
|
||||
func (d *DNSProvider) removeDNSRecord(effectiveFQDN, value string) error {
|
||||
record, err := d.findDNSRecord(effectiveFQDN, value)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -194,6 +194,9 @@ func (d *SSLDeployerProvider) deployViaSslService(ctx context.Context, cloudCert
|
||||
}
|
||||
|
||||
if succeededCount+failedCount == totalCount {
|
||||
if failedCount > 0 {
|
||||
return fmt.Errorf("deployment job failed (succeeded: %d, failed: %d, total: %d)", succeededCount, failedCount, totalCount)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,6 +141,9 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
}
|
||||
|
||||
if succeededCount+failedCount == totalCount {
|
||||
if failedCount > 0 {
|
||||
return nil, fmt.Errorf("deployment job failed (succeeded: %d, failed: %d, total: %d)", succeededCount, failedCount, totalCount)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,6 +142,9 @@ func (d *SSLDeployerProvider) Deploy(ctx context.Context, certPEM string, privke
|
||||
}
|
||||
|
||||
if succeededCount+failedCount == totalCount {
|
||||
if failedCount > 0 {
|
||||
return nil, fmt.Errorf("deployment job failed (succeeded: %d, failed: %d, total: %d)", succeededCount, failedCount, totalCount)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,9 +130,9 @@ func (d *SSLDeployerProvider) executeUpdateCertificateInstance(ctx context.Conte
|
||||
return fmt.Errorf("failed to execute sdk request 'ssl.UpdateCertificateInstance': %w", err)
|
||||
}
|
||||
|
||||
if updateCertificateInstanceResp.Response.DeployStatus == nil {
|
||||
if updateCertificateInstanceResp.Response.DeployStatus == nil || updateCertificateInstanceResp.Response.DeployRecordId == nil {
|
||||
return errors.New("unexpected deployment job status")
|
||||
} else if *updateCertificateInstanceResp.Response.DeployStatus == 1 {
|
||||
} else if *updateCertificateInstanceResp.Response.DeployRecordId > 0 {
|
||||
deployRecordId = fmt.Sprintf("%d", *updateCertificateInstanceResp.Response.DeployRecordId)
|
||||
break
|
||||
}
|
||||
@@ -175,6 +175,9 @@ func (d *SSLDeployerProvider) executeUpdateCertificateInstance(ctx context.Conte
|
||||
}
|
||||
|
||||
if succeededCount+failedCount == totalCount {
|
||||
if failedCount > 0 {
|
||||
return fmt.Errorf("deployment job failed (succeeded: %d, failed: %d, total: %d)", succeededCount, failedCount, totalCount)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -257,6 +260,9 @@ func (d *SSLDeployerProvider) executeUploadUpdateCertificateInstance(ctx context
|
||||
}
|
||||
|
||||
if succeededCount+failedCount == totalCount {
|
||||
if failedCount > 0 {
|
||||
return fmt.Errorf("deployment job failed (succeeded: %d, failed: %d, total: %d)", succeededCount, failedCount, totalCount)
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user