|
2 | 2 | package cloudxns |
3 | 3 |
|
4 | 4 | import ( |
5 | | - "context" |
6 | 5 | "errors" |
7 | | - "fmt" |
8 | 6 | "net/http" |
9 | 7 | "time" |
10 | 8 |
|
11 | 9 | "github.com/go-acme/lego/v4/challenge/dns01" |
12 | | - "github.com/go-acme/lego/v4/platform/config/env" |
13 | | - "github.com/go-acme/lego/v4/providers/dns/cloudxns/internal" |
14 | 10 | ) |
15 | 11 |
|
16 | 12 | // Environment variables names. |
@@ -38,101 +34,34 @@ type Config struct { |
38 | 34 |
|
39 | 35 | // NewDefaultConfig returns a default configuration for the DNSProvider. |
40 | 36 | func NewDefaultConfig() *Config { |
41 | | - return &Config{ |
42 | | - PropagationTimeout: env.GetOrDefaultSecond(EnvPropagationTimeout, dns01.DefaultPropagationTimeout), |
43 | | - PollingInterval: env.GetOrDefaultSecond(EnvPollingInterval, dns01.DefaultPollingInterval), |
44 | | - TTL: env.GetOrDefaultInt(EnvTTL, dns01.DefaultTTL), |
45 | | - HTTPClient: &http.Client{ |
46 | | - Timeout: env.GetOrDefaultSecond(EnvHTTPTimeout, 30*time.Second), |
47 | | - }, |
48 | | - } |
| 37 | + return &Config{} |
49 | 38 | } |
50 | 39 |
|
51 | 40 | // DNSProvider implements the challenge.Provider interface. |
52 | | -type DNSProvider struct { |
53 | | - config *Config |
54 | | - client *internal.Client |
55 | | -} |
| 41 | +type DNSProvider struct{} |
56 | 42 |
|
57 | 43 | // NewDNSProvider returns a DNSProvider instance configured for CloudXNS. |
58 | | -// Credentials must be passed in the environment variables: |
59 | | -// CLOUDXNS_API_KEY and CLOUDXNS_SECRET_KEY. |
60 | 44 | func NewDNSProvider() (*DNSProvider, error) { |
61 | | - values, err := env.Get(EnvAPIKey, EnvSecretKey) |
62 | | - if err != nil { |
63 | | - return nil, fmt.Errorf("cloudxns: %w", err) |
64 | | - } |
65 | | - |
66 | | - config := NewDefaultConfig() |
67 | | - config.APIKey = values[EnvAPIKey] |
68 | | - config.SecretKey = values[EnvSecretKey] |
69 | | - |
70 | | - return NewDNSProviderConfig(config) |
| 45 | + return NewDNSProviderConfig(&Config{}) |
71 | 46 | } |
72 | 47 |
|
73 | 48 | // NewDNSProviderConfig return a DNSProvider instance configured for CloudXNS. |
74 | | -func NewDNSProviderConfig(config *Config) (*DNSProvider, error) { |
75 | | - if config == nil { |
76 | | - return nil, errors.New("cloudxns: the configuration of the DNS provider is nil") |
77 | | - } |
78 | | - |
79 | | - client, err := internal.NewClient(config.APIKey, config.SecretKey) |
80 | | - if err != nil { |
81 | | - return nil, fmt.Errorf("cloudxns: %w", err) |
82 | | - } |
83 | | - |
84 | | - if config.HTTPClient != nil { |
85 | | - client.HTTPClient = config.HTTPClient |
86 | | - } |
87 | | - |
88 | | - return &DNSProvider{client: client, config: config}, nil |
| 49 | +func NewDNSProviderConfig(_ *Config) (*DNSProvider, error) { |
| 50 | + return nil, errors.New("cloudxns: provider has shut down") |
89 | 51 | } |
90 | 52 |
|
91 | 53 | // Present creates a TXT record to fulfill the dns-01 challenge. |
92 | | -func (d *DNSProvider) Present(domain, token, keyAuth string) error { |
93 | | - challengeInfo := dns01.GetChallengeInfo(domain, keyAuth) |
94 | | - |
95 | | - ctx := context.Background() |
96 | | - |
97 | | - info, err := d.client.GetDomainInformation(ctx, challengeInfo.EffectiveFQDN) |
98 | | - if err != nil { |
99 | | - return fmt.Errorf("cloudxns: %w", err) |
100 | | - } |
101 | | - |
102 | | - err = d.client.AddTxtRecord(ctx, info, challengeInfo.EffectiveFQDN, challengeInfo.Value, d.config.TTL) |
103 | | - if err != nil { |
104 | | - return fmt.Errorf("cloudxns: %w", err) |
105 | | - } |
106 | | - |
| 54 | +func (d *DNSProvider) Present(_, _, _ string) error { |
107 | 55 | return nil |
108 | 56 | } |
109 | 57 |
|
110 | 58 | // CleanUp removes the TXT record matching the specified parameters. |
111 | | -func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error { |
112 | | - challengeInfo := dns01.GetChallengeInfo(domain, keyAuth) |
113 | | - |
114 | | - ctx := context.Background() |
115 | | - |
116 | | - info, err := d.client.GetDomainInformation(ctx, challengeInfo.EffectiveFQDN) |
117 | | - if err != nil { |
118 | | - return fmt.Errorf("cloudxns: %w", err) |
119 | | - } |
120 | | - |
121 | | - record, err := d.client.FindTxtRecord(ctx, info.ID, challengeInfo.EffectiveFQDN) |
122 | | - if err != nil { |
123 | | - return fmt.Errorf("cloudxns: %w", err) |
124 | | - } |
125 | | - |
126 | | - err = d.client.RemoveTxtRecord(ctx, record.RecordID, info.ID) |
127 | | - if err != nil { |
128 | | - return fmt.Errorf("cloudxns: %w", err) |
129 | | - } |
130 | | - |
| 59 | +func (d *DNSProvider) CleanUp(_, _, _ string) error { |
131 | 60 | return nil |
132 | 61 | } |
133 | 62 |
|
134 | 63 | // Timeout returns the timeout and interval to use when checking for DNS propagation. |
135 | 64 | // Adjusting here to cope with spikes in propagation times. |
136 | 65 | func (d *DNSProvider) Timeout() (timeout, interval time.Duration) { |
137 | | - return d.config.PropagationTimeout, d.config.PollingInterval |
| 66 | + return dns01.DefaultPropagationTimeout, dns01.DefaultPollingInterval |
138 | 67 | } |
0 commit comments