Add support for oslo.cache parameters
Since [1] was merged, ceilometer supports caching attributes of gnocchi resource using the oslo.cache library. This change allows setting parameters of the oslo.cache library to leverage the caching feature. [1] 2511cfb6e48c5d03cd198ecf9f09f36db3caced8 Change-Id: I382816bc199f0d54337b25ab6e07fd0a32d2e4e8
This commit is contained in:
parent
b05d311bb6
commit
5d40c9503c
166
manifests/cache.pp
Normal file
166
manifests/cache.pp
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
# Class ceilometer::cache
|
||||||
|
#
|
||||||
|
# ceilometer cache configuration
|
||||||
|
#
|
||||||
|
# == parameters
|
||||||
|
#
|
||||||
|
# [*config_prefix*]
|
||||||
|
# (Optional) Prefix for building the configuration dictionary for
|
||||||
|
# the cache region. This should not need to be changed unless there
|
||||||
|
# is another dogpile.cache region with the same configuration name.
|
||||||
|
# (string value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*expiration_time*]
|
||||||
|
# (Optional) Default TTL, in seconds, for any cached item in the
|
||||||
|
# dogpile.cache region. This applies to any cached method that
|
||||||
|
# doesn't have an explicit cache expiration time defined for it.
|
||||||
|
# (integer value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*backend*]
|
||||||
|
# (Optional) Dogpile.cache backend module. It is recommended that
|
||||||
|
# Memcache with pooling (oslo_cache.memcache_pool) or Redis
|
||||||
|
# (dogpile.cache.redis) be used in production deployments. (string value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*backend_argument*]
|
||||||
|
# (Optional) Arguments supplied to the backend module. Specify this option
|
||||||
|
# once per argument to be passed to the dogpile.cache backend.
|
||||||
|
# Example format: "<argname>:<value>". (list value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*proxies*]
|
||||||
|
# (Optional) Proxy classes to import that will affect the way the
|
||||||
|
# dogpile.cache backend functions. See the dogpile.cache documentation on
|
||||||
|
# changing-backend-behavior. (list value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*enabled*]
|
||||||
|
# (Optional) Global toggle for caching. (boolean value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*debug_cache_backend*]
|
||||||
|
# (Optional) Extra debugging from the cache backend (cache keys,
|
||||||
|
# get/set/delete/etc calls). This is only really useful if you need
|
||||||
|
# to see the specific cache-backend get/set/delete calls with the keys/values.
|
||||||
|
# Typically this should be left set to false. (boolean value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_servers*]
|
||||||
|
# (Optional) Memcache servers in the format of "host:port".
|
||||||
|
# (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
|
||||||
|
# (list value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_dead_retry*]
|
||||||
|
# (Optional) Number of seconds memcached server is considered dead before
|
||||||
|
# it is tried again. (dogpile.cache.memcache and oslo_cache.memcache_pool
|
||||||
|
# backends only). (integer value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_socket_timeout*]
|
||||||
|
# (Optional) Timeout in seconds for every call to a server.
|
||||||
|
# (dogpile.cache.memcache and oslo_cache.memcache_pool backends only).
|
||||||
|
# (floating point value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_pool_maxsize*]
|
||||||
|
# (Optional) Max total number of open connections to every memcached server.
|
||||||
|
# (oslo_cache.memcache_pool backend only). (integer value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_pool_unused_timeout*]
|
||||||
|
# (Optional) Number of seconds a connection to memcached is held unused
|
||||||
|
# in the pool before it is closed. (oslo_cache.memcache_pool backend only)
|
||||||
|
# (integer value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*memcache_pool_connection_get_timeout*]
|
||||||
|
# (Optional) Number of seconds that an operation will wait to get a memcache
|
||||||
|
# client connection. (integer value)
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*manage_backend_package*]
|
||||||
|
# (Optional) (Optional) Whether to install the backend package for the cache.
|
||||||
|
# Defaults to true
|
||||||
|
#
|
||||||
|
# [*tls_enabled*]
|
||||||
|
# (Optional) Global toggle for TLS usage when comunicating with
|
||||||
|
# the caching servers.
|
||||||
|
# Default to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*tls_cafile*]
|
||||||
|
# (Optional) Path to a file of concatenated CA certificates in PEM
|
||||||
|
# format necessary to establish the caching server's authenticity.
|
||||||
|
# If tls_enabled is False, this option is ignored.
|
||||||
|
# Default to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*tls_certfile*]
|
||||||
|
# (Optional) Path to a single file in PEM format containing the
|
||||||
|
# client's certificate as well as any number of CA certificates
|
||||||
|
# needed to establish the certificate's authenticity. This file
|
||||||
|
# is only required when client side authentication is necessary.
|
||||||
|
# If tls_enabled is False, this option is ignored.
|
||||||
|
# Default to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*tls_keyfile*]
|
||||||
|
# (Optional) Path to a single file containing the client's private
|
||||||
|
# key in. Otherwhise the private key will be taken from the file
|
||||||
|
# specified in tls_certfile. If tls_enabled is False, this option
|
||||||
|
# is ignored.
|
||||||
|
# Default to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*tls_allowed_ciphers*]
|
||||||
|
# (Optional) Set the available ciphers for sockets created with
|
||||||
|
# the TLS context. It should be a string in the OpenSSL cipher
|
||||||
|
# list format. If not specified, all OpenSSL enabled ciphers will
|
||||||
|
# be available.
|
||||||
|
# Default to $::os_service_default
|
||||||
|
#
|
||||||
|
class ceilometer::cache (
|
||||||
|
$config_prefix = $::os_service_default,
|
||||||
|
$expiration_time = $::os_service_default,
|
||||||
|
$backend = $::os_service_default,
|
||||||
|
$backend_argument = $::os_service_default,
|
||||||
|
$proxies = $::os_service_default,
|
||||||
|
$enabled = $::os_service_default,
|
||||||
|
$debug_cache_backend = $::os_service_default,
|
||||||
|
$memcache_servers = $::os_service_default,
|
||||||
|
$memcache_dead_retry = $::os_service_default,
|
||||||
|
$memcache_socket_timeout = $::os_service_default,
|
||||||
|
$memcache_pool_maxsize = $::os_service_default,
|
||||||
|
$memcache_pool_unused_timeout = $::os_service_default,
|
||||||
|
$memcache_pool_connection_get_timeout = $::os_service_default,
|
||||||
|
$manage_backend_package = true,
|
||||||
|
$tls_enabled = $::os_service_default,
|
||||||
|
$tls_cafile = $::os_service_default,
|
||||||
|
$tls_certfile = $::os_service_default,
|
||||||
|
$tls_keyfile = $::os_service_default,
|
||||||
|
$tls_allowed_ciphers = $::os_service_default,
|
||||||
|
) {
|
||||||
|
|
||||||
|
include ceilometer::deps
|
||||||
|
|
||||||
|
oslo::cache { 'ceilometer_config':
|
||||||
|
config_prefix => $config_prefix,
|
||||||
|
expiration_time => $expiration_time,
|
||||||
|
backend => $backend,
|
||||||
|
backend_argument => $backend_argument,
|
||||||
|
proxies => $proxies,
|
||||||
|
enabled => $enabled,
|
||||||
|
debug_cache_backend => $debug_cache_backend,
|
||||||
|
memcache_servers => $memcache_servers,
|
||||||
|
memcache_dead_retry => $memcache_dead_retry,
|
||||||
|
memcache_socket_timeout => $memcache_socket_timeout,
|
||||||
|
memcache_pool_maxsize => $memcache_pool_maxsize,
|
||||||
|
memcache_pool_unused_timeout => $memcache_pool_unused_timeout,
|
||||||
|
memcache_pool_connection_get_timeout => $memcache_pool_connection_get_timeout,
|
||||||
|
manage_backend_package => $manage_backend_package,
|
||||||
|
tls_enabled => $tls_enabled,
|
||||||
|
tls_cafile => $tls_cafile,
|
||||||
|
tls_certfile => $tls_certfile,
|
||||||
|
tls_keyfile => $tls_keyfile,
|
||||||
|
tls_allowed_ciphers => $tls_allowed_ciphers,
|
||||||
|
}
|
||||||
|
}
|
4
releasenotes/notes/cache-44827d7d144ab594.yaml
Normal file
4
releasenotes/notes/cache-44827d7d144ab594.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The new ``ceilometer::cache`` class has been added.
|
95
spec/classes/ceilometer_cache_spec.rb
Normal file
95
spec/classes/ceilometer_cache_spec.rb
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'ceilometer::cache' do
|
||||||
|
|
||||||
|
let :params do
|
||||||
|
{}
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_examples_for 'ceilometer::cache' do
|
||||||
|
|
||||||
|
context 'with default parameters' do
|
||||||
|
it 'configures cache' do
|
||||||
|
is_expected.to contain_oslo__cache('ceilometer_config').with(
|
||||||
|
:config_prefix => '<SERVICE DEFAULT>',
|
||||||
|
:expiration_time => '<SERVICE DEFAULT>',
|
||||||
|
:backend => '<SERVICE DEFAULT>',
|
||||||
|
:backend_argument => '<SERVICE DEFAULT>',
|
||||||
|
:proxies => '<SERVICE DEFAULT>',
|
||||||
|
:enabled => '<SERVICE DEFAULT>',
|
||||||
|
:debug_cache_backend => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_servers => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_dead_retry => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_socket_timeout => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_pool_maxsize => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_pool_unused_timeout => '<SERVICE DEFAULT>',
|
||||||
|
:memcache_pool_connection_get_timeout => '<SERVICE DEFAULT>',
|
||||||
|
:tls_enabled => '<SERVICE DEFAULT>',
|
||||||
|
:tls_cafile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_certfile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_keyfile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_allowed_ciphers => '<SERVICE DEFAULT>',
|
||||||
|
:manage_backend_package => true,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with overridden parameters' do
|
||||||
|
let :params do
|
||||||
|
{
|
||||||
|
:config_prefix => 'prefix',
|
||||||
|
:expiration_time => 3600,
|
||||||
|
:backend => 'oslo_cache.memcache_pool',
|
||||||
|
:proxies => ['proxy01:8888', 'proxy02:8888'],
|
||||||
|
:enabled => true,
|
||||||
|
:debug_cache_backend => false,
|
||||||
|
:memcache_servers => ['memcached01:11211', 'memcached02:11211'],
|
||||||
|
:memcache_dead_retry => '60',
|
||||||
|
:memcache_socket_timeout => '300.0',
|
||||||
|
:memcache_pool_maxsize => '10',
|
||||||
|
:memcache_pool_unused_timeout => '120',
|
||||||
|
:memcache_pool_connection_get_timeout => '360',
|
||||||
|
:tls_enabled => false,
|
||||||
|
:manage_backend_package => false,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures cache' do
|
||||||
|
is_expected.to contain_oslo__cache('ceilometer_config').with(
|
||||||
|
:config_prefix => 'prefix',
|
||||||
|
:expiration_time => 3600,
|
||||||
|
:backend => 'oslo_cache.memcache_pool',
|
||||||
|
:backend_argument => '<SERVICE DEFAULT>',
|
||||||
|
:proxies => ['proxy01:8888', 'proxy02:8888'],
|
||||||
|
:enabled => true,
|
||||||
|
:debug_cache_backend => false,
|
||||||
|
:memcache_servers => ['memcached01:11211', 'memcached02:11211'],
|
||||||
|
:memcache_dead_retry => '60',
|
||||||
|
:memcache_socket_timeout => '300.0',
|
||||||
|
:memcache_pool_maxsize => '10',
|
||||||
|
:memcache_pool_unused_timeout => '120',
|
||||||
|
:memcache_pool_connection_get_timeout => '360',
|
||||||
|
:tls_enabled => false,
|
||||||
|
:tls_cafile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_certfile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_keyfile => '<SERVICE DEFAULT>',
|
||||||
|
:tls_allowed_ciphers => '<SERVICE DEFAULT>',
|
||||||
|
:manage_backend_package => false,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
on_supported_os({
|
||||||
|
:supported_os => OSDefaults.get_supported_os
|
||||||
|
}).each do |os,facts|
|
||||||
|
context "on #{os}" do
|
||||||
|
let (:facts) do
|
||||||
|
facts.merge!(OSDefaults.get_facts())
|
||||||
|
end
|
||||||
|
|
||||||
|
it_configures 'ceilometer::cache'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user