Support pylibmc and memcache cache backend
Install relevant package for pylibmc and memcache backend. Depends-on: I4e965b6f5449a7104677f93b00af77ae21cba94b Change-Id: I2e6a705971761754c59b4069b5dfdfd1dfd7f00f
This commit is contained in:
parent
0667a56a9a
commit
79405c9a37
|
@ -129,6 +129,8 @@ define oslo::cache(
|
|||
$memcache_pool_connection_get_timeout = $::os_service_default,
|
||||
){
|
||||
|
||||
include ::oslo::params
|
||||
|
||||
if !is_service_default($backend_argument) {
|
||||
$backend_argument_orig = join(any2array($backend_argument), ',')
|
||||
} else {
|
||||
|
@ -147,6 +149,20 @@ define oslo::cache(
|
|||
$proxies_orig = $proxies
|
||||
}
|
||||
|
||||
if ($backend =~ /pylibmc/ ) {
|
||||
ensure_packages('python-pylibmc', {
|
||||
ensure => present,
|
||||
name => $::oslo::params::pylibmc_package_name,
|
||||
tag => 'openstack',
|
||||
})
|
||||
} elsif ($backend =~ /\.memcache/ ) {
|
||||
ensure_packages('python-memcache', {
|
||||
ensure => present,
|
||||
name => $::oslo::params::python_memcache_package_name,
|
||||
tag => ['openstack', 'keystone-package'],
|
||||
})
|
||||
}
|
||||
|
||||
$cache_options = {
|
||||
'cache/config_prefix' => { value => $config_prefix },
|
||||
'cache/expiration_time' => { value => $expiration_time },
|
||||
|
|
|
@ -4,14 +4,18 @@ class oslo::params {
|
|||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
$sqlite_package_name = undef
|
||||
$pymysql_package_name = undef
|
||||
$pymongo_package_name = 'python-pymongo'
|
||||
$sqlite_package_name = undef
|
||||
$pymysql_package_name = undef
|
||||
$pymongo_package_name = 'python-pymongo'
|
||||
$pylibmc_package_name = 'python-pylibmc'
|
||||
$python_memcache_package_name = 'python-memcached'
|
||||
}
|
||||
'Debian': {
|
||||
$sqlite_package_name = 'python-pysqlite2'
|
||||
$pymysql_package_name = 'python-pymysql'
|
||||
$pymongo_package_name = 'python-pymongo'
|
||||
$sqlite_package_name = 'python-pysqlite2'
|
||||
$pymysql_package_name = 'python-pymysql'
|
||||
$pymongo_package_name = 'python-pymongo'
|
||||
$pylibmc_package_name = 'python-pylibmc'
|
||||
$python_memcache_package_name = 'python-memcache'
|
||||
}
|
||||
default: {
|
||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem")
|
||||
|
|
|
@ -60,6 +60,40 @@ describe 'oslo::cache' do
|
|||
end
|
||||
end
|
||||
|
||||
context 'with pylibmc backend' do
|
||||
let :params do
|
||||
{
|
||||
:backend => 'dogpile.cache.pylibmc',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures cache backend' do
|
||||
is_expected.to contain_keystone_config('cache/backend').with_value('dogpile.cache.pylibmc')
|
||||
is_expected.to contain_package('python-pylibmc').with(
|
||||
:ensure => 'present',
|
||||
:name => platform_params[:pylibmc_package_name],
|
||||
:tag => 'openstack',
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with memcache backend' do
|
||||
let :params do
|
||||
{
|
||||
:backend => 'dogpile.cache.memcache',
|
||||
}
|
||||
end
|
||||
|
||||
it 'configures cache backend' do
|
||||
is_expected.to contain_keystone_config('cache/backend').with_value('dogpile.cache.memcache')
|
||||
is_expected.to contain_package('python-memcache').with(
|
||||
:ensure => 'present',
|
||||
:name => platform_params[:python_memcache_package_name],
|
||||
:tag => ['openstack', 'keystone-package'],
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with string in list parameters' do
|
||||
let :params do
|
||||
{
|
||||
|
@ -84,6 +118,19 @@ describe 'oslo::cache' do
|
|||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
let(:platform_params) do
|
||||
platform_params = { :pylibmc_package_name => 'python-pylibmc' }
|
||||
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
platform_params[:python_memcache_package_name] = 'python-memcache'
|
||||
when 'RedHat'
|
||||
platform_params[:python_memcache_package_name] = 'python-memcached'
|
||||
end
|
||||
|
||||
platform_params
|
||||
end
|
||||
|
||||
it_behaves_like 'oslo-cache'
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue