diff --git a/manifests/cache.pp b/manifests/cache.pp index 4cded1c..a546631 100644 --- a/manifests/cache.pp +++ b/manifests/cache.pp @@ -150,6 +150,10 @@ # (Optional) Whether to install the backend package. # Defaults to true. # +# [*package_ensure*] +# (Optional) ensure state for package. +# Defaults to 'present' +# define oslo::cache( $config_prefix = $::os_service_default, $expiration_time = $::os_service_default, @@ -170,6 +174,7 @@ define oslo::cache( $tls_keyfile = $::os_service_default, $tls_allowed_ciphers = $::os_service_default, $manage_backend_package = true, + $package_ensure = 'present', ){ include oslo::params @@ -187,14 +192,15 @@ define oslo::cache( if $manage_backend_package { if ($backend =~ /pylibmc/ ) { ensure_packages('python-pylibmc', { - ensure => present, + ensure => $package_ensure, name => $::oslo::params::pylibmc_package_name, tag => 'openstack', }) } elsif ($backend =~ /\.memcache/ ) { ensure_packages('python-memcache', { - name => $::oslo::params::python_memcache_package_name, - tag => ['openstack'], + ensure => $package_ensure, + name => $::oslo::params::python_memcache_package_name, + tag => ['openstack'], }) } } diff --git a/releasenotes/notes/cache-package_ensure-a9d500c5681a664f.yaml b/releasenotes/notes/cache-package_ensure-a9d500c5681a664f.yaml new file mode 100644 index 0000000..13c3726 --- /dev/null +++ b/releasenotes/notes/cache-package_ensure-a9d500c5681a664f.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The new ``oslo::cache::package_ensure`` parameter has been added. This + parameter defines status of the backend package used. diff --git a/spec/defines/oslo_cache_spec.rb b/spec/defines/oslo_cache_spec.rb index 7690775..4704565 100644 --- a/spec/defines/oslo_cache_spec.rb +++ b/spec/defines/oslo_cache_spec.rb @@ -91,6 +91,22 @@ describe 'oslo::cache' do ) end + context 'with package_ensure set' do + before do + params.merge!({ + :package_ensure => 'latest' + }) + end + + it 'ensures status of the package' do + is_expected.to contain_package('python-pylibmc').with( + :ensure => 'latest', + :name => platform_params[:pylibmc_package_name], + :tag => 'openstack', + ) + end + end + context 'with backend package management disabled' do before do params.merge!({ @@ -114,11 +130,28 @@ describe 'oslo::cache' do 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'], ) end + context 'with package_ensure set' do + before do + params.merge!({ + :package_ensure => 'latest' + }) + end + + it 'ensures status of the package' do + is_expected.to contain_package('python-memcache').with( + :ensure => 'latest', + :name => platform_params[:python_memcache_package_name], + :tag => ['openstack'], + ) + end + end + context 'with backend package management disabled' do before do params.merge!({