Commit Graph

863 Commits

Author SHA1 Message Date
Stephen Finucane 0e2010d930 pre-commit: Bump version, add doc8
Change-Id: I2319edaf17589e22567c352d3d79cb925febbd8d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2024-03-28 10:21:40 +00:00
Stephen Finucane aeb1f4c19f Remove unnecessary dependencies
pbr is not a runtime dependency, so there's no need to list it as one.
Similarly, we don't need to install pre-commit in our test environment
nor do we use nose of python-subunit (at least directly). Remove them
all.

We also remove so notes about dependency order that have not been
relevant since the new dependency resolver was introduced in pip 20.3.

Change-Id: Iea7a68dae4c96bc7118e946fc6d494a8799942af
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2024-03-28 10:20:41 +00:00
Stephen Finucane f94fd2c1ae Remove use of distutils
We only use it in the redis driver. Switch to using
packaging.version.Version, which is good enough for the redis-py test
suite also [1].

[1] https://github.com/redis/redis-py/blob/07fc339b4a/tests/conftest.py#L199-L208

Change-Id: I42fddfde153c3293099765bf76fe07a5064b3213
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2024-03-28 10:15:43 +00:00
Zuul d7ee8cd996 Merge "reno: Update master for unmaintained/wallaby" 2024-03-12 14:21:12 +00:00
Zuul 05f7736160 Merge "reno: Update master for unmaintained/victoria" 2024-03-12 13:15:58 +00:00
Takashi Kajinami 3bce8e1dca Make authentication/SSL for redis sentinel optional
Change 4954e284b9 updated the redis
sentinel driver to apply auth/ssl settings for redis sentinel, based
on ones of redis, but this change broke the existing usage in kolla
deployments, which require redis with authentication enabled and
sentinel with authentication DISABLED.

This restores the old behavior, which do not enable authentication and
ssl for sentinel even when these for redis is enabled.

Closes-Bug: #2056656
Change-Id: I3047c80359df3dad64be041db6f4a3a6180479d6
2024-03-11 10:28:06 +09:00
OpenStack Release Bot f039107925 reno: Update master for unmaintained/wallaby
Update the wallaby release notes configuration to build from
unmaintained/wallaby.

Change-Id: I7d324b3ddb89bf7f970f066abce5e9acee4219be
2024-03-07 14:24:09 +00:00
OpenStack Release Bot b039a92768 reno: Update master for unmaintained/victoria
Update the victoria release notes configuration to build from
unmaintained/victoria.

Change-Id: Id40c905697cf174690d78e82c57587a3989b55c0
2024-03-07 14:19:48 +00:00
Takashi Kajinami 29f9043b7b Fix sentinel tests not running
We have to tweak the environment set by pifpaf to use redis sentinel
as backend.

Change-Id: I2a3e0d08b6742ee7b473bc382bfc021523719251
2024-03-07 10:02:17 +00:00
Takashi Kajinami a20ca740cf Fix broken redis sentinel support
This fixes the regression caused by [1] and ensures host and port are
removed from kwargs, to avoid conflict with underlying usages.

This also makes the current implementation consistent with taskflow.

[1] 4954e284b9

Closes-Bug: #2056429
Change-Id: Iaa5f09e8dcfff9e65853f6f89976cf4c025bc864
2024-03-07 08:52:57 +00:00
Zuul 1d0ece27a4 Merge "redis: Fix wrong type used to parse socket_keepalive" 2024-02-16 18:30:15 +00:00
Takashi Kajinami b950cf8cf4 redis: Fix wrong type used to parse socket_keepalive
The socket_keepalive option in RedisClient is not an integer but
a boolean. This fixes the type to parse the options accordingly.

Note this change still keeps support for socket_keepalive=1 or
socket_keepalive=0 , but would remove support for the other integer
values such as 2 or -1.

Change-Id: I47b8628b9676f37ab5bb82b0fa9e45fcff679893
2024-02-14 11:46:47 +09:00
Takashi Kajinami 593b328c2f redis: support healthcheck interval
Redis client supports health checks using PING/PONG since 3.3.0[1] but
this feature was not configurable in tooz.

This adds the new health_check_interval option, which is forwarded to
Redis client, to enable that feature.

[1] f60b2b07ca

Change-Id: Icba79be1929ec460d3cb17363e701fbee7de7d76
2024-02-14 11:29:29 +09:00
Zuul 179fe30ac4 Merge "Prevent potential ReDoS attack" 2024-02-13 18:42:13 +00:00
Zuul 4d66c549fe Merge "Redis: Fix missing ssl/auth options for sentinel" 2024-02-13 13:15:17 +00:00
Zuul a171406fac Merge "redis: Fix parsing of sentinel fallbacks containing IPv6 address" 2024-02-13 08:11:19 +00:00
Takashi Kajinami a5940ad769 Prevent potential ReDoS attack
Although the logic is used to parse a config value, it'd be better to
eliminate a risk.

