5
5
describe 'mysql::backup::xtrabackup' do
6
6
on_supported_os . each do |os , facts |
7
7
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
+
8
31
let ( :pre_condition ) do
9
32
<<-MANIFEST
10
33
class { 'mysql::server': }
@@ -38,26 +61,7 @@ class { 'mysql::server': }
38
61
)
39
62
end
40
63
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 ) }
61
65
62
66
it 'contains the weekly cronjob' do
63
67
is_expected . to contain_cron ( 'xtrabackup-weekly' )
@@ -72,6 +76,11 @@ class { 'mysql::server': }
72
76
. that_requires ( "Package[#{ package } ]" )
73
77
end
74
78
79
+ it {
80
+ package_name = ( facts [ :os ] [ 'family' ] == 'RedHat' ) ? 'cronie' : 'cron'
81
+ is_expected . to contain_package ( package_name )
82
+ }
83
+
75
84
it 'contains the daily cronjob for weekdays 1-6' do
76
85
dateformat = case facts [ :os ] [ 'name' ]
77
86
when 'FreeBSD' , 'OpenBSD'
@@ -304,6 +313,8 @@ class { 'mysql::server': }
304
313
%r{(\n *^mariabackup\s +.*\$ @)} ,
305
314
)
306
315
end
316
+
317
+ it { is_expected . to contain_package ( params [ :backupmethod_package ] ) }
307
318
end
308
319
309
320
context 'with backup_success_file_path' do
0 commit comments