Codebase list python-certbot-dns-rfc2136 / upstream/1.15.0
Import upstream version 1.15.0 Debian Janitor 2 years ago
8 changed file(s) with 25 addition(s) and 47 deletion(s). Raw diff Collapse all Expand all
00 Metadata-Version: 2.1
11 Name: certbot-dns-rfc2136
2 Version: 1.10.1
2 Version: 1.15.0
33 Summary: RFC 2136 DNS Authenticator plugin for Certbot
44 Home-page: https://github.com/certbot/certbot
55 Author: Certbot Project
6 Author-email: client-dev@letsencrypt.org
6 Author-email: certbot-dev@eff.org
77 License: Apache License 2.0
88 Description: UNKNOWN
99 Platform: UNKNOWN
1313 Classifier: License :: OSI Approved :: Apache Software License
1414 Classifier: Operating System :: POSIX :: Linux
1515 Classifier: Programming Language :: Python
16 Classifier: Programming Language :: Python :: 2
17 Classifier: Programming Language :: Python :: 2.7
1816 Classifier: Programming Language :: Python :: 3
1917 Classifier: Programming Language :: Python :: 3.6
2018 Classifier: Programming Language :: Python :: 3.7
2624 Classifier: Topic :: System :: Networking
2725 Classifier: Topic :: System :: Systems Administration
2826 Classifier: Topic :: Utilities
29 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
27 Requires-Python: >=3.6
3028 Provides-Extra: docs
22 completing a ``dns-01`` challenge (`~acme.challenges.DNS01`) by creating, and
33 subsequently removing, TXT records using RFC 2136 Dynamic Updates.
44
5 .. note::
6 The plugin is not installed by default. It can be installed by heading to
7 `certbot.eff.org <https://certbot.eff.org/instructions#wildcard>`_, choosing your system and
8 selecting the Wildcard tab.
59
610 Named Arguments
711 ---------------
0 # type: ignore
1 # pylint: disable=no-member
2 # Many attributes of dnspython are now dynamically defined which causes both
3 # mypy and pylint to error about accessing attributes they think do not exist.
4 # This is the case even in up-to-date versions of mypy and pylint which as of
5 # writing this are 0.790 and 2.6.0 respectively. This problem may be fixed in
6 # dnspython 2.1.0. See https://github.com/rthalley/dnspython/issues/598. For
7 # now, let's disable these checks. This is done at the very top of the file
8 # like this because "type: ignore" must be the first line in the file to be
9 # respected by mypy.
100 """DNS Authenticator using RFC 2136 Dynamic Updates."""
111 import logging
2 from typing import Optional
123
134 import dns.flags
145 import dns.message
2415 from certbot import errors
2516 from certbot import interfaces
2617 from certbot.plugins import dns_common
18 from certbot.plugins.dns_common import CredentialsConfiguration
2719
2820 logger = logging.getLogger(__name__)
2921
5244 ttl = 120
5345
5446 def __init__(self, *args, **kwargs):
55 super(Authenticator, self).__init__(*args, **kwargs)
56 self.credentials = None
47 super().__init__(*args, **kwargs)
48 self.credentials: Optional[CredentialsConfiguration] = None
5749
5850 @classmethod
5951 def add_parser_arguments(cls, add): # pylint: disable=arguments-differ
60 super(Authenticator, cls).add_parser_arguments(add, default_propagation_seconds=60)
52 super().add_parser_arguments(add, default_propagation_seconds=60)
6153 add('credentials', help='RFC 2136 credentials INI file.')
6254
6355 def more_info(self): # pylint: disable=missing-function-docstring
8981 self._get_rfc2136_client().del_txt_record(validation_name, validation)
9082
9183 def _get_rfc2136_client(self):
84 if not self.credentials: # pragma: no cover
85 raise errors.Error("Plugin has not been prepared.")
9286 return _RFC2136Client(self.credentials.conf('server'),
9387 int(self.credentials.conf('port') or self.PORT),
9488 self.credentials.conf('name'),
9791 dns.tsig.HMAC_MD5))
9892
9993
100 class _RFC2136Client(object):
94 class _RFC2136Client:
10195 """
10296 Encapsulates all communication with the target DNS server.
10397 """
00 Metadata-Version: 2.1
11 Name: certbot-dns-rfc2136
2 Version: 1.10.1
2 Version: 1.15.0
33 Summary: RFC 2136 DNS Authenticator plugin for Certbot
44 Home-page: https://github.com/certbot/certbot
55 Author: Certbot Project
6 Author-email: client-dev@letsencrypt.org
6 Author-email: certbot-dev@eff.org
77 License: Apache License 2.0
88 Description: UNKNOWN
99 Platform: UNKNOWN
1313 Classifier: License :: OSI Approved :: Apache Software License
1414 Classifier: Operating System :: POSIX :: Linux
1515 Classifier: Programming Language :: Python
16 Classifier: Programming Language :: Python :: 2
17 Classifier: Programming Language :: Python :: 2.7
1816 Classifier: Programming Language :: Python :: 3
1917 Classifier: Programming Language :: Python :: 3.6
2018 Classifier: Programming Language :: Python :: 3.7
2624 Classifier: Topic :: System :: Networking
2725 Classifier: Topic :: System :: Systems Administration
2826 Classifier: Topic :: Utilities
29 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
27 Requires-Python: >=3.6
3028 Provides-Extra: docs
00 dnspython
1 setuptools
1 setuptools>=39.0.1
22 zope.interface
33 acme>=0.29.0
44 certbot>=1.1.0
55
6 [:python_version < "3.3"]
7 mock
8
96 [docs]
107 Sphinx>=1.0
118 sphinx_rtd_theme
110110 # Add any paths that contain custom static files (such as style sheets) here,
111111 # relative to this directory. They are copied after the builtin static files,
112112 # so a file named "default.css" will overwrite the builtin "default.css".
113 html_static_path = ['_static']
113 #html_static_path = ['_static']
114114
115115
116116 # -- Options for HTMLHelp output ------------------------------------------
0 from distutils.version import LooseVersion
10 import os
21 import sys
32
4 from setuptools import __version__ as setuptools_version
53 from setuptools import find_packages
64 from setuptools import setup
75
8 version = '1.10.1'
6 version = '1.15.0'
97
108 # Remember to update local-oldest-requirements.txt when changing the minimum
119 # acme/certbot version.
1210 install_requires = [
1311 'dnspython',
14 'setuptools',
12 'setuptools>=39.0.1',
1513 'zope.interface',
1614 ]
1715
2624 if os.environ.get('SNAP_BUILD'):
2725 install_requires.append('packaging')
2826
29 setuptools_known_environment_markers = (LooseVersion(setuptools_version) >= LooseVersion('36.2'))
30 if setuptools_known_environment_markers:
31 install_requires.append('mock ; python_version < "3.3"')
32 elif 'bdist_wheel' in sys.argv[1:]:
33 raise RuntimeError('Error, you are trying to build certbot wheels using an old version '
34 'of setuptools. Version 36.2+ of setuptools is required.')
35 elif sys.version_info < (3,3):
36 install_requires.append('mock')
37
3827 docs_extras = [
3928 'Sphinx>=1.0', # autodoc_member_order = 'bysource', autodoc_default_flags
4029 'sphinx_rtd_theme',
4635 description="RFC 2136 DNS Authenticator plugin for Certbot",
4736 url='https://github.com/certbot/certbot',
4837 author="Certbot Project",
49 author_email='client-dev@letsencrypt.org',
38 author_email='certbot-dev@eff.org',
5039 license='Apache License 2.0',
51 python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*',
40 python_requires='>=3.6',
5241 classifiers=[
5342 'Development Status :: 5 - Production/Stable',
5443 'Environment :: Plugins',
5645 'License :: OSI Approved :: Apache Software License',
5746 'Operating System :: POSIX :: Linux',
5847 'Programming Language :: Python',
59 'Programming Language :: Python :: 2',
60 'Programming Language :: Python :: 2.7',
6148 'Programming Language :: Python :: 3',
6249 'Programming Language :: Python :: 3.6',
6350 'Programming Language :: Python :: 3.7',
2727 def setUp(self):
2828 from certbot_dns_rfc2136._internal.dns_rfc2136 import Authenticator
2929
30 super(AuthenticatorTest, self).setUp()
30 super().setUp()
3131
3232 path = os.path.join(self.tempdir, 'file.ini')
3333 dns_test_common.write(VALID_CONFIG, path)