Change-Id: I8c36affd8a7619d9ad4882b77a521e3ddaf7d494
2024-02-13 00:38:23 +00:00
Zuul dd88c4c738 Merge "redis: Add username" 2024-02-12 20:18:17 +00:00
Zuul 23806c8086 Merge "Fix handling of timeout and blocking" 2024-02-12 17:57:57 +00:00
Takashi Kajinami 221c4029f2 Show coverage report
... for easy reference. Also make sure old data is purged.

Change-Id: I3098314ad54031d0d169bd3bb93222a5792c3146
2024-02-07 12:39:10 +09:00
Takashi Kajinami 4954e284b9 Redis: Fix missing ssl/auth options for sentinel
This ensures options for redis connections are replicated to sentinel
clients, so that users can enable SSL or authentication in Redis
sentinel while they also enable these in Redis.

Closes-Bug: #2052372
Change-Id: I78727387cf8287554549ff5a99a80f3317cbd59b
2024-02-04 19:31:35 +09:00
Takashi Kajinami 2c0d37c2e5 redis: Fix parsing of sentinel fallbacks containing IPv6 address
The sentinel fallbacks option may include IPv6 addresses like
['[::1]:26379'], and bare split can't handle this case properly.

This ensures the parse logic distinguishes the separator of host and
port and the characters in IPv6 addresses.

Closes-Bug: #2052353
Change-Id: Ibb4d26022864ece4abf91fd2d2fd665998d80bd8
2024-02-04 08:11:32 +00:00
Takashi Kajinami a267b2811b redis: Add username
Redis introduced ACL feature in 4.0.0, and this feature is supported by
redis-py since 3.4.0[1]. When ACL is enabled, authentication requires
username in addition to password.

[1] 8df8cd54d1

Closes-Bug: #2052371
Change-Id: I9b53c3a314dcffbe49535799ba6d7a1fdddb8d84
2024-02-04 08:11:23 +00:00
Zuul 22361cb48d Merge "tox: Bump python runtime versions in the default envlist" 2024-02-02 12:40:58 +00:00
Zuul 770894333f Merge "Redis: Allow customizing ssl ca certificates path" 2024-02-01 19:45:04 +00:00
Zuul b13073dedf Merge "Move driver tests to drivers directory" 2024-02-01 18:19:16 +00:00
Zuul 1823b74988 Merge "Ignore .eggs directory" 2024-02-01 16:09:12 +00:00
Takashi Kajinami 8943f94408 Move driver tests to drivers directory
Some of the driver tests are already placed in the 'drivers' directory,
so let's put all driver tests for better consistency.

Change-Id: I411581551b40f5315a38412e975c416bb843da55
2024-01-30 10:18:31 +09:00
Takashi Kajinami 058e1a11c7 Bump hacking
hacking 4.0.x is too old.

Change-Id: I19b8f35dd5801f7606856a54d19b926b351014e8
2024-01-26 01:03:15 +09:00
Ghanshyam Mann ed04dbeeab Update python classifier in setup.cfg
As per the current release tested runtime, we test
python version from 3.8 to 3.11 so updating the
same in python classifier in setup.cfg

Change-Id: I5bb0f49c5f5e72cdd121a18d7bffa3a1013c570f
2024-01-11 16:36:58 -08:00
Takashi Kajinami 56cbfdb1ec Ignore .eggs directory
... which is created by recent pbr.

Change-Id: I4994ffb3bf801bf9c10a95bee747b13d7b96c799
2023-12-22 21:41:12 +09:00
Takashi Kajinami 93c9da0a74 Fix handling of timeout and blocking
Change bed303e9b4 introduced the ability
to set timeout without blocking, but this caused a few problems.

- The acquire method has now different arguments according to
  a backend driver being used

- The change broke the existing usage with blocking=<number>

This addresses these two problems.

Change-Id: I8cefa2f4a940082d17cde43d132a818940422176
2023-12-22 21:40:38 +09:00
Zuul ef898ba118 Merge "etcd3gw: Discover API version automatically" 2023-12-19 18:56:07 +00:00
Takashi Kajinami f9d666aa4c tox: Bump python runtime versions in the default envlist
... according to the versions currently used in CI.

Change-Id: I5694f98fba37e58ae5280184ea966a7121d26f43
2023-12-18 15:13:35 +09:00
Takashi Kajinami 9acbc53915 Deprecate zake driver because of unmaintained library
The zake library[1] was already archived a few years ago. It has had
no release for 7 years.

[1] https://github.com/yahoo/Zake
[2] https://pypi.org/project/zake/#history

Change-Id: I82d6cdeec2be4f69d325270f4cd74f2cafe9db55
2023-12-18 06:08:41 +00:00
Takashi Kajinami f180411f42 etcd3gw: Discover API version automatically
etcd changed API version from v3beta to v3alpha, then v3, and because
of transition available api versions are different according to
the etcd server available.

