55describe 'mysql::backup::xtrabackup' do
66 on_supported_os . each do |os , facts |
77 context "on #{ os } " do
8+ let ( :package ) do
9+ if facts [ :os ] [ 'family' ] == 'RedHat'
10+ if Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '8' ) >= 0
11+ 'percona-xtrabackup-24'
12+ else
13+ 'percona-xtrabackup'
14+ end
15+ elsif facts [ :os ] [ 'name' ] == 'Debian'
16+ 'percona-xtrabackup-24'
17+ elsif facts [ :os ] [ 'name' ] == 'Ubuntu'
18+ if Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '20' ) < 0 &&
19+ Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '16' ) >= 0
20+ 'percona-xtrabackup'
21+ else
22+ 'percona-xtrabackup-24'
23+ end
24+ elsif facts [ :os ] [ 'family' ] == 'Suse'
25+ 'xtrabackup'
26+ else
27+ 'percona-xtrabackup'
28+ end
29+ end
30+
831 let ( :pre_condition ) do
932 <<-MANIFEST
1033 class { 'mysql::server': }
@@ -38,26 +61,7 @@ class { 'mysql::server': }
3861 )
3962 end
4063
41- package = if facts [ :os ] [ 'family' ] == 'RedHat'
42- if Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '8' ) >= 0
43- 'percona-xtrabackup-24'
44- else
45- 'percona-xtrabackup'
46- end
47- elsif facts [ :os ] [ 'name' ] == 'Debian'
48- 'percona-xtrabackup-24'
49- elsif facts [ :os ] [ 'name' ] == 'Ubuntu'
50- if Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '20' ) < 0 &&
51- Puppet ::Util ::Package . versioncmp ( facts [ :os ] [ 'release' ] [ 'major' ] , '16' ) >= 0
52- 'percona-xtrabackup'
53- else
54- 'percona-xtrabackup-24'
55- end
56- elsif facts [ :os ] [ 'family' ] == 'Suse'
57- 'xtrabackup'
58- else
59- 'percona-xtrabackup'
60- end
64+ it { is_expected . to contain_package ( package ) }
6165
6266 it 'contains the weekly cronjob' do
6367 is_expected . to contain_cron ( 'xtrabackup-weekly' )
@@ -72,6 +76,11 @@ class { 'mysql::server': }
7276 . that_requires ( "Package[#{ package } ]" )
7377 end
7478
79+ it {
80+ package_name = ( facts [ :os ] [ 'family' ] == 'RedHat' ) ? 'cronie' : 'cron'
81+ is_expected . to contain_package ( package_name )
82+ }
83+
7584 it 'contains the daily cronjob for weekdays 1-6' do
7685 dateformat = case facts [ :os ] [ 'name' ]
7786 when 'FreeBSD' , 'OpenBSD'
@@ -304,6 +313,8 @@ class { 'mysql::server': }
304313 %r{(\n *^mariabackup\s +.*\$ @)} ,
305314 )
306315 end
316+
317+ it { is_expected . to contain_package ( params [ :backupmethod_package ] ) }
307318 end
308319
309320 context 'with backup_success_file_path' do
0 commit comments