@@ -129,213 +129,4 @@ class { 'mysql::server::backup':
129
129
end
130
130
end
131
131
end
132
-
133
- context 'with xtrabackup enabled' do
134
- context 'should work with no errors' , if : ( ( os [ :family ] == 'debian' ) || ( os [ :family ] == 'ubuntu' ) || ( os [ :family ] == 'redhat' && os [ :release ] . to_i > 7 ) ) do
135
- pp = <<-MANIFEST
136
- class { 'mysql::server': root_password => 'password' }
137
- mysql::db { [
138
- 'backup1',
139
- 'backup2'
140
- ]:
141
- user => 'backup',
142
- password => 'secret',
143
- charset => '#{ fetch_charset } ',
144
- collate => '#{ fetch_charset } _general_ci',
145
- }
146
- case $facts['os']['family'] {
147
- /Debian/: {
148
- $source_url = "http://repo.percona.com/apt/percona-release_latest.${facts['os']['distro']['codename']}_all.deb"
149
-
150
- file { '/tmp/percona-release_latest.deb':
151
- ensure => present,
152
- source => $source_url,
153
- }
154
- ensure_packages('gnupg')
155
- ensure_packages('gnupg2')
156
- ensure_packages('curl')
157
- ensure_packages('percona-release',{
158
- ensure => present,
159
- provider => 'dpkg',
160
- source => '/tmp/percona-release_latest.deb',
161
- notify => Exec['apt-get update'],
162
- })
163
- exec { 'apt-get update':
164
- path => '/usr/bin:/usr/sbin:/bin:/sbin',
165
- refreshonly => true,
166
- }
167
- }
168
- /RedHat/: {
169
- # RHEL/CentOS 5 is no longer supported by Percona, but older versions
170
- # of the repository are still available.
171
- if versioncmp($::operatingsystemmajrelease, '6') >= 0 {
172
- $percona_url = 'http://repo.percona.com/yum/percona-release-latest.noarch.rpm'
173
- $epel_url = "https://download.fedoraproject.org/pub/epel/epel-release-latest-${facts['os']['release']['major']}.noarch.rpm"
174
- } else {
175
- $percona_url = 'http://repo.percona.com/yum/release/5/os/noarch/percona-release-0.1-3.noarch.rpm'
176
- $epel_url = 'https://archives.fedoraproject.org/pub/archive/epel/epel-release-latest-5.noarch.rpm'
177
- }
178
- ensure_packages('percona-release',{
179
- ensure => present,
180
- provider => 'rpm',
181
- source => $percona_url,
182
- })
183
- ensure_packages('epel-release',{
184
- ensure => present,
185
- provider => 'rpm',
186
- source => $epel_url,
187
- })
188
- if ($facts['os']['name'] == 'Scientific') {
189
- # $releasever resolves to '6.10' instead of '6' which breaks Percona repos
190
- file { '/etc/yum/vars/releasever':
191
- ensure => present,
192
- content => '6',
193
- }
194
- }
195
- }
196
- default: { }
197
- }
198
- class { 'mysql::server::backup':
199
- backupuser => 'myuser',
200
- backuppassword => 'mypassword',
201
- backupdir => '/tmp/xtrabackups',
202
- provider => 'xtrabackup',
203
- execpath => '/usr/bin:/usr/sbin:/bin:/sbin:/opt/zimbra/bin',
204
- }
205
- MANIFEST
206
- it 'when configuring mysql backup' do
207
- idempotent_apply ( pp )
208
- end
209
- end
210
-
211
- describe 'xtrabackup.sh' , if : Gem ::Version . new ( mysql_version ) < Gem ::Version . new ( '5.7.0' ) && ( ( os [ :family ] == 'debian' && os [ :release ] . to_i >= 9 ) || ( os [ :family ] == 'ubuntu' ) || ( os [ :family ] == 'redhat' && os [ :release ] . to_i > 7 ) ) do # rubocop:disable Layout/LineLength
212
- it 'runs xtrabackup.sh full backup with no errors' do
213
- run_shell ( '/usr/local/sbin/xtrabackup.sh --target-dir=/tmp/xtrabackups/$(date +%F)_full --backup 2>&1 | tee /tmp/xtrabackup_full.log' ) do |r |
214
- expect ( r . exit_code ) . to be_zero
215
- end
216
- end
217
-
218
- it 'xtrabackup reports success for the full backup' do
219
- # NOTE: Once support for CentOS 6 is dropped, we should check for "completed OK" instead.
220
- run_shell ( 'grep "xtrabackup: Transaction log of lsn" /tmp/xtrabackup_full.log' ) do |r |
221
- expect ( r . exit_code ) . to be_zero
222
- end
223
- end
224
-
225
- it 'creates a subdirectory for the full backup' do
226
- run_shell ( 'find /tmp/xtrabackups -mindepth 1 -maxdepth 1 -type d -name $(date +%Y)\*full | wc -l' ) do |r |
227
- expect ( r . stdout ) . to match ( %r{1} )
228
- expect ( r . exit_code ) . to be_zero
229
- end
230
- end
231
-
232
- it 'runs xtrabackup.sh incremental backup with no errors' do
233
- run_shell ( 'sleep 1' )
234
- run_shell ( '/usr/local/sbin/xtrabackup.sh --incremental-basedir=/tmp/xtrabackups/$(date +%F)_full --target-dir=/tmp/xtrabackups/$(date +%F_%H-%M-%S) --backup 2>&1 | tee /tmp/xtrabackup_inc.log' ) do |r | # rubocop:disable Layout/LineLength
235
- expect ( r . exit_code ) . to be_zero
236
- end
237
- end
238
-
239
- it 'xtrabackup reports success for the incremental backup' do
240
- # NOTE: Once support for CentOS 6 is dropped, we should check for "completed OK" instead.
241
- run_shell ( 'grep "xtrabackup: Transaction log of lsn" /tmp/xtrabackup_inc.log' ) do |r |
242
- expect ( r . exit_code ) . to be_zero
243
- end
244
- end
245
-
246
- it 'creates a new subdirectory for each backup' do
247
- run_shell ( 'find /tmp/xtrabackups -mindepth 1 -maxdepth 1 -type d -name $(date +%Y)\* | wc -l' ) do |r |
248
- expect ( r . stdout ) . to match ( %r{2} )
249
- expect ( r . exit_code ) . to be_zero
250
- end
251
- end
252
- end
253
- end
254
-
255
- context 'with xtrabackup enabled and incremental backups disabled' do
256
- context 'should work with no errors' , if : ( ( os [ :family ] == 'debian' ) || ( os [ :family ] == 'ubuntu' ) || ( os [ :family ] == 'redhat' && os [ :release ] . to_i > 7 ) ) do
257
- pp = <<-MANIFEST
258
- class { 'mysql::server': root_password => 'password' }
259
- mysql::db { [
260
- 'backup1',
261
- 'backup2'
262
- ]:
263
- user => 'backup',
264
- password => 'secret',
265
- charset => '#{ fetch_charset } ',
266
- collate => '#{ fetch_charset } _general_ci',
267
- }
268
- case $facts['os']['family'] {
269
- /Debian/: {
270
- $source_url = "http://repo.percona.com/apt/percona-release_1.0-22.generic_all.deb"
271
-
272
- file { '/tmp/percona-release_latest.deb':
273
- ensure => present,
274
- source => $source_url,
275
- }
276
- ensure_packages('gnupg')
277
- ensure_packages('gnupg2')
278
- ensure_packages('percona-release',{
279
- ensure => present,
280
- provider => 'dpkg',
281
- source => '/tmp/percona-release_latest.deb',
282
- notify => Exec['apt-get update'],
283
- })
284
- exec { 'apt-get update':
285
- path => '/usr/bin:/usr/sbin:/bin:/sbin',
286
- refreshonly => true,
287
- }
288
- }
289
- /RedHat/: {
290
- $percona_url = 'http://repo.percona.com/yum/percona-release-latest.noarch.rpm'
291
- $epel_url = "https://download.fedoraproject.org/pub/epel/epel-release-latest-${facts['os']['release']['major']}.noarch.rpm"
292
- ensure_packages('percona-release',{
293
- ensure => present,
294
- provider => 'rpm',
295
- source => $percona_url,
296
- })
297
- ensure_packages('epel-release',{
298
- ensure => present,
299
- provider => 'rpm',
300
- source => $epel_url,
301
- })
302
- if ($facts['os']['name'] == 'Scientific') {
303
- # $releasever resolves to '6.10' instead of '6' which breaks Percona repos
304
- file { '/etc/yum/vars/releasever':
305
- ensure => present,
306
- content => '6',
307
- }
308
- }
309
- }
310
- default: { }
311
- }
312
- class { 'mysql::server::backup':
313
- backupuser => 'myuser',
314
- backuppassword => 'mypassword',
315
- backupdir => '/tmp/xtrabackups',
316
- provider => 'xtrabackup',
317
- incremental_backups => false,
318
- execpath => '/usr/bin:/usr/sbin:/bin:/sbin:/opt/zimbra/bin',
319
- }
320
- MANIFEST
321
- it 'when configuring mysql backup' do
322
- idempotent_apply ( pp )
323
- end
324
- end
325
-
326
- describe 'xtrabackup.sh' , if : Gem ::Version . new ( mysql_version ) < Gem ::Version . new ( '5.7.0' ) && ( ( os [ :family ] == 'debian' && os [ :release ] . to_i >= 9 ) || ( os [ :family ] == 'ubuntu' ) || ( os [ :family ] == 'redhat' && os [ :release ] . to_i > 7 ) ) do # rubocop:disable Layout/LineLength
327
- it 'runs xtrabackup.sh with no errors' do
328
- run_shell ( '/usr/local/sbin/xtrabackup.sh --target-dir=/tmp/xtrabackups/$(date +%F_%H-%M-%S) --backup 2>&1 | tee /tmp/xtrabackup.log' ) do |r |
329
- expect ( r . exit_code ) . to be_zero
330
- end
331
- end
332
-
333
- it 'xtrabackup reports success for the backup' do
334
- # NOTE: Once support for CentOS 6 is dropped, we should check for "completed OK" instead.
335
- run_shell ( 'grep "xtrabackup: Transaction log of lsn" /tmp/xtrabackup.log' ) do |r |
336
- expect ( r . exit_code ) . to be_zero
337
- end
338
- end
339
- end
340
- end
341
132
end
0 commit comments