coordination: Install python3-kazoo when zookeeper is used

Change-Id: Ic9b7183f95c65f0c4faf2196941ea225e4f500e0
This commit is contained in:
Takashi Kajinami 2024-05-01 00:48:18 +09:00
parent 11311536c6
commit f5b84cb0c5
3 changed files with 85 additions and 7 deletions

View File

@ -52,6 +52,13 @@ define oslo::coordination (
tag => ['openstack'],
})
}
/^(kazoo|zookeeper):\/\//: {
ensure_packages('python-kazoo', {
name => $::oslo::params::python_kazoo_package_name,
ensure => $package_ensure,
tag => ['openstack'],
})
}
default: {
# Nothing to do
}

View File

@ -15,6 +15,7 @@ class oslo::params {
$python_pymemcache_package_name = 'python3-pymemcache'
$python_redis_package_name = 'python3-redis'
$python_etcd3gw_package_name = 'python3-etcd3gw'
$python_kazoo_package_name = 'python3-kazoo'
$oslo_reports_package_name = 'python3-oslo-reports'
}
'Debian': {
@ -24,6 +25,7 @@ class oslo::params {
$python_pymemcache_package_name = 'python3-pymemcache'
$python_redis_package_name = 'python3-redis'
$python_etcd3gw_package_name = 'python3-etcd3gw'
$python_kazoo_package_name = 'python3-kazoo'
$oslo_reports_package_name = 'python3-oslo.reports'
}
default: {

View File

@ -47,7 +47,11 @@ describe 'oslo::coordination' do
it 'configures etcd3gw backend' do
is_expected.to contain_keystone_config('coordination/backend_url').with_value('etcd3+http://localhost:2379').with_secret(true)
is_expected.to contain_package('python-etcd3gw')
is_expected.to contain_package('python-etcd3gw').with(
:name => platform_params[:python_etcd3gw_package_name],
:ensure => 'installed',
:tag => ['openstack'],
)
end
context 'with backend package management disabled' do
@ -70,7 +74,11 @@ describe 'oslo::coordination' do
it 'configures etcd3gw backend' do
is_expected.to contain_keystone_config('coordination/backend_url').with_value('etcd3+https://localhost:2379').with_secret(true)
is_expected.to contain_package('python-etcd3gw')
is_expected.to contain_package('python-etcd3gw').with(
:name => platform_params[:python_etcd3gw_package_name],
:ensure => 'installed',
:tag => ['openstack'],
)
end
context 'with backend package management disabled' do
@ -114,6 +122,62 @@ describe 'oslo::coordination' do
end
end
context 'with zookeeper backend' do
let :params do
{ :backend_url => 'zookeeper://localhost:2181' }
end
it 'configures memcache backend' do
is_expected.to contain_keystone_config('coordination/backend_url').with_value('zookeeper://localhost:2181').with_secret(true)
is_expected.to contain_package('python-kazoo').with(
:name => platform_params[:python_kazoo_package_name],
:ensure => 'installed',
:tag => ['openstack'],
)
end
context 'with backend package management disabled' do
before do
params.merge!({
:manage_backend_package => false,
})
end
it 'does not install backend package' do
is_expected.to_not contain_package('python-kazoo')
end
end
end
context 'with kazoo backend' do
let :params do
{ :backend_url => 'kazoo://localhost:2181' }
end
it 'configures memcache backend' do
is_expected.to contain_keystone_config('coordination/backend_url').with_value('kazoo://localhost:2181').with_secret(true)
is_expected.to contain_package('python-kazoo').with(
:name => platform_params[:python_kazoo_package_name],
:ensure => 'installed',
:tag => ['openstack'],
)
end
context 'with backend package management disabled' do
before do
params.merge!({
:manage_backend_package => false,
})
end
it 'does not install backend package' do
is_expected.to_not contain_package('python-kazoo')
end
end
end
context 'with configuration management disabled' do
let :params do
{ :backend_url => 'redis://localhost:6379',
@ -143,14 +207,19 @@ describe 'oslo::coordination' do
let(:platform_params) do
case facts[:os]['family']
when 'Debian'
{ :python_redis_package_name => 'python3-redis',
:python_etcd3_package_name => 'python3-etcd3',
{
:python_redis_package_name => 'python3-redis',
:python_etcd3gw_package_name => 'python3-etcd3gw',
:python_pymemcache_package_name => 'python3-pymemcache' }
:python_pymemcache_package_name => 'python3-pymemcache',
:python_kazoo_package_name => 'python3-kazoo'
}
when 'RedHat'
{ :python_redis_package_name => 'python3-redis',
{
:python_redis_package_name => 'python3-redis',
:python_etcd3gw_package_name => 'python3-etcd3gw',
:python_pymemcache_package_name => 'python3-pymemcache' }
:python_pymemcache_package_name => 'python3-pymemcache',
:python_kazoo_package_name => 'python3-kazoo'
}
end
end