diff --git a/manifests/backup/nfs.pp b/manifests/backup/nfs.pp index 90b32f91..09cc245a 100644 --- a/manifests/backup/nfs.pp +++ b/manifests/backup/nfs.pp @@ -47,6 +47,9 @@ # (optional) Compression algorithm to use when writing backup data. # Defaults to $facts['os_service_default'] # +# [*package_ensure*] +# (optional) Ensure state for package. Defaults to 'present'. +# # === Author(s) # # Ryan Hefner @@ -78,9 +81,11 @@ class cinder::backup::nfs ( $backup_mount_options = $facts['os_service_default'], $backup_container = $facts['os_service_default'], $backup_compression_algorithm = $facts['os_service_default'], + $package_ensure = 'present', ) { include cinder::deps + include cinder::params cinder_config { 'DEFAULT/backup_mount_options': value => $backup_mount_options; @@ -94,4 +99,9 @@ class cinder::backup::nfs ( 'DEFAULT/backup_compression_algorithm': value => $backup_compression_algorithm; } + ensure_packages('nfs-client', { + name => $::cinder::params::nfs_client_package_name, + ensure => $package_ensure, + }) + Package<| title == 'nfs-client' |> { tag +> 'cinder-support-package' } } diff --git a/releasenotes/notes/backup-nfs-client-e95c8d1051fe1d10.yaml b/releasenotes/notes/backup-nfs-client-e95c8d1051fe1d10.yaml new file mode 100644 index 00000000..c306bfcb --- /dev/null +++ b/releasenotes/notes/backup-nfs-client-e95c8d1051fe1d10.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + The ``cinder::backup::nfs`` class now ensures that the nfs client package + is installed. The new ``package_ensure`` parameter has been added so that + the package state can be customized. + diff --git a/spec/classes/cinder_backup_nfs_spec.rb b/spec/classes/cinder_backup_nfs_spec.rb index 20738e15..03d716d1 100644 --- a/spec/classes/cinder_backup_nfs_spec.rb +++ b/spec/classes/cinder_backup_nfs_spec.rb @@ -52,6 +52,13 @@ describe 'cinder::backup::nfs' do end end + it 'installs nfs client' do + is_expected.to contain_package('nfs-client').with( + :name => platform_params[:nfs_client_package_name], + :ensure => 'installed', + ) + end + context 'with optional parameters' do let (:all_params) { params.merge!({ :backup_mount_options => 'sec=sys', @@ -73,6 +80,15 @@ describe 'cinder::backup::nfs' do facts.merge(OSDefaults.get_facts()) end + let :platform_params do + case facts[:os]['family'] + when 'Debian' + { :nfs_client_package_name => 'nfs-common' } + when 'RedHat' + { :nfs_client_package_name => 'nfs-utils' } + end + end + it_behaves_like 'cinder backup with nfs' end end