Add cache client retry options for the pymemcache backend

This patch specifies a set of options required to setup the retrying
wrapper feature of pymemcache (dogpile.cache) cache backend.

Original oslo.cache change:
https://review.opendev.org/c/openstack/oslo.cache/+/803747

Co-Authored-By: Hervé Beraud <hberaud@redhat.com>
Depends-On: https://review.opendev.org/826869
Change-Id: I3711ce3654a0253dda142def1f1a07b286d06c08
This commit is contained in:
Takashi Kajinami 2022-02-16 11:43:01 +09:00
parent 3d03306ae4
commit 0ce4c51623
3 changed files with 53 additions and 19 deletions

View File

@ -118,26 +118,44 @@
# be available. # be available.
# Default to $::os_service_default # Default to $::os_service_default
# #
# [*enable_retry_client*]
# (Optional) 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.
# Default to $::os_service_default
#
# [*retry_attempts*]
# (Optional) Number of times to attempt an action before failing.
# Default to $::os_service_default
#
# [*retry_delay*]
# (Optional) Number of seconds to sleep between each attempt.
# Default to $::os_service_default
#
class neutron::cache ( class neutron::cache (
$config_prefix = $::os_service_default, $config_prefix = $::os_service_default,
$expiration_time = $::os_service_default, $expiration_time = $::os_service_default,
$backend = $::os_service_default, $backend = $::os_service_default,
$backend_argument = $::os_service_default, $backend_argument = $::os_service_default,
$proxies = $::os_service_default, $proxies = $::os_service_default,
$enabled = $::os_service_default, $enabled = $::os_service_default,
$debug_cache_backend = $::os_service_default, $debug_cache_backend = $::os_service_default,
$memcache_servers = $::os_service_default, $memcache_servers = $::os_service_default,
$memcache_dead_retry = $::os_service_default, $memcache_dead_retry = $::os_service_default,
$memcache_socket_timeout = $::os_service_default, $memcache_socket_timeout = $::os_service_default,
$memcache_pool_maxsize = $::os_service_default, $memcache_pool_maxsize = $::os_service_default,
$memcache_pool_unused_timeout = $::os_service_default, $memcache_pool_unused_timeout = $::os_service_default,
$memcache_pool_connection_get_timeout = $::os_service_default, $memcache_pool_connection_get_timeout = $::os_service_default,
$manage_backend_package = true, $manage_backend_package = true,
$tls_enabled = $::os_service_default, $tls_enabled = $::os_service_default,
$tls_cafile = $::os_service_default, $tls_cafile = $::os_service_default,
$tls_certfile = $::os_service_default, $tls_certfile = $::os_service_default,
$tls_keyfile = $::os_service_default, $tls_keyfile = $::os_service_default,
$tls_allowed_ciphers = $::os_service_default, $tls_allowed_ciphers = $::os_service_default,
$enable_retry_client = $::os_service_default,
$retry_attempts = $::os_service_default,
$retry_delay = $::os_service_default,
) { ) {
include neutron::deps include neutron::deps
@ -162,5 +180,8 @@ class neutron::cache (
tls_certfile => $tls_certfile, tls_certfile => $tls_certfile,
tls_keyfile => $tls_keyfile, tls_keyfile => $tls_keyfile,
tls_allowed_ciphers => $tls_allowed_ciphers, tls_allowed_ciphers => $tls_allowed_ciphers,
enable_retry_client => $enable_retry_client,
retry_attempts => $retry_attempts,
retry_delay => $retry_delay,
} }
} }

View File

@ -0,0 +1,4 @@
---
features:
- |
Add cache client retry options for the pymemcache (dogpile.cache) backend.

View File

@ -29,6 +29,9 @@ describe 'neutron::cache' do
:tls_certfile => '<SERVICE DEFAULT>', :tls_certfile => '<SERVICE DEFAULT>',
:tls_keyfile => '<SERVICE DEFAULT>', :tls_keyfile => '<SERVICE DEFAULT>',
:tls_allowed_ciphers => '<SERVICE DEFAULT>', :tls_allowed_ciphers => '<SERVICE DEFAULT>',
:enable_retry_client => '<SERVICE DEFAULT>',
:retry_attempts => '<SERVICE DEFAULT>',
:retry_delay => '<SERVICE DEFAULT>',
:manage_backend_package => true, :manage_backend_package => true,
) )
end end
@ -50,6 +53,9 @@ describe 'neutron::cache' do
:memcache_pool_unused_timeout => '120', :memcache_pool_unused_timeout => '120',
:memcache_pool_connection_get_timeout => '360', :memcache_pool_connection_get_timeout => '360',
:tls_enabled => false, :tls_enabled => false,
:enable_retry_client => false,
:retry_attempts => 2,
:retry_delay => 0,
:manage_backend_package => false, :manage_backend_package => false,
} }
end end
@ -74,6 +80,9 @@ describe 'neutron::cache' do
:tls_certfile => '<SERVICE DEFAULT>', :tls_certfile => '<SERVICE DEFAULT>',
:tls_keyfile => '<SERVICE DEFAULT>', :tls_keyfile => '<SERVICE DEFAULT>',
:tls_allowed_ciphers => '<SERVICE DEFAULT>', :tls_allowed_ciphers => '<SERVICE DEFAULT>',
:enable_retry_client => false,
:retry_attempts => 2,
:retry_delay => 0,
:manage_backend_package => false, :manage_backend_package => false,
) )
end end