Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-certbot-dns-digitalocean for
openSUSE:Factory checked in at 2021-04-15 16:57:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-certbot-dns-digitalocean (Old)
and /work/SRC/openSUSE:Factory/.python-certbot-dns-digitalocean.new.12324
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-certbot-dns-digitalocean"
Thu Apr 15 16:57:44 2021 rev:25 rq:885410 version:1.14.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-certbot-dns-digitalocean/python-certbot-dns-digitalocean.changes
2021-03-08 15:21:05.778107362 +0100
+++
/work/SRC/openSUSE:Factory/.python-certbot-dns-digitalocean.new.12324/python-certbot-dns-digitalocean.changes
2021-04-15 16:58:26.422771427 +0200
@@ -1,0 +2,7 @@
+Wed Apr 14 15:16:52 UTC 2021 - Mark??ta Machov?? <[email protected]>
+
+- update to version 1.14.0
+ * The DigitalOcean plugin now creates TXT records for the DNS-01
+ challenge with a lower 30s TTL.
+
+-------------------------------------------------------------------
Old:
----
certbot-dns-digitalocean-1.13.0.tar.gz
New:
----
certbot-dns-digitalocean-1.14.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-certbot-dns-digitalocean.spec ++++++
--- /var/tmp/diff_new_pack.SD3LVY/_old 2021-04-15 16:58:26.826772066 +0200
+++ /var/tmp/diff_new_pack.SD3LVY/_new 2021-04-15 16:58:26.826772066 +0200
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-certbot-dns-digitalocean
-Version: 1.13.0
+Version: 1.14.0
Release: 0
Summary: DigitalOcean Authenticator plugin for Certbot
License: Apache-2.0
++++++ certbot-dns-digitalocean-1.13.0.tar.gz ->
certbot-dns-digitalocean-1.14.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certbot-dns-digitalocean-1.13.0/PKG-INFO
new/certbot-dns-digitalocean-1.14.0/PKG-INFO
--- old/certbot-dns-digitalocean-1.13.0/PKG-INFO 2021-03-02
22:37:58.781778300 +0100
+++ new/certbot-dns-digitalocean-1.14.0/PKG-INFO 2021-04-06
19:17:21.725840000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: certbot-dns-digitalocean
-Version: 1.13.0
+Version: 1.14.0
Summary: DigitalOcean DNS Authenticator plugin for Certbot
Home-page: https://github.com/certbot/certbot
Author: Certbot Project
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certbot-dns-digitalocean-1.13.0/certbot_dns_digitalocean/_internal/dns_digitalocean.py
new/certbot-dns-digitalocean-1.14.0/certbot_dns_digitalocean/_internal/dns_digitalocean.py
---
old/certbot-dns-digitalocean-1.13.0/certbot_dns_digitalocean/_internal/dns_digitalocean.py
2021-03-02 22:37:04.000000000 +0100
+++
new/certbot-dns-digitalocean-1.14.0/certbot_dns_digitalocean/_internal/dns_digitalocean.py
2021-04-06 19:17:00.000000000 +0200
@@ -1,5 +1,6 @@
"""DNS Authenticator for DigitalOcean."""
import logging
+from typing import Optional
import digitalocean
import zope.interface
@@ -7,6 +8,7 @@
from certbot import errors
from certbot import interfaces
from certbot.plugins import dns_common
+from certbot.plugins.dns_common import CredentialsConfiguration
logger = logging.getLogger(__name__)
@@ -21,10 +23,11 @@
description = 'Obtain certificates using a DNS TXT record (if you are ' + \
'using DigitalOcean for DNS).'
+ ttl = 30
def __init__(self, *args, **kwargs):
super(Authenticator, self).__init__(*args, **kwargs)
- self.credentials = None
+ self.credentials: Optional[CredentialsConfiguration] = None
@classmethod
def add_parser_arguments(cls, add): # pylint: disable=arguments-differ
@@ -45,12 +48,15 @@
)
def _perform(self, domain, validation_name, validation):
- self._get_digitalocean_client().add_txt_record(domain,
validation_name, validation)
+ self._get_digitalocean_client().add_txt_record(domain,
validation_name, validation,
+ self.ttl)
def _cleanup(self, domain, validation_name, validation):
self._get_digitalocean_client().del_txt_record(domain,
validation_name, validation)
def _get_digitalocean_client(self):
+ if not self.credentials: # pragma: no cover
+ raise errors.Error("Plugin has not been prepared.")
return _DigitalOceanClient(self.credentials.conf('token'))
@@ -62,13 +68,15 @@
def __init__(self, token):
self.manager = digitalocean.Manager(token=token)
- def add_txt_record(self, domain_name, record_name, record_content):
+ def add_txt_record(self, domain_name: str, record_name: str,
record_content: str,
+ record_ttl: int):
"""
Add a TXT record using the supplied information.
:param str domain_name: The domain to use to associate the record with.
:param str record_name: The record name (typically beginning with
'_acme-challenge.').
:param str record_content: The record content (typically the challenge
validation).
+ :param int record_ttl: The record TTL.
:raises certbot.errors.PluginError: if an error occurs communicating
with the DigitalOcean
API
"""
@@ -89,7 +97,8 @@
result = domain.create_new_domain_record(
type='TXT',
name=self._compute_record_name(domain, record_name),
- data=record_content)
+ data=record_content,
+ ttl=record_ttl) # ttl kwarg is only effective starting
python-digitalocean 1.15.0
record_id = result['domain_record']['id']
@@ -99,7 +108,7 @@
raise errors.PluginError('Error adding TXT record using the
DigitalOcean API: {0}'
.format(e))
- def del_txt_record(self, domain_name, record_name, record_content):
+ def del_txt_record(self, domain_name: str, record_name: str,
record_content: str):
"""
Delete a TXT record using the supplied information.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certbot-dns-digitalocean-1.13.0/certbot_dns_digitalocean.egg-info/PKG-INFO
new/certbot-dns-digitalocean-1.14.0/certbot_dns_digitalocean.egg-info/PKG-INFO
---
old/certbot-dns-digitalocean-1.13.0/certbot_dns_digitalocean.egg-info/PKG-INFO
2021-03-02 22:37:58.000000000 +0100
+++
new/certbot-dns-digitalocean-1.14.0/certbot_dns_digitalocean.egg-info/PKG-INFO
2021-04-06 19:17:21.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: certbot-dns-digitalocean
-Version: 1.13.0
+Version: 1.14.0
Summary: DigitalOcean DNS Authenticator plugin for Certbot
Home-page: https://github.com/certbot/certbot
Author: Certbot Project
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certbot-dns-digitalocean-1.13.0/setup.py
new/certbot-dns-digitalocean-1.14.0/setup.py
--- old/certbot-dns-digitalocean-1.13.0/setup.py 2021-03-02
22:37:05.000000000 +0100
+++ new/certbot-dns-digitalocean-1.14.0/setup.py 2021-04-06
19:17:02.000000000 +0200
@@ -4,12 +4,12 @@
from setuptools import find_packages
from setuptools import setup
-version = '1.13.0'
+version = '1.14.0'
# Remember to update local-oldest-requirements.txt when changing the minimum
# acme/certbot version.
install_requires = [
- 'python-digitalocean>=1.11',
+ 'python-digitalocean>=1.11', # 1.15.0 or newer is recommended for TTL
support
'setuptools>=39.0.1',
'zope.interface',
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certbot-dns-digitalocean-1.13.0/tests/dns_digitalocean_test.py
new/certbot-dns-digitalocean-1.14.0/tests/dns_digitalocean_test.py
--- old/certbot-dns-digitalocean-1.13.0/tests/dns_digitalocean_test.py
2021-03-02 22:37:04.000000000 +0100
+++ new/certbot-dns-digitalocean-1.14.0/tests/dns_digitalocean_test.py
2021-04-06 19:17:00.000000000 +0200
@@ -40,7 +40,7 @@
def test_perform(self):
self.auth.perform([self.achall])
- expected = [mock.call.add_txt_record(DOMAIN,
'_acme-challenge.'+DOMAIN, mock.ANY)]
+ expected = [mock.call.add_txt_record(DOMAIN,
'_acme-challenge.'+DOMAIN, mock.ANY, 30)]
self.assertEqual(expected, self.mock_client.mock_calls)
def test_cleanup(self):
@@ -58,6 +58,7 @@
record_prefix = "_acme-challenge"
record_name = record_prefix + "." + DOMAIN
record_content = "bar"
+ record_ttl = 60
def setUp(self):
from certbot_dns_digitalocean._internal.dns_digitalocean import
_DigitalOceanClient
@@ -78,25 +79,27 @@
self.manager.get_all_domains.return_value = [wrong_domain_mock,
domain_mock]
- self.digitalocean_client.add_txt_record(DOMAIN, self.record_name,
self.record_content)
+ self.digitalocean_client.add_txt_record(DOMAIN, self.record_name,
self.record_content,
+ self.record_ttl)
domain_mock.create_new_domain_record.assert_called_with(type='TXT',
name=self.record_prefix,
-
data=self.record_content)
+
data=self.record_content,
+
ttl=self.record_ttl)
def test_add_txt_record_fail_to_find_domain(self):
self.manager.get_all_domains.return_value = []
self.assertRaises(errors.PluginError,
self.digitalocean_client.add_txt_record,
- DOMAIN, self.record_name, self.record_content)
+ DOMAIN, self.record_name, self.record_content,
self.record_ttl)
def test_add_txt_record_error_finding_domain(self):
self.manager.get_all_domains.side_effect = API_ERROR
self.assertRaises(errors.PluginError,
self.digitalocean_client.add_txt_record,
- DOMAIN, self.record_name, self.record_content)
+ DOMAIN, self.record_name, self.record_content,
self.record_ttl)
def test_add_txt_record_error_creating_record(self):
domain_mock = mock.MagicMock()
@@ -107,7 +110,7 @@
self.assertRaises(errors.PluginError,
self.digitalocean_client.add_txt_record,
- DOMAIN, self.record_name, self.record_content)
+ DOMAIN, self.record_name, self.record_content,
self.record_ttl)
def test_del_txt_record(self):
first_record_mock = mock.MagicMock()