Skip to content

Commit

Permalink
Merge pull request #848 from bmjen/fix-backup
Browse files Browse the repository at this point in the history
Skips mysqlbackup.sh tests on MySQL 5.7+
  • Loading branch information
tphoney committed May 26, 2016
2 parents 9fc34d4 + e2fad83 commit 269c913
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 29 deletions.
2 changes: 1 addition & 1 deletion .fixtures.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
fixtures:
repositories:
"stdlib": "https://github.com/puppetlabs/puppetlabs-stdlib"
"staging": "https://github.com/nanliu/puppet-staging"
"staging": "https://github.com/voxpupuli/puppet-staging"
symlinks:
"mysql": "#{source_dir}"
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -908,14 +908,16 @@ loopback interfaces. Because those nodes aren't connected to the outside world,
This module has been tested on:

* RedHat Enterprise Linux 5, 6, 7
* Debian 6, 7
* Debian 6, 7, 8
* CentOS 5, 6, 7
* Ubuntu 10.04, 12.04, 14.04
* Ubuntu 10.04, 12.04, 14.04, 16.04
* Scientific Linux 5, 6
* SLES 11

Testing on other platforms has been minimal and cannot be guaranteed.

**Note:** The mysqlbackup.sh does not work and is not supported on MySQL 5.7 and greater.

## Development

Puppet Labs modules on the Puppet Forge are open projects, and community
Expand Down
2 changes: 1 addition & 1 deletion metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"issues_url": "https://tickets.puppetlabs.com/browse/MODULES",
"dependencies": [
{"name":"puppetlabs/stdlib","version_requirement":">= 3.2.0 < 5.0.0"},
{"name":"nanliu/staging","version_requirement":">= 1.0.1 < 2.0.0"}
{"name":"puppet/staging","version_requirement":">= 1.0.1 < 2.0.0"}
],
"operatingsystem_support": [
{
Expand Down
75 changes: 51 additions & 24 deletions spec/acceptance/mysql_backup_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,28 +47,40 @@ class { 'mysql::server::backup':

describe 'mysqlbackup.sh' do
it 'should run mysqlbackup.sh with no errors' do
shell("/usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
pre_run
if ! version_is_greater_than('5.7.0')
shell("/usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
end
end
end

it 'should dump all databases to single file' do
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
expect(r.stdout).to match(/1/)
expect(r.exit_code).to be_zero
pre_run
if ! version_is_greater_than('5.7.0')
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
expect(r.stdout).to match(/1/)
expect(r.exit_code).to be_zero
end
end
end

context 'should create one file per database per run' do
it 'executes mysqlbackup.sh a second time' do
shell('sleep 1')
shell('/usr/local/sbin/mysqlbackup.sh')
pre_run
if ! version_is_greater_than('5.7.0')
shell('sleep 1')
shell('/usr/local/sbin/mysqlbackup.sh')
end
end

it 'creates at least one backup tarball' do
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
expect(r.stdout).to match(/2/)
expect(r.exit_code).to be_zero
pre_run
if ! version_is_greater_than('5.7.0')
shell('ls -l /tmp/backups/mysql_backup_*-*.sql.bz2 | wc -l') do |r|
expect(r.stdout).to match(/2/)
expect(r.exit_code).to be_zero
end
end
end
end
Expand Down Expand Up @@ -110,31 +122,43 @@ class { 'mysql::server::backup':

describe 'mysqlbackup.sh' do
it 'should run mysqlbackup.sh with no errors without root credentials' do
shell("HOME=/tmp/dontreadrootcredentials /usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
pre_run
if ! version_is_greater_than('5.7.0')
shell("HOME=/tmp/dontreadrootcredentials /usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
end
end
end

it 'should create one file per database' do
['backup1', 'backup2'].each do |database|
shell("ls -l /tmp/backups/mysql_backup_#{database}_*-*.sql.bz2 | wc -l") do |r|
expect(r.stdout).to match(/1/)
expect(r.exit_code).to be_zero
pre_run
if ! version_is_greater_than('5.7.0')
['backup1', 'backup2'].each do |database|
shell("ls -l /tmp/backups/mysql_backup_#{database}_*-*.sql.bz2 | wc -l") do |r|
expect(r.stdout).to match(/1/)
expect(r.exit_code).to be_zero
end
end
end
end

context 'should create one file per database per run' do
it 'executes mysqlbackup.sh a second time' do
shell('sleep 1')
shell('HOME=/tmp/dontreadrootcredentials /usr/local/sbin/mysqlbackup.sh')
pre_run
if ! version_is_greater_than('5.7.0')
shell('sleep 1')
shell('HOME=/tmp/dontreadrootcredentials /usr/local/sbin/mysqlbackup.sh')
end
end

it 'has one file per database per run' do
['backup1', 'backup2'].each do |database|
shell("ls -l /tmp/backups/mysql_backup_#{database}_*-*.sql.bz2 | wc -l") do |r|
expect(r.stdout).to match(/2/)
expect(r.exit_code).to be_zero
pre_run
if ! version_is_greater_than('5.7.0')
['backup1', 'backup2'].each do |database|
shell("ls -l /tmp/backups/mysql_backup_#{database}_*-*.sql.bz2 | wc -l") do |r|
expect(r.stdout).to match(/2/)
expect(r.exit_code).to be_zero
end
end
end
end
Expand Down Expand Up @@ -179,8 +203,11 @@ class { 'mysql::server::backup':
end

it 'should run mysqlbackup.sh with no errors' do
shell("/usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
pre_run
if ! version_is_greater_than('5.7.0')
shell("/usr/local/sbin/mysqlbackup.sh") do |r|
expect(r.stderr).to eq("")
end
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/spec_helper_acceptance.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
else
on host, puppet('module','install','puppetlabs-stdlib','--version','3.2.0')
on host, puppet('module','install','stahnma/epel')
on host, puppet('module','install','nanliu/staging')
on host, puppet('module','install','puppet/staging')
end
end
end
Expand Down

0 comments on commit 269c913

Please sign in to comment.