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?? <mmach...@suse.com>
+
+- 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()

Reply via email to