Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-tooz for openSUSE:Factory checked in at 2021-12-12 00:57:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tooz (Old) and /work/SRC/openSUSE:Factory/.python-tooz.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tooz" Sun Dec 12 00:57:42 2021 rev:13 rq:939549 version:2.9.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tooz/python-tooz.changes 2021-05-10 15:40:00.901408331 +0200 +++ /work/SRC/openSUSE:Factory/.python-tooz.new.2520/python-tooz.changes 2021-12-12 00:57:58.298599295 +0100 @@ -1,0 +2,12 @@ +Mon Dec 6 09:23:49 UTC 2021 - cloud-de...@suse.de + +- update to version 2.9.0 + - Use py3 as the default runtime for tox + - Cap tenacity to unblock the gate + - Add Python3 wallaby unit tests + - Move flake8 as a pre-commit local target. + - Update master for stable/wallaby + - Retry on redis connection errors + - Bump hacking and flake8 version to fix pep8 job + +------------------------------------------------------------------- Old: ---- tooz-2.8.0.tar.gz New: ---- tooz-2.9.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tooz.spec ++++++ --- /var/tmp/diff_new_pack.OBufkp/_old 2021-12-12 00:57:58.738599598 +0100 +++ /var/tmp/diff_new_pack.OBufkp/_new 2021-12-12 00:57:58.742599600 +0100 @@ -20,13 +20,13 @@ %global rdo 1 %endif Name: python-tooz -Version: 2.8.0 +Version: 2.9.0 Release: 0 Summary: Coordination library for distributed systems License: Apache-2.0 Group: Development/Languages/Python URL: https://docs.openstack.org/tooz/latest/ -Source0: https://files.pythonhosted.org/packages/source/t/tooz/tooz-2.8.0.tar.gz +Source0: https://files.pythonhosted.org/packages/source/t/tooz/tooz-2.9.0.tar.gz BuildRequires: memcached BuildRequires: openstack-macros BuildRequires: python3-fasteners >= 0.7 @@ -84,7 +84,7 @@ This package contains documentation in HTML format. %prep -%autosetup -p1 -n tooz-2.8.0 +%autosetup -p1 -n tooz-2.9.0 %py_req_cleanup %build ++++++ _service ++++++ --- /var/tmp/diff_new_pack.OBufkp/_old 2021-12-12 00:57:58.766599616 +0100 +++ /var/tmp/diff_new_pack.OBufkp/_new 2021-12-12 00:57:58.766599616 +0100 @@ -1,8 +1,8 @@ <services> <service mode="disabled" name="renderspec"> - <param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/branch/stable/wallaby/openstack/tooz/tooz.spec.j2</param> + <param name="input-template">https://opendev.org/openstack/rpm-packaging/raw/master/openstack/tooz/tooz.spec.j2</param> <param name="output-name">python-tooz.spec</param> - <param name="requirements">https://opendev.org/openstack/tooz/raw/branch/stable/wallaby/requirements.txt</param> + <param name="requirements">https://opendev.org/openstack/tooz/raw/master/requirements.txt</param> <param name="changelog-email">cloud-de...@suse.de</param> <param name="changelog-provider">gh,openstack,tooz</param> </service> ++++++ tooz-2.8.0.tar.gz -> tooz-2.9.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/.pre-commit-config.yaml new/tooz-2.9.0/.pre-commit-config.yaml --- old/tooz-2.8.0/.pre-commit-config.yaml 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/.pre-commit-config.yaml 2021-05-14 10:54:45.000000000 +0200 @@ -9,7 +9,7 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: ebc15addedad713c86ef18ae9632c88e187dd0af # v3.1.0 + rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0 hooks: - id: trailing-whitespace # Replaces or checks mixed line ending @@ -27,9 +27,13 @@ - id: debug-statements - id: check-yaml files: .*\.(yaml|yml)$ - - repo: https://gitlab.com/pycqa/flake8 - rev: 181bb46098dddf7e2d45319ea654b4b4d58c2840 # 3.8.3 + - repo: local hooks: - id: flake8 + name: flake8 additional_dependencies: - - hacking>=3.0.1,<3.1.0 + - hacking>=4.0.0,<4.1.0 + language: python + entry: flake8 + files: '^.*\.py$' + exclude: '^(doc|releasenotes|tools)/.*$' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/.zuul.yaml new/tooz-2.9.0/.zuul.yaml --- old/tooz-2.8.0/.zuul.yaml 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/.zuul.yaml 2021-05-14 10:54:45.000000000 +0200 @@ -2,7 +2,7 @@ templates: - lib-forward-testing-python3 - openstack-cover-jobs - - openstack-python3-victoria-jobs + - openstack-python3-wallaby-jobs - periodic-stable-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/AUTHORS new/tooz-2.9.0/AUTHORS --- old/tooz-2.8.0/AUTHORS 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/AUTHORS 2021-05-14 10:55:13.000000000 +0200 @@ -10,6 +10,7 @@ ChangBo Guo(gcb) <eric....@easystack.cn> Chris Dent <chd...@redhat.com> Corey Bryant <corey.bry...@canonical.com> +Daniel Bengtsson <dbe...@redhat.com> Davanum Srinivas <dava...@gmail.com> Davanum Srinivas <d...@linux.vnet.ibm.com> Dina Belova <dbel...@mirantis.com> @@ -45,6 +46,7 @@ Longgeek <longg...@thstack.com> Lucas Alvares Gomes <lucasago...@gmail.com> Lucian Petrut <lpet...@cloudbasesolutions.com> +Matthias Runge <mru...@redhat.com> Mehdi Abaakouk <mehdi.abaak...@enovance.com> Mehdi Abaakouk <sil...@redhat.com> Mehdi Abaakouk <sil...@sileht.net> @@ -74,6 +76,7 @@ lahoucine BENLAHMR <lahouc...@benlahmr.com> liu-sheng <liush...@huawei.com> malei <malei@maleideMacBook-Pro.local> +manchandavishal <manchandavishal...@gmail.com> melissaml <ma....@99cloud.net> mengalong <alongm...@gmail.com> ushen <yshxxsjt...@gmail.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/ChangeLog new/tooz-2.9.0/ChangeLog --- old/tooz-2.8.0/ChangeLog 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/ChangeLog 2021-05-14 10:55:13.000000000 +0200 @@ -1,12 +1,23 @@ CHANGES ======= +2.9.0 +----- + +* Move flake8 as a pre-commit local target +* Retry on redis connection errors +* Update master for stable/wallaby +* Cap tenacity to unblock the gate +* Bump hacking and flake8 version to fix pep8 job +* Use py3 as the default runtime for tox + 2.8.0 ----- * Replace md5 with oslo version * Adding pre-commit * Blacklist etcd3gw 0.2.6 +* Add Python3 wallaby unit tests * Update master for stable/victoria 2.7.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/PKG-INFO new/tooz-2.9.0/PKG-INFO --- old/tooz-2.8.0/PKG-INFO 2020-11-30 17:06:41.313259400 +0100 +++ new/tooz-2.9.0/PKG-INFO 2021-05-14 10:55:13.561027300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tooz -Version: 2.8.0 +Version: 2.9.0 Summary: Coordination library for distributed systems. Home-page: https://docs.openstack.org/tooz/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/releasenotes/source/index.rst new/tooz-2.9.0/releasenotes/source/index.rst --- old/tooz-2.8.0/releasenotes/source/index.rst 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/releasenotes/source/index.rst 2021-05-14 10:54:45.000000000 +0200 @@ -6,6 +6,7 @@ :maxdepth: 1 unreleased + wallaby victoria ussuri train diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/releasenotes/source/wallaby.rst new/tooz-2.9.0/releasenotes/source/wallaby.rst --- old/tooz-2.8.0/releasenotes/source/wallaby.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/tooz-2.9.0/releasenotes/source/wallaby.rst 2021-05-14 10:54:45.000000000 +0200 @@ -0,0 +1,6 @@ +============================ +Wallaby Series Release Notes +============================ + +.. release-notes:: + :branch: stable/wallaby diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/requirements.txt new/tooz-2.9.0/requirements.txt --- old/tooz-2.8.0/requirements.txt 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/requirements.txt 2021-05-14 10:54:45.000000000 +0200 @@ -6,7 +6,7 @@ voluptuous>=0.8.9 # BSD License msgpack>=0.4.0 # Apache-2.0 fasteners>=0.7 # Apache-2.0 -tenacity>=3.2.1 # Apache-2.0 +tenacity>=3.2.1,<7.0.0 # Apache-2.0 futurist>=1.2.0 # Apache-2.0 oslo.utils>=4.7.0 # Apache-2.0 oslo.serialization>=1.10.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tooz/drivers/redis.py new/tooz-2.9.0/tooz/drivers/redis.py --- old/tooz-2.8.0/tooz/drivers/redis.py 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/tooz/drivers/redis.py 2021-05-14 10:54:45.000000000 +0200 @@ -14,7 +14,6 @@ # License for the specific language governing permissions and limitations # under the License. -import contextlib from distutils import version import functools import logging @@ -35,19 +34,46 @@ LOG = logging.getLogger(__name__) -@contextlib.contextmanager -def _translate_failures(): - """Translates common redis exceptions into tooz exceptions.""" - try: - yield - except (exceptions.ConnectionError, exceptions.TimeoutError) as e: - utils.raise_with_cause(coordination.ToozConnectionError, - encodeutils.exception_to_unicode(e), - cause=e) - except exceptions.RedisError as e: - utils.raise_with_cause(tooz.ToozError, - encodeutils.exception_to_unicode(e), - cause=e) +def _handle_failures(func=None, n_tries=15): + + """Translates common redis exceptions into tooz exceptions. + + This also enables retrying on certain exceptions. + + :param func: the function to act on + :param n_tries: the number of retries + """ + + if func is None: + return functools.partial( + _handle_failures, + n_tries=n_tries + ) + + @functools.wraps(func) + def wrapper(*args, **kwargs): + ntries = n_tries + while ntries > 1: + try: + return func(*args, **kwargs) + except exceptions.ConnectionError as e: + # retry ntries times and then raise a connection error + ntries -= 1 + if ntries >= 1: + utils.raise_with_cause(coordination.ToozConnectionError, + encodeutils.exception_to_unicode(e), + cause=e) + + except (exceptions.TimeoutError) as e: + utils.raise_with_cause(coordination.ToozConnectionError, + encodeutils.exception_to_unicode(e), + cause=e) + except exceptions.RedisError as e: + utils.raise_with_cause(tooz.ToozError, + encodeutils.exception_to_unicode(e), + cause=e) + return func(*args, **kwargs) + return wrapper class RedisLock(locking.Lock): @@ -63,48 +89,48 @@ self._coord = coord self._client = client + @_handle_failures def is_still_owner(self): - with _translate_failures(): - lock_tok = self._lock.local.token - if not lock_tok: - return False - owner_tok = self._client.get(self.name) - return owner_tok == lock_tok + lock_tok = self._lock.local.token + if not lock_tok: + return False + owner_tok = self._client.get(self.name) + return owner_tok == lock_tok + @_handle_failures def break_(self): - with _translate_failures(): - return bool(self._client.delete(self.name)) + return bool(self._client.delete(self.name)) + @_handle_failures def acquire(self, blocking=True, shared=False): if shared: raise tooz.NotImplemented blocking, timeout = utils.convert_blocking(blocking) - with _translate_failures(): - acquired = self._lock.acquire( - blocking=blocking, blocking_timeout=timeout) - if acquired: - with self._exclusive_access: - self._coord._acquired_locks.add(self) - return acquired + acquired = self._lock.acquire( + blocking=blocking, blocking_timeout=timeout) + if acquired: + with self._exclusive_access: + self._coord._acquired_locks.add(self) + return acquired + @_handle_failures def release(self): with self._exclusive_access: - with _translate_failures(): - try: - self._lock.release() - except exceptions.LockError as e: - LOG.error("Unable to release lock '%r': %s", self, e) - return False - finally: - self._coord._acquired_locks.discard(self) - return True + try: + self._lock.release() + except exceptions.LockError as e: + LOG.error("Unable to release lock '%r': %s", self, e) + return False + finally: + self._coord._acquired_locks.discard(self) + return True + @_handle_failures def heartbeat(self): with self._exclusive_access: if self.acquired: - with _translate_failures(): - self._lock.reacquire() - return True + self._lock.reacquire() + return True return False @property @@ -433,6 +459,7 @@ return master_client return redis.StrictRedis(**kwargs) + @_handle_failures def _start(self): super(RedisDriver, self)._start() try: @@ -446,8 +473,7 @@ # Ensure that the server is alive and not dead, this does not # ensure the server will always be alive, but does insure that it # at least is alive once... - with _translate_failures(): - self._server_info = self._client.info() + self._server_info = self._client.info() # Validate we have a good enough redis version we are connected # to so that the basic set of features we support will actually # work (instead of blowing up). @@ -506,12 +532,13 @@ def _decode_group_id(self, group_id): return utils.to_binary(group_id, encoding=self._encoding) + @_handle_failures def heartbeat(self): - with _translate_failures(): - beat_id = self._encode_beat_id(self._member_id) - expiry_ms = max(0, int(self.membership_timeout * 1000.0)) - self._client.psetex(beat_id, time_ms=expiry_ms, - value=self.STILL_ALIVE) + beat_id = self._encode_beat_id(self._member_id) + expiry_ms = max(0, int(self.membership_timeout * 1000.0)) + self._client.psetex(beat_id, time_ms=expiry_ms, + value=self.STILL_ALIVE) + for lock in self._acquired_locks.copy(): try: lock.heartbeat() @@ -520,6 +547,7 @@ exc_info=True) return min(self.lock_timeout, self.membership_timeout) + @_handle_failures def _stop(self): while self._acquired_locks: lock = self._acquired_locks.pop() @@ -534,8 +562,7 @@ try: # NOTE(harlowja): this will delete nothing if the key doesn't # exist in the first place, which is fine/expected/desired... - with _translate_failures(): - self._client.delete(beat_id) + self._client.delete(beat_id) except tooz.ToozError: LOG.warning("Unable to delete heartbeat key '%s'", beat_id, exc_info=True) @@ -752,5 +779,4 @@ return result -RedisFutureResult = functools.partial(coordination.CoordinatorResult, - failure_translator=_translate_failures) +RedisFutureResult = functools.partial(coordination.CoordinatorResult) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tooz.egg-info/PKG-INFO new/tooz-2.9.0/tooz.egg-info/PKG-INFO --- old/tooz-2.8.0/tooz.egg-info/PKG-INFO 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/tooz.egg-info/PKG-INFO 2021-05-14 10:55:13.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: tooz -Version: 2.8.0 +Version: 2.9.0 Summary: Coordination library for distributed systems. Home-page: https://docs.openstack.org/tooz/latest/ Author: OpenStack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tooz.egg-info/SOURCES.txt new/tooz-2.9.0/tooz.egg-info/SOURCES.txt --- old/tooz-2.8.0/tooz.egg-info/SOURCES.txt 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/tooz.egg-info/SOURCES.txt 2021-05-14 10:55:13.000000000 +0200 @@ -65,6 +65,7 @@ releasenotes/source/unreleased.rst releasenotes/source/ussuri.rst releasenotes/source/victoria.rst +releasenotes/source/wallaby.rst releasenotes/source/_static/.placeholder releasenotes/source/_templates/.placeholder tools/compat-matrix.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tooz.egg-info/pbr.json new/tooz-2.9.0/tooz.egg-info/pbr.json --- old/tooz-2.8.0/tooz.egg-info/pbr.json 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/tooz.egg-info/pbr.json 2021-05-14 10:55:13.000000000 +0200 @@ -1 +1 @@ -{"git_version": "54448e9", "is_release": true} \ No newline at end of file +{"git_version": "174065f", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tooz.egg-info/requires.txt new/tooz-2.9.0/tooz.egg-info/requires.txt --- old/tooz-2.8.0/tooz.egg-info/requires.txt 2020-11-30 17:06:41.000000000 +0100 +++ new/tooz-2.9.0/tooz.egg-info/requires.txt 2021-05-14 10:55:13.000000000 +0200 @@ -5,7 +5,7 @@ oslo.utils>=4.7.0 pbr>=1.6 stevedore>=1.16.0 -tenacity>=3.2.1 +tenacity<7.0.0,>=3.2.1 voluptuous>=0.8.9 [consul] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tooz-2.8.0/tox.ini new/tooz-2.9.0/tox.ini --- old/tooz-2.8.0/tox.ini 2020-11-30 17:06:04.000000000 +0100 +++ new/tooz-2.9.0/tox.ini 2021-05-14 10:54:45.000000000 +0200 @@ -1,6 +1,6 @@ [tox] minversion = 3.1.0 -envlist = py38,py{36,38}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3,etcd3gw},pep8 +envlist = py3,py{36,38}-{zookeeper,redis,sentinel,memcached,postgresql,mysql,consul,etcd,etcd3,etcd3gw},pep8 ignore_basepython_conflict = True [testenv] @@ -59,7 +59,7 @@ commands = sphinx-build -W -b html doc/source doc/build/html [testenv:pep8] -deps = hacking<2.1,>=2.0 +deps = hacking>=4.0.0,<4.1.0 doc8 pre-commit>=2.6.0 commands =