diff options
author | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2014-10-01 17:43:27 +0400 |
---|---|---|
committer | Jacob Vosmaer <contact@jacobvosmaer.nl> | 2014-10-01 17:43:27 +0400 |
commit | 02bf992f378f8b56ec7e698b5d603ded895dd0a4 (patch) | |
tree | 7d7da4c27f06ffcfade1abfcc26b6b13cdd706b4 /lib | |
parent | 8b1da505e0f46f720d5097c4850ee83f10cc8d51 (diff) |
Fail harder in the backup script
This change also shows the output of failed Git commands during the
backup.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/backup/database.rb | 2 | ||||
-rw-r--r-- | lib/backup/manager.rb | 3 | ||||
-rw-r--r-- | lib/backup/repository.rb | 23 |
3 files changed, 22 insertions, 6 deletions
diff --git a/lib/backup/database.rb b/lib/backup/database.rb index 7b6908ccad8..d12d30a9110 100644 --- a/lib/backup/database.rb +++ b/lib/backup/database.rb @@ -21,6 +21,7 @@ module Backup system('pg_dump', config['database'], out: db_file_name) end report_success(success) + abort 'Backup failed' unless success end def restore @@ -37,6 +38,7 @@ module Backup system('psql', config['database'], '-f', db_file_name) end report_success(success) + abort 'Restore failed' unless success end protected diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb index 908f10a4138..03fe0f0b02f 100644 --- a/lib/backup/manager.rb +++ b/lib/backup/manager.rb @@ -23,6 +23,7 @@ module Backup puts "done".green else puts "failed".red + abort 'Backup failed' end upload(tar_file) @@ -44,6 +45,7 @@ module Backup puts "done".green else puts "failed".red + abort 'Backup failed' end end @@ -53,6 +55,7 @@ module Backup puts "done".green else puts "failed".red + abort 'Backup failed' end end diff --git a/lib/backup/repository.rb b/lib/backup/repository.rb index ea05fa2c261..4e99d4bbe5c 100644 --- a/lib/backup/repository.rb +++ b/lib/backup/repository.rb @@ -15,10 +15,15 @@ module Backup if project.empty_repo? puts "[SKIPPED]".cyan - elsif system(*%W(git --git-dir=#{path_to_repo(project)} bundle create #{path_to_bundle(project)} --all), silent) - puts "[DONE]".green else - puts "[FAILED]".red + output, status = Gitlab::Popen.popen(%W(git --git-dir=#{path_to_repo(project)} bundle create #{path_to_bundle(project)} --all)) + if status.zero? + puts "[DONE]".green + else + puts "[FAILED]".red + puts output + abort 'Backup failed' + end end wiki = ProjectWiki.new(project) @@ -27,10 +32,14 @@ module Backup print " * #{wiki.path_with_namespace} ... " if wiki.empty? puts " [SKIPPED]".cyan - elsif system(*%W(git --git-dir=#{path_to_repo(wiki)} bundle create #{path_to_bundle(wiki)} --all), silent) - puts " [DONE]".green else - puts " [FAILED]".red + output, status = Gitlab::Popen.popen(%W(git --git-dir=#{path_to_repo(wiki)} bundle create #{path_to_bundle(wiki)} --all)) + if status.zero? + puts " [DONE]".green + else + puts " [FAILED]".red + abort 'Backup failed' + end end end end @@ -54,6 +63,7 @@ module Backup puts "[DONE]".green else puts "[FAILED]".red + abort 'Restore failed' end wiki = ProjectWiki.new(project) @@ -64,6 +74,7 @@ module Backup puts " [DONE]".green else puts " [FAILED]".red + abort 'Restore failed' end end end |