diff options
author | Adrien Ferrand <adferrand@users.noreply.github.com> | 2021-12-14 04:38:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-14 04:38:14 +0300 |
commit | 89ccbccff0582728faf9c48d1e055bd6d1218d1f (patch) | |
tree | 0cbf97bc038348ee706d9c469d92c28ac5016165 /certbot-dns-dnsmadeeasy | |
parent | cb3e1403cdf0b1e00a384c06bdc85b70b2bf0a09 (diff) |
Fully type all DNS plugins (#9125)
* Add types in all DNS plugins
* Order imports
* Fix type
* Update certbot-dns-route53/certbot_dns_route53/_internal/dns_route53.py
Co-authored-by: alexzorin <alex@zor.io>
* Clean up imports
Co-authored-by: alexzorin <alex@zor.io>
Diffstat (limited to 'certbot-dns-dnsmadeeasy')
-rw-r--r-- | certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy/_internal/dns_dnsmadeeasy.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy/_internal/dns_dnsmadeeasy.py b/certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy/_internal/dns_dnsmadeeasy.py index 628140d06..f089296b0 100644 --- a/certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy/_internal/dns_dnsmadeeasy.py +++ b/certbot-dns-dnsmadeeasy/certbot_dns_dnsmadeeasy/_internal/dns_dnsmadeeasy.py @@ -1,8 +1,11 @@ """DNS Authenticator for DNS Made Easy DNS.""" import logging +from typing import Any +from typing import Callable from typing import Optional from lexicon.providers import dnsmadeeasy +from requests import HTTPError from certbot import errors from certbot.plugins import dns_common @@ -24,20 +27,21 @@ class Authenticator(dns_common.DNSAuthenticator): 'DNS).') ttl = 60 - def __init__(self, *args, **kwargs): + def __init__(self, *args: Any, **kwargs: Any) -> None: super().__init__(*args, **kwargs) self.credentials: Optional[CredentialsConfiguration] = None @classmethod - def add_parser_arguments(cls, add): # pylint: disable=arguments-differ - super().add_parser_arguments(add, default_propagation_seconds=60) + def add_parser_arguments(cls, add: Callable[..., None], + default_propagation_seconds: int = 60) -> None: + super().add_parser_arguments(add, default_propagation_seconds) add('credentials', help='DNS Made Easy credentials INI file.') - def more_info(self): # pylint: disable=missing-function-docstring + def more_info(self) -> str: return 'This plugin configures a DNS TXT record to respond to a dns-01 challenge using ' + \ 'the DNS Made Easy API.' - def _setup_credentials(self): + def _setup_credentials(self) -> None: self.credentials = self._configure_credentials( 'credentials', 'DNS Made Easy credentials INI file', @@ -49,13 +53,13 @@ class Authenticator(dns_common.DNSAuthenticator): } ) - def _perform(self, domain, validation_name, validation): + def _perform(self, domain: str, validation_name: str, validation: str) -> None: self._get_dnsmadeeasy_client().add_txt_record(domain, validation_name, validation) - def _cleanup(self, domain, validation_name, validation): + def _cleanup(self, domain: str, validation_name: str, validation: str) -> None: self._get_dnsmadeeasy_client().del_txt_record(domain, validation_name, validation) - def _get_dnsmadeeasy_client(self): + def _get_dnsmadeeasy_client(self) -> "_DNSMadeEasyLexiconClient": if not self.credentials: # pragma: no cover raise errors.Error("Plugin has not been prepared.") return _DNSMadeEasyLexiconClient(self.credentials.conf('api-key'), @@ -68,7 +72,7 @@ class _DNSMadeEasyLexiconClient(dns_common_lexicon.LexiconClient): Encapsulates all communication with the DNS Made Easy via Lexicon. """ - def __init__(self, api_key, secret_key, ttl): + def __init__(self, api_key: str, secret_key: str, ttl: int) -> None: super().__init__() config = dns_common_lexicon.build_lexicon_config('dnsmadeeasy', { @@ -80,7 +84,7 @@ class _DNSMadeEasyLexiconClient(dns_common_lexicon.LexiconClient): self.provider = dnsmadeeasy.Provider(config) - def _handle_http_error(self, e, domain_name): + def _handle_http_error(self, e: HTTPError, domain_name: str) -> Optional[errors.PluginError]: if domain_name in str(e) and str(e).startswith('404 Client Error: Not Found for url:'): return None @@ -88,5 +92,6 @@ class _DNSMadeEasyLexiconClient(dns_common_lexicon.LexiconClient): if str(e).startswith('403 Client Error: Forbidden for url:'): hint = 'Are your API key and Secret key values correct?' - return errors.PluginError('Error determining zone identifier: {0}.{1}' - .format(e, ' ({0})'.format(hint) if hint else '')) + hint_disp = f' ({hint})' if hint else '' + + return errors.PluginError(f'Error determining zone identifier: {e}.{hint_disp}') |