-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Unified Provider model; existing DNS providers to be converted piecem…
…eal. Never-used http_providers and shim removed; new drivers to go in providers. Began removal of the torturous import of import chains; remainder are deprecated. Test cases that no longer apply removed; others updated; quite a few added. Some documentation added. First draft of demo for unified Provider. prop_* parameters. Never-ending: Codacy's complaints, test coverage.
- Loading branch information
Martin Maney
committed
Jun 5, 2020
1 parent
6ac1e91
commit b4c3ea4
Showing
22 changed files
with
977 additions
and
425 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
## 0.8.2 release | ||
|
||
0.8.2 contains a lot more work - and changes - than recent releases, | ||
hence this verbose guide to what's been going on in sewer this spring. | ||
|
||
To my mind, the big change has been landing the revised RFC protocol changes. | ||
This allows sewer to operate against LE's staging server again, | ||
and to continue to work with their production server when they drop compatibility | ||
with the earlier version of the protocol in November. | ||
|
||
Other changes that may be equally important to some users have been the addition | ||
of drivers for the powerdns and gandi DNS services, | ||
and changes to accomodate http-01 challenge providers. | ||
The interface for dns-01 and http-01 challenge providers has been unified | ||
from its initial form, and hopefully that interface is general enough | ||
to accomodate not only dns-01 and http-01, but other future challenge types. | ||
|
||
### bugs, fixed or known | ||
|
||
There are two related issues with wildcard certificates that have turned up | ||
in some providers. | ||
The first of these was fixed in 0.8.1, when we stopped Client from prefixing | ||
wildcard names with "*." when passing them to the providers. | ||
That issue has been known for a long time, and some providers already had a | ||
workaround - but sometimes the workaround wasn't complete (PR #139, eg.). | ||
|
||
The second issue arises only when requesting a wildcard certificate (for | ||
*.domain.tld, say) that is to also cover the naked domain (domain.tld). | ||
This arises when the DNS service has issues with setting up two TXT records | ||
for the two separate challenges ACME needs, because they both are on | ||
domain.tld. | ||
There doesn't seem to be any easy global fix for this, as there was for the | ||
first problem, so it's being fixed provider by provider as it arises (and | ||
there's a user of that service to help with the fix). | ||
|
||
### other changes | ||
|
||
The *cli* program has, I believe, no user-visible incompatibilties. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
## Legacy DNS challenge providers | ||
|
||
### `BaseDns` shim class | ||
|
||
A child of `ProviderBase` that acts as an adapter between the Provider | ||
interface and the Legacy DNS providers. | ||
|
||
#### `__init__(self, **kwargs: Any) -> None` | ||
|
||
Accepts no arguments itself; doesn't expect any to be passed by Legacy code. | ||
Injects chal_types=["dns-01"]. | ||
|
||
#### `setup(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Dict[str, str]]` | ||
|
||
Iterates over the challenges, extracting the values needed for dns-01 from | ||
each challenge in the list, and passing them to create_dns_record. | ||
Always returns an empty list since there is no error return from | ||
create_dns_record other than raising an exception. | ||
|
||
#### `unpropagated(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Dict[str, str]]` | ||
|
||
Always returns an empty list, signalling "all ready as far as I know". | ||
A DNS provider wishing to do something useful here must migrate to the new | ||
API. | ||
|
||
#### `clear(self, challenges: Sequence[Dict[str, str]]) -> Sequence[Dict[str, str]]` | ||
|
||
Same as setup except it calls the legacy delete_dns_record, of course. | ||
|
||
### Legacy DNS class | ||
|
||
#### `__init__(self, ...)` | ||
|
||
Args are explicitly named per provider; no provision for passing any to | ||
`super().__init__` - which makes sense, since there used not to be any the | ||
parent was prepared to receive. | ||
|
||
#### `def create_dns_record(self, domain_name, domain_dns_value)` | ||
|
||
Minimum is to add `_acme-challenge` prefix to domain_name and post the | ||
challenge response (domain_dns_value) as that name's TXT value. | ||
All very provider-dependent. | ||
|
||
#### `def delete_dns_record(self, domain_name, domain_dns_value)` | ||
|
||
In theory it should undo the effects of setup. | ||
In practice, at least one of the services is unable to do that | ||
(according to the comment). |
Oops, something went wrong.