This change implements the mechanism to detect the current api version
according to the etcd version obtained via the version API. So that
the url without api version works regardless of the etcd server used.

Closes-Bug: #2043810
Depends-on: https://review.opendev.org/c/openstack/etcd3gw/+/901244
Change-Id: Ib81390eb73feafe08d007db1ced4d0ceb3bde212
2023-12-15 09:51:40 +09:00
Takashi Kajinami 38523acdc6 Redis: Allow customizing ssl ca certificates path
This allows users to give ssl_ca_certs argument of redis client so that
a specific file, instead of the system global certificates, can be
used.

Closes-Bug: #2012226
Change-Id: Id7e76c35c5ce7b22a8261026fe76557d509616b3
2023-11-27 10:13:03 +09:00
Zuul ab8caa2ffb Merge "Remove etcd3 drvier" 2023-11-23 18:17:04 +00:00
Takashi Kajinami 6bc02cda5b Remove etcd3 drvier
This driver was deprecated in the 2.11.0 release[1]. The 3.2.0 release
which contains this deprecation is used in upper-constraints of
stable/2023.1 so we are ready to remove this feature now.

[1] 7ee2780af8

Change-Id: I5ca2fe43cb25b4687ace6bd21a866b74f289d628
2023-11-17 23:34:26 +09:00
Zuul 78a43db890 Merge "redis: Make socket_connect_timeout configurable" 2023-11-16 18:06:49 +00:00
Zuul 1aa447563a Merge "Accept float values for socket_timeout" 2023-11-16 18:06:47 +00:00
Zuul c358edc352 Merge "Cleanup py27 support" 2023-11-16 18:06:45 +00:00
Takashi Kajinami c1df083bc5 Fix bindep for Debian 12
Python 3.11 job now runs in Debian 12. This fixes bindep.txt so that
it works in Debian 12.

Change-Id: I3d6a51e9badada68951f189f9a570c88da3ecbc4
2023-11-16 01:29:07 +09:00
Zuul 7007c774da Merge "Add missing % in diagnostic_lines.append call" 2023-10-17 04:06:24 +00:00
Thomas Goirand 6ab9dfc43f Add missing % in diagnostic_lines.append call
See https://bugs.debian.org/1040271. In fact, I believe the Python
warning is right, so fixing it.

Change-Id: Ice2a90180c00d0d7a2e1f3b78d5e6222703f4acd
2023-10-10 15:55:43 +02:00
Jan Gutter 738931d026 Update the default etcd3gw endpoint to v3
* Recent versions of etcd no longer support the /v3alpha/ endpoint
* It's probably better to skip directly to the /v3/ endpoint
  as a default.
* Note that this probably means a new minor version of tooz, while
  the behaviour can be worked around in config, this is enough to
  break existing systems on upgrade.
* Updated the test to test backwards compatibility.
* Updated the tests to use etcd 3.3.27, unfortunately we need
  a newer version of pifpaf that supports 3.4 before the default
  api can be used.
* The etcd backend tests have been removed: the deprecated backend
  uses the v2 api which is no longer provided - a future commit
  should remove the deprecated backend. The etcd3gw backend is the
  replacement.

This fix is required in pifpaf, but it's not in any release:
7496e5e1c3

Depends-On: https://review.opendev.org/c/openstack/devstack/+/891353
Change-Id: Ibb5e587f6b1348794b1bf4d6405bc4a32a653c2c
2023-09-27 09:26:52 +00:00
Pavlo Shchelokovskyy 0feead5deb Replace en-dash with ASCII minus in a docstring
currently Gitea at opendev.org displays a warning about
ambiguous Unicode characters in tooz/coordination.py.

While really minor and benign, let's fix it so it does not trigger
and confuse future viewers.

Change-Id: Idbe9006e843bcedcdb98d735c49b157ab5ae6b12
2023-09-04 07:40:44 +00:00
Zuul 702ea408b2 Merge "Change StrictRedis usage to Redis" 2023-08-11 11:10:40 +00:00
wangjiaqi07 91e3160b5d Cleanup py27 support
This repo is now testing only with Python 3, so let's make
a few cleanups:
- Remove python 2.7 stanza from setup.py

Change-Id: I21a8de2134f359bf45c34d298e10891b68257992
2023-08-08 17:15:17 +08:00
ricolin bed303e9b4 Fix: Add timeout for mysql driver
The issue with current one is we try to use blocking as timeout
provider.
That make the timeout setting in mysql bound with blocking.
And the lock can't served with scenario that when we don't need timeout
blocking but still timeout required.

Change-Id: I36c80f882a91cd1c63d5a3bc2d1d8cb50f6637c6
2023-07-10 22:56:14 +08:00