Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-oslo.cache for
openSUSE:Factory checked in at 2022-06-07 11:45:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.cache (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.cache.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.cache"
Tue Jun 7 11:45:28 2022 rev:15 rq:981112 version:2.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.cache/python-oslo.cache.changes
2021-12-13 20:50:52.100653036 +0100
+++
/work/SRC/openSUSE:Factory/.python-oslo.cache.new.1548/python-oslo.cache.changes
2022-06-07 11:45:45.535282048 +0200
@@ -1,0 +2,19 @@
+Tue Jun 7 08:41:59 UTC 2022 - [email protected]
+
+- update to version 2.11.0
+ - Add Python3 yoga unit tests
+ - Expose pymemcache's HashClient public params
+ - Add Python3 zed unit tests
+ - Add Python 3 only classifier
+ - fix typo
+ - Use the right backend for TLS tests
+ - Remove unnecessary unicode prefixes
+ - Drop pymongo useless and removed attribute
+ - Fix description of memcache_servers
+ - Update master for stable/xena
+ - Update master for stable/yoga
+ - Update python testing classifier
+ - Add socket keepalive options to oslo.cache
+ - Add retry mechanisms to oslo.cache
+
+-------------------------------------------------------------------
Old:
----
oslo.cache-2.8.1.tar.gz
New:
----
oslo.cache-2.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.cache.spec ++++++
--- /var/tmp/diff_new_pack.qUTxh6/_old 2022-06-07 11:45:45.943282618 +0200
+++ /var/tmp/diff_new_pack.qUTxh6/_new 2022-06-07 11:45:45.947282624 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.cache
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,25 +17,24 @@
Name: python-oslo.cache
-Version: 2.8.1
+Version: 2.11.0
Release: 0
Summary: Cache storage for Openstack projects
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/oslo.cache
-Source0:
https://files.pythonhosted.org/packages/source/o/oslo.cache/oslo.cache-2.8.1.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.cache/oslo.cache-2.11.0.tar.gz
BuildRequires: openstack-macros
-BuildRequires: python3-dogpile.cache >= 1.1.2
-BuildRequires: python3-mock
+BuildRequires: python3-dogpile.cache >= 1.1.5
BuildRequires: python3-oslo.config >= 8.1.0
BuildRequires: python3-oslo.i18n >= 5.0.0
BuildRequires: python3-oslo.log >= 4.2.1
BuildRequires: python3-oslo.utils >= 4.2.0
BuildRequires: python3-oslotest
BuildRequires: python3-pbr
+BuildRequires: python3-pymemcache
BuildRequires: python3-pymongo
BuildRequires: python3-python-memcached
-BuildRequires: python3-six
BuildRequires: python3-stestr
BuildArch: noarch
@@ -47,13 +46,12 @@
%package -n python3-oslo.cache
Summary: Cache storage for Openstack projects
-Requires: python3-dogpile.cache >= 1.1.2
+Requires: python3-dogpile.cache >= 1.1.5
Requires: python3-oslo.config >= 8.1.0
Requires: python3-oslo.i18n >= 5.0.0
Requires: python3-oslo.log >= 4.2.1
Requires: python3-oslo.utils >= 4.2.0
Requires: python3-python-memcached
-Requires: python3-six
%description -n python3-oslo.cache
oslo.cache aims to provide a generic caching mechanism for OpenStack projects
@@ -71,7 +69,7 @@
Documentation for the OpenStack Oslo cache library.
%prep
-%autosetup -p1 -n oslo.cache-2.8.1
+%autosetup -p1 -n oslo.cache-2.11.0
%py_req_cleanup
%build
@@ -81,7 +79,7 @@
%{py3_install}
# generate html docs
-PBR_VERSION=2.8.1 %sphinx_build -b html doc/source doc/build/html
+PBR_VERSION=2.11.0 %sphinx_build -b html doc/source doc/build/html
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
++++++ oslo.cache-2.8.1.tar.gz -> oslo.cache-2.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/.zuul.yaml
new/oslo.cache-2.11.0/.zuul.yaml
--- old/oslo.cache-2.8.1/.zuul.yaml 2021-06-15 11:58:40.000000000 +0200
+++ new/oslo.cache-2.11.0/.zuul.yaml 2022-04-27 17:30:55.000000000 +0200
@@ -55,7 +55,7 @@
templates:
- check-requirements
- lib-forward-testing-python3
- - openstack-python3-xena-jobs
+ - openstack-python3-zed-jobs
- periodic-stable-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/AUTHORS
new/oslo.cache-2.11.0/AUTHORS
--- old/oslo.cache-2.8.1/AUTHORS 2021-06-15 12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/AUTHORS 2022-04-27 17:31:26.000000000 +0200
@@ -64,6 +64,7 @@
Stephen Finucane <[email protected]>
Steve Martinelli <[email protected]>
Swapnil Kulkarni (coolsvap) <[email protected]>
+Takashi Kajinami <[email protected]>
Tony Breeds <[email protected]>
Tovin Seven <[email protected]>
Vieri <[email protected]>
@@ -81,6 +82,7 @@
melissaml <[email protected]>
ricolin <[email protected]>
root <root@newapps.(none)>
+songwenping <[email protected]>
termie <[email protected]>
wangqi <[email protected]>
wangxiyuan <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/ChangeLog
new/oslo.cache-2.11.0/ChangeLog
--- old/oslo.cache-2.8.1/ChangeLog 2021-06-15 12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/ChangeLog 2022-04-27 17:31:26.000000000 +0200
@@ -1,6 +1,36 @@
CHANGES
=======
+2.11.0
+------
+
+* Remove unnecessary unicode prefixes
+* Fix description of memcache\_servers
+* Add Python3 zed unit tests
+* Update master for stable/yoga
+
+2.10.1
+------
+
+* Use the right backend for TLS tests
+* Add Python 3 only classifier
+
+2.10.0
+------
+
+* Expose pymemcache's HashClient public params
+* Add retry mechanisms to oslo.cache
+* Add socket keepalive options to oslo.cache
+
+2.9.0
+-----
+
+* Update python testing classifier
+* Drop pymongo useless and removed attribute
+* Add Python3 yoga unit tests
+* Update master for stable/xena
+* fix typo
+
2.8.1
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/PKG-INFO
new/oslo.cache-2.11.0/PKG-INFO
--- old/oslo.cache-2.8.1/PKG-INFO 2021-06-15 12:12:28.266253500 +0200
+++ new/oslo.cache-2.11.0/PKG-INFO 2022-04-27 17:31:26.557113000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: oslo.cache
-Version: 2.8.1
+Version: 2.11.0
Summary: Cache storage for OpenStack projects.
Home-page: https://docs.openstack.org/oslo.cache/latest
Author: OpenStack
@@ -49,9 +49,12 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.6
Provides-Extra: dogpile
Provides-Extra: etcd3gw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/doc/requirements.txt
new/oslo.cache-2.11.0/doc/requirements.txt
--- old/oslo.cache-2.8.1/doc/requirements.txt 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/doc/requirements.txt 2022-04-27 17:30:55.000000000
+0200
@@ -11,6 +11,7 @@
# For autodoc builds
mock>=2.0.0 # BSD
oslotest>=3.2.0 # Apache-2.0
+pymemcache>=3.5.0 # Apache-2.0
python-binary-memcached>=0.29.0 # MIT
python-memcached>=1.56 # PSF
etcd3gw>=0.2.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/doc/source/conf.py
new/oslo.cache-2.11.0/doc/source/conf.py
--- old/oslo.cache-2.8.1/doc/source/conf.py 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/doc/source/conf.py 2022-04-27 17:30:55.000000000
+0200
@@ -46,8 +46,8 @@
master_doc = 'index'
# General information about the project.
-project = u'oslo.cache'
-copyright = u'2014, OpenStack Foundation'
+project = 'oslo.cache'
+copyright = '2014, OpenStack Foundation'
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
@@ -79,8 +79,8 @@
latex_documents = [
('index',
'%s.tex' % project,
- u'%s Documentation' % project,
- u'OpenStack Foundation', 'manual'),
+ '%s Documentation' % project,
+ 'OpenStack Foundation', 'manual'),
]
intersphinx_mapping = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo.cache.egg-info/PKG-INFO
new/oslo.cache-2.11.0/oslo.cache.egg-info/PKG-INFO
--- old/oslo.cache-2.8.1/oslo.cache.egg-info/PKG-INFO 2021-06-15
12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo.cache.egg-info/PKG-INFO 2022-04-27
17:31:26.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: oslo.cache
-Version: 2.8.1
+Version: 2.11.0
Summary: Cache storage for OpenStack projects.
Home-page: https://docs.openstack.org/oslo.cache/latest
Author: OpenStack
@@ -49,9 +49,12 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.6
Provides-Extra: dogpile
Provides-Extra: etcd3gw
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo.cache.egg-info/SOURCES.txt
new/oslo.cache-2.11.0/oslo.cache.egg-info/SOURCES.txt
--- old/oslo.cache-2.8.1/oslo.cache.egg-info/SOURCES.txt 2021-06-15
12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo.cache.egg-info/SOURCES.txt 2022-04-27
17:31:26.000000000 +0200
@@ -85,6 +85,9 @@
releasenotes/notes/fix-memcache-pool-backend-b9e6aaab08075d68.yaml
releasenotes/notes/lower_socket_timeout-ff5680a6be23bdb2.yaml
releasenotes/notes/memcache_socket_timeout-a7db772f052c107e.yaml
+releasenotes/notes/pymemcache_hashclient_configure-f6f48c5ca38bce47.yaml
+releasenotes/notes/pymemcache_retry_mecchanisms-fa969d1ac6f64096.yaml
+releasenotes/notes/pymemcache_socket_keepalive-f91c69770961e2b6.yaml
releasenotes/notes/switch-from-python-memcached-to-pymemcache-566e70b224f92b73.yaml
releasenotes/source/conf.py
releasenotes/source/index.rst
@@ -99,6 +102,8 @@
releasenotes/source/ussuri.rst
releasenotes/source/victoria.rst
releasenotes/source/wallaby.rst
+releasenotes/source/xena.rst
+releasenotes/source/yoga.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
releasenotes/source/locale/de/LC_MESSAGES/releasenotes.po
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo.cache.egg-info/pbr.json
new/oslo.cache-2.11.0/oslo.cache.egg-info/pbr.json
--- old/oslo.cache-2.8.1/oslo.cache.egg-info/pbr.json 2021-06-15
12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo.cache.egg-info/pbr.json 2022-04-27
17:31:26.000000000 +0200
@@ -1 +1 @@
-{"git_version": "40946a9", "is_release": true}
\ No newline at end of file
+{"git_version": "2d610d0", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo.cache.egg-info/requires.txt
new/oslo.cache-2.11.0/oslo.cache.egg-info/requires.txt
--- old/oslo.cache-2.8.1/oslo.cache.egg-info/requires.txt 2021-06-15
12:12:28.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo.cache.egg-info/requires.txt 2022-04-27
17:31:26.000000000 +0200
@@ -1,10 +1,11 @@
-dogpile.cache>=1.1.2
+dogpile.cache>=1.1.5
oslo.config>=8.1.0
oslo.i18n>=5.0.0
oslo.log>=4.2.1
oslo.utils>=4.2.0
[dogpile]
+pymemcache>=3.5.0
python-memcached>=1.56
[etcd3gw]
@@ -20,7 +21,7 @@
oslotest>=3.2.0
pifpaf>=0.10.0
pre-commit>=2.6.0
-pymemcache>=3.4.0
+pymemcache>=3.5.0
pymongo!=3.1,>=3.0.2
python-binary-memcached>=0.29.0
python-memcached>=1.56
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo_cache/_opts.py
new/oslo.cache-2.11.0/oslo_cache/_opts.py
--- old/oslo.cache-2.8.1/oslo_cache/_opts.py 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/oslo_cache/_opts.py 2022-04-27 17:30:55.000000000
+0200
@@ -76,17 +76,18 @@
'to false.'),
cfg.ListOpt('memcache_servers', default=['localhost:11211'],
help='Memcache servers in the format of "host:port". '
- '(dogpile.cache.memcached and '
- 'oslo_cache.memcache_pool backends only). '
- 'If a given host refer to an IPv6 or a given domain '
- 'refer to IPv6 then you should prefix the given '
- 'address with the address family (``inet6``) '
+ 'This is used by backends dependent on Memcached.'
+ 'If ``dogpile.cache.memcached`` or '
+ '``oslo_cache.memcache_pool`` is used and a given '
+ 'host refer to an IPv6 or a given domain refer to '
+ 'IPv6 then you should prefix the given address with'
+ 'the address family (``inet6``) '
'(e.g ``inet6[::1]:11211``, '
'``inet6:[fd12:3456:789a:1::1]:11211``, '
'``inet6:[controller-0.internalapi]:11211``). '
- 'If the address family is not given then default '
- 'address family used will be ``inet`` which '
- 'correspond to IPv4'),
+ 'If the address family is not given then these '
+ 'backends will use the default ``inet`` address '
+ 'family which corresponds to IPv4'),
cfg.IntOpt('memcache_dead_retry',
default=5 * 60,
help='Number of seconds memcached server is considered dead'
@@ -137,7 +138,7 @@
cfg.StrOpt('tls_keyfile',
default=None,
help='Path to a single file containing the client\'s'
- ' private key in. Otherwhise the private key will be taken'
+ ' private key in. Otherwise the private key will be taken'
' from the file specified in tls_certfile. If tls_enabled'
' is False, this option is ignored.'),
cfg.StrOpt('tls_allowed_ciphers',
@@ -146,6 +147,65 @@
' the TLS context. It should be a string in the OpenSSL'
' cipher list format. If not specified, all OpenSSL enabled'
' ciphers will be available.'),
+ cfg.BoolOpt(
+ 'enable_socket_keepalive',
+ default=False,
+ help="Global toggle for the socket keepalive of "
+ "dogpile's pymemcache backend"),
+ cfg.IntOpt(
+ 'socket_keepalive_idle',
+ default=1,
+ min=0,
+ help='The time (in seconds) the connection needs to '
+ 'remain idle before TCP starts sending keepalive probes. '
+ 'Should be a positive integer most greater than zero.'),
+ cfg.IntOpt(
+ 'socket_keepalive_interval',
+ default=1,
+ min=0,
+ help='The time (in seconds) between individual keepalive '
+ 'probes. Should be a positive integer greater '
+ 'than zero.'),
+ cfg.IntOpt(
+ 'socket_keepalive_count',
+ default=1,
+ min=0,
+ help='The maximum number of keepalive probes TCP should '
+ 'send before dropping the connection. Should be a '
+ 'positive integer greater than zero.'),
+ cfg.BoolOpt(
+ 'enable_retry_client',
+ default=False,
+ help='Enable retry client mechanisms to handle failure. '
+ 'Those mechanisms can be used to wrap all kind of pymemcache '
+ 'clients. The wrapper allows you to define how many attempts '
+ 'to make and how long to wait between attemots.'),
+ cfg.IntOpt(
+ 'retry_attempts',
+ min=1,
+ default=2,
+ help='Number of times to attempt an action before failing.'),
+ cfg.FloatOpt(
+ 'retry_delay',
+ default=0,
+ help='Number of seconds to sleep between each attempt.'),
+ cfg.IntOpt(
+ 'hashclient_retry_attempts',
+ min=1,
+ default=2,
+ help='Amount of times a client should be tried '
+ 'before it is marked dead and removed from the pool in '
+ 'the HashClient\'s internal mechanisms.'),
+ cfg.FloatOpt(
+ 'hashclient_retry_delay',
+ default=1,
+ help='Time in seconds that should pass between '
+ 'retry attempts in the HashClient\'s internal mechanisms.'),
+ cfg.FloatOpt(
+ 'dead_timeout',
+ default=60,
+ help='Time in seconds before attempting to add a node '
+ 'back in the pool in the HashClient\'s internal mechanisms.'),
],
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/oslo_cache/core.py
new/oslo.cache-2.11.0/oslo_cache/core.py
--- old/oslo.cache-2.8.1/oslo_cache/core.py 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/oslo_cache/core.py 2022-04-27 17:30:55.000000000
+0200
@@ -188,6 +188,54 @@
conf_dict['%s.arguments.tls_context' % prefix] = tls_context
+ # NOTE(hberaud): Pymemcache support socket keepalive, If it is enable in
+ # our config then configure it to enable this feature.
+ # The socket keepalive feature means that pymemcache will be able to check
+ # your connected socket and determine whether the connection is still up
+ # and running or if it has broken.
+ # This could be used by users who want to handle fine grained failures.
+ if conf.cache.enable_socket_keepalive:
+ if conf.cache.backend != 'dogpile.cache.pymemcache':
+ msg = _(
+ "Socket keepalive is only supported by the "
+ "'dogpile.cache.pymemcache' backend."
+ )
+ raise exception.ConfigurationError(msg)
+ import pymemcache
+ socket_keepalive = pymemcache.KeepaliveOpts(
+ idle=conf.cache.socket_keepalive_idle,
+ intvl=conf.cache.socket_keepalive_interval,
+ cnt=conf.cache.socket_keepalive_count)
+ # As with the TLS context above, the config dict below will be
+ # consumed by dogpile.cache that will be used as a proxy between
+ # oslo.cache and pymemcache.
+ conf_dict['%s.arguments.socket_keepalive' % prefix] = socket_keepalive
+
+ # NOTE(hberaud): The pymemcache library comes with retry mechanisms that
+ # can be used to wrap all kind of pymemcache clients. The retry wrapper
+ # allow you to define how many attempts to make and how long to wait
+ # between attempts. The section below will pass our config
+ # to dogpile.cache to setup the pymemcache retry client wrapper.
+ if conf.cache.enable_retry_client:
+ if conf.cache.backend != 'dogpile.cache.pymemcache':
+ msg = _(
+ "Retry client is only supported by the "
+ "'dogpile.cache.pymemcache' backend."
+ )
+ raise exception.ConfigurationError(msg)
+ import pymemcache
+ conf_dict['%s.arguments.enable_retry_client' % prefix] = True
+ conf_dict['%s.arguments.retry_attempts' % prefix] = \
+ conf.cache.retry_attempts
+ conf_dict['%s.arguments.retry_delay' % prefix] = \
+ conf.cache.retry_delay
+ conf_dict['%s.arguments.hashclient_retry_attempts' % prefix] = \
+ conf.cache.hashclient_retry_attempts
+ conf_dict['%s.arguments.hashclient_retry_delay' % prefix] = \
+ conf.cache.hashclient_retry_delay
+ conf_dict['%s.arguments.dead_timeout' % prefix] = \
+ conf.cache.dead_timeout
+
return conf_dict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.cache-2.8.1/oslo_cache/tests/unit/test_cache_backend_mongo.py
new/oslo.cache-2.11.0/oslo_cache/tests/unit/test_cache_backend_mongo.py
--- old/oslo.cache-2.8.1/oslo_cache/tests/unit/test_cache_backend_mongo.py
2021-06-15 11:58:40.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo_cache/tests/unit/test_cache_backend_mongo.py
2022-04-27 17:30:55.000000000 +0200
@@ -261,8 +261,6 @@
import pymongo
if pymongo.MongoClient is not MockMongoClient:
pymongo.MongoClient = MockMongoClient
- if pymongo.MongoReplicaSetClient is not MockMongoClient:
- pymongo.MongoClient = MockMongoClient
class MyTransformer(mongo.BaseTransform):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.cache-2.8.1/oslo_cache/tests/unit/test_cache_basics.py
new/oslo.cache-2.11.0/oslo_cache/tests/unit/test_cache_basics.py
--- old/oslo.cache-2.8.1/oslo_cache/tests/unit/test_cache_basics.py
2021-06-15 11:58:40.000000000 +0200
+++ new/oslo.cache-2.11.0/oslo_cache/tests/unit/test_cache_basics.py
2022-04-27 17:30:55.000000000 +0200
@@ -21,6 +21,7 @@
from dogpile.cache import proxy
from oslo_config import cfg
from oslo_utils import uuidutils
+from pymemcache import KeepaliveOpts
from oslo_cache import _opts
from oslo_cache import core as cache
@@ -280,7 +281,7 @@
self.config_fixture.config(group='cache',
enabled=True,
config_prefix='test_prefix',
- backend='oslo_cache.dict',
+ backend='dogpile.cache.pymemcache',
tls_cafile='path_to_ca_file',
tls_keyfile='path_to_key_file',
tls_certfile='path_to_cert_file',
@@ -298,7 +299,7 @@
self.config_fixture.config(group='cache',
enabled=True,
config_prefix='test_prefix',
- backend='oslo_cache.dict',
+ backend='dogpile.cache.pymemcache',
tls_enabled=True)
fake_context = mock.Mock()
@@ -322,7 +323,7 @@
self.config_fixture.config(group='cache',
enabled=True,
config_prefix='test_prefix',
- backend='oslo_cache.dict',
+ backend='dogpile.cache.pymemcache',
tls_enabled=True,
tls_cafile='path_to_ca_file',
tls_keyfile='path_to_key_file',
@@ -352,6 +353,210 @@
config_dict['test_prefix.arguments.tls_context'],
)
+ def test_cache_pymemcache_socket_kalive_enabled_with_wrong_backend(self):
+ """Validate we build a config without the retry option when retry
+ is disabled.
+ """
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='oslo_cache.dict',
+ enable_socket_keepalive=True)
+
+ self.assertRaises(
+ exception.ConfigurationError,
+ cache._build_cache_config,
+ self.config_fixture.conf
+ )
+
+ def test_cache_pymemcache_socket_keepalive_disabled(self):
+ """Validate we build a dogpile.cache dict config without keepalive."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ socket_keepalive_idle=2,
+ socket_keepalive_interval=2,
+ socket_keepalive_count=2)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ self.assertFalse(
+ self.config_fixture.conf.cache.enable_socket_keepalive)
+ self.assertNotIn(
+ 'test_prefix.arguments.socket_keepalive', config_dict)
+
+ def test_cache_pymemcache_socket_keepalive_enabled(self):
+ """Validate we build a dogpile.cache dict config with keepalive."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ enable_socket_keepalive=True)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ self.assertTrue(
+ self.config_fixture.conf.cache.enable_socket_keepalive)
+
+ self.assertIsInstance(
+ config_dict['test_prefix.arguments.socket_keepalive'],
+ KeepaliveOpts
+ )
+
+ def test_cache_pymemcache_socket_keepalive_with_config(self):
+ """Validate we build a socket keepalive with the right config."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ enable_socket_keepalive=True,
+ socket_keepalive_idle=12,
+ socket_keepalive_interval=38,
+ socket_keepalive_count=42)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ self.assertTrue(
+ self.config_fixture.conf.cache.enable_socket_keepalive)
+
+ self.assertTrue(
+ config_dict['test_prefix.arguments.socket_keepalive'],
+ KeepaliveOpts
+ )
+ self.assertEqual(
+ 12,
+ config_dict['test_prefix.arguments.socket_keepalive'].idle
+ )
+ self.assertEqual(
+ 38,
+ config_dict['test_prefix.arguments.socket_keepalive'].intvl
+ )
+ self.assertEqual(
+ 42,
+ config_dict['test_prefix.arguments.socket_keepalive'].cnt
+ )
+
+ def test_cache_pymemcache_retry_enabled_with_wrong_backend(self):
+ """Validate we build a config without the retry option when retry
+ is disabled.
+ """
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='oslo_cache.dict',
+ enable_retry_client=True,
+ retry_attempts=2,
+ retry_delay=2)
+
+ self.assertRaises(
+ exception.ConfigurationError,
+ cache._build_cache_config,
+ self.config_fixture.conf
+ )
+
+ def test_cache_pymemcache_retry_disabled(self):
+ """Validate we build a config without the retry option when retry
+ is disabled.
+ """
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ retry_attempts=2,
+ retry_delay=2)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ opts = ['enable_retry_client', 'retry_attempts', 'retry_delay']
+
+ for el in opts:
+ self.assertNotIn('test_prefix.arguments.{}'.format(el),
+ config_dict)
+
+ def test_cache_pymemcache_retry_enabled(self):
+ """Validate we build a dogpile.cache dict config with retry."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ enable_retry_client=True)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ opts = ['enable_retry_client', 'retry_attempts', 'retry_delay']
+
+ for el in opts:
+ self.assertIn('test_prefix.arguments.{}'.format(el), config_dict)
+
+ def test_cache_pymemcache_retry_with_opts(self):
+ """Validate we build a valid config for the retry client."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ enable_retry_client=True,
+ retry_attempts=42,
+ retry_delay=42)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ self.assertTrue(
+ self.config_fixture.conf.cache.enable_retry_client)
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.retry_attempts'],
+ 42
+ )
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.retry_delay'],
+ 42
+ )
+
+ def test_cache_pymemcache_retry_with_extra_opts(self):
+ """Validate we build a valid config for the retry client."""
+ self.config_fixture.config(group='cache',
+ enabled=True,
+ config_prefix='test_prefix',
+ backend='dogpile.cache.pymemcache',
+ enable_retry_client=True,
+ retry_attempts=42,
+ retry_delay=42,
+ hashclient_retry_attempts=100,
+ hashclient_retry_delay=100,
+ dead_timeout=100)
+
+ config_dict = cache._build_cache_config(self.config_fixture.conf)
+
+ self.assertTrue(
+ self.config_fixture.conf.cache.enable_retry_client)
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.retry_attempts'],
+ 42
+ )
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.retry_delay'],
+ 42
+ )
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.hashclient_retry_attempts'],
+ 100
+ )
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.hashclient_retry_delay'],
+ 100
+ )
+
+ self.assertEqual(
+ config_dict['test_prefix.arguments.dead_timeout'],
+ 100
+ )
+
def test_cache_dictionary_config_builder_flush_on_reconnect_enabled(self):
"""Validate we build a sane dogpile.cache dictionary config."""
self.config_fixture.config(group='cache',
@@ -431,7 +636,7 @@
class UTF8KeyManglerTests(test_cache.BaseTestCase):
def test_key_is_utf8_encoded(self):
- key = u'f??k??1'
+ key = 'f??k??1'
encoded = cache._sha1_mangle_key(key)
self.assertIsNotNone(encoded)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_hashclient_configure-f6f48c5ca38bce47.yaml
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_hashclient_configure-f6f48c5ca38bce47.yaml
---
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_hashclient_configure-f6f48c5ca38bce47.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_hashclient_configure-f6f48c5ca38bce47.yaml
2022-04-27 17:30:55.000000000 +0200
@@ -0,0 +1,8 @@
+---
+features:
+ - |
+ Add new options (``hashclient_retry_attempts``, ``hashclient_retry_delay``,
+ ``dead_timeout``) to allow to configure pymemcache's HashClient use
+ through dogpile.cache's pymemcache backend. Those options expose
+ pymemcache params that allow to configure the failover for memcached
+ cluster.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_retry_mecchanisms-fa969d1ac6f64096.yaml
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_retry_mecchanisms-fa969d1ac6f64096.yaml
---
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_retry_mecchanisms-fa969d1ac6f64096.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_retry_mecchanisms-fa969d1ac6f64096.yaml
2022-04-27 17:30:55.000000000 +0200
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add new options (``enable_retry_client``, ``retry_attempts``,
+ ``retry_delay``) to add retry mechanisms to the pymemcache backend.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_socket_keepalive-f91c69770961e2b6.yaml
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_socket_keepalive-f91c69770961e2b6.yaml
---
old/oslo.cache-2.8.1/releasenotes/notes/pymemcache_socket_keepalive-f91c69770961e2b6.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.cache-2.11.0/releasenotes/notes/pymemcache_socket_keepalive-f91c69770961e2b6.yaml
2022-04-27 17:30:55.000000000 +0200
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ New options (``enable_socket_keepalive``, ``socket_keepalive_idle``,
+ ``socket_keepalive_interval``, ``socket_keepalive_count``) allow to use
+ and configure pymemcache's socket keepalive capabilities.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/releasenotes/source/conf.py
new/oslo.cache-2.11.0/releasenotes/source/conf.py
--- old/oslo.cache-2.8.1/releasenotes/source/conf.py 2021-06-15
11:58:40.000000000 +0200
+++ new/oslo.cache-2.11.0/releasenotes/source/conf.py 2022-04-27
17:30:55.000000000 +0200
@@ -58,8 +58,8 @@
master_doc = 'index'
# General information about the project.
-project = u'oslo.cache Release Notes'
-copyright = u'2016, oslo.cache Developers'
+project = 'oslo.cache Release Notes'
+copyright = '2016, oslo.cache Developers'
# Release notes do not need a version in the title, they span
# multiple versions.
@@ -208,8 +208,8 @@
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'oslo.cacheReleaseNotes.tex',
- u'oslo.cache Release Notes Documentation',
- u'oslo.cache Developers', 'manual'),
+ 'oslo.cache Release Notes Documentation',
+ 'oslo.cache Developers', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -238,8 +238,8 @@
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'oslo.cacheReleaseNotes',
- u'oslo.cache Release Notes Documentation',
- [u'oslo.cache Developers'], 1)
+ 'oslo.cache Release Notes Documentation',
+ ['oslo.cache Developers'], 1)
]
# If true, show URL addresses after external links.
@@ -252,8 +252,8 @@
# dir menu entry, description, category)
texinfo_documents = [
('index', 'oslo.cacheReleaseNotes',
- u'oslo.cache Release Notes Documentation',
- u'oslo.cache Developers', 'oslo.cacheReleaseNotes',
+ 'oslo.cache Release Notes Documentation',
+ 'oslo.cache Developers', 'oslo.cacheReleaseNotes',
'One line description of project.',
'Miscellaneous'),
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/releasenotes/source/index.rst
new/oslo.cache-2.11.0/releasenotes/source/index.rst
--- old/oslo.cache-2.8.1/releasenotes/source/index.rst 2021-06-15
11:58:40.000000000 +0200
+++ new/oslo.cache-2.11.0/releasenotes/source/index.rst 2022-04-27
17:30:55.000000000 +0200
@@ -6,6 +6,8 @@
:maxdepth: 1
unreleased
+ yoga
+ xena
wallaby
victoria
ussuri
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/releasenotes/source/xena.rst
new/oslo.cache-2.11.0/releasenotes/source/xena.rst
--- old/oslo.cache-2.8.1/releasenotes/source/xena.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.cache-2.11.0/releasenotes/source/xena.rst 2022-04-27
17:30:55.000000000 +0200
@@ -0,0 +1,6 @@
+=========================
+Xena Series Release Notes
+=========================
+
+.. release-notes::
+ :branch: stable/xena
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/releasenotes/source/yoga.rst
new/oslo.cache-2.11.0/releasenotes/source/yoga.rst
--- old/oslo.cache-2.8.1/releasenotes/source/yoga.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.cache-2.11.0/releasenotes/source/yoga.rst 2022-04-27
17:30:55.000000000 +0200
@@ -0,0 +1,6 @@
+=========================
+Yoga Series Release Notes
+=========================
+
+.. release-notes::
+ :branch: stable/yoga
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/requirements.txt
new/oslo.cache-2.11.0/requirements.txt
--- old/oslo.cache-2.8.1/requirements.txt 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/requirements.txt 2022-04-27 17:30:55.000000000
+0200
@@ -2,7 +2,7 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-dogpile.cache>=1.1.2 # BSD
+dogpile.cache>=1.1.5 # BSD
oslo.config>=8.1.0 # Apache-2.0
oslo.i18n>=5.0.0 # Apache-2.0
oslo.log>=4.2.1 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/setup.cfg
new/oslo.cache-2.11.0/setup.cfg
--- old/oslo.cache-2.8.1/setup.cfg 2021-06-15 12:12:28.270253400 +0200
+++ new/oslo.cache-2.11.0/setup.cfg 2022-04-27 17:31:26.557113000 +0200
@@ -14,9 +14,12 @@
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
+ Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
[files]
packages =
@@ -34,6 +37,7 @@
[extras]
dogpile =
python-memcached>=1.56 # PSF
+ pymemcache>=3.5.0 # Apache-2.0
mongo =
pymongo!=3.1,>=3.0.2 # Apache-2.0
etcd3gw =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.cache-2.8.1/test-requirements.txt
new/oslo.cache-2.11.0/test-requirements.txt
--- old/oslo.cache-2.8.1/test-requirements.txt 2021-06-15 11:58:40.000000000
+0200
+++ new/oslo.cache-2.11.0/test-requirements.txt 2022-04-27 17:30:55.000000000
+0200
@@ -8,7 +8,7 @@
bandit>=1.6.0,<1.7.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0
pre-commit>=2.6.0 # MIT
-pymemcache>=3.4.0 # Apache-2.0
+pymemcache>=3.5.0 # Apache-2.0
python-binary-memcached>=0.29.0 # MIT
python-memcached>=1.56 # PSF
pymongo!=3.1,>=3.0.2 # Apache-2.0