Commit 02bf992f authored by Jacob Vosmaer's avatar Jacob Vosmaer

Fail harder in the backup script

This change also shows the output of failed Git commands during the
backup.
parent 8b1da505
...@@ -10,6 +10,7 @@ v 7.4.0 ...@@ -10,6 +10,7 @@ v 7.4.0
- Support for backup uploads to remote storage - Support for backup uploads to remote storage
- Prevent notes polling when there are not notes - Prevent notes polling when there are not notes
- API: filter project issues by milestone (Julien Bianchi) - API: filter project issues by milestone (Julien Bianchi)
- Fail harder in the backup script
v 7.3.2 v 7.3.2
- Fix creating new file via web editor - Fix creating new file via web editor
......
...@@ -21,6 +21,7 @@ module Backup ...@@ -21,6 +21,7 @@ module Backup
system('pg_dump', config['database'], out: db_file_name) system('pg_dump', config['database'], out: db_file_name)
end end
report_success(success) report_success(success)
abort 'Backup failed' unless success
end end
def restore def restore
...@@ -37,6 +38,7 @@ module Backup ...@@ -37,6 +38,7 @@ module Backup
system('psql', config['database'], '-f', db_file_name) system('psql', config['database'], '-f', db_file_name)
end end
report_success(success) report_success(success)
abort 'Restore failed' unless success
end end
protected protected
......
...@@ -23,6 +23,7 @@ module Backup ...@@ -23,6 +23,7 @@ module Backup
puts "done".green puts "done".green
else else
puts "failed".red puts "failed".red
abort 'Backup failed'
end end
upload(tar_file) upload(tar_file)
...@@ -44,6 +45,7 @@ module Backup ...@@ -44,6 +45,7 @@ module Backup
puts "done".green puts "done".green
else else
puts "failed".red puts "failed".red
abort 'Backup failed'
end end
end end
...@@ -53,6 +55,7 @@ module Backup ...@@ -53,6 +55,7 @@ module Backup
puts "done".green puts "done".green
else else
puts "failed".red puts "failed".red
abort 'Backup failed'
end end
end end
......
...@@ -15,10 +15,15 @@ module Backup ...@@ -15,10 +15,15 @@ module Backup
if project.empty_repo? if project.empty_repo?
puts "[SKIPPED]".cyan puts "[SKIPPED]".cyan
elsif system(*%W(git --git-dir=#{path_to_repo(project)} bundle create #{path_to_bundle(project)} --all), silent) else
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 puts "[DONE]".green
else else
puts "[FAILED]".red puts "[FAILED]".red
puts output
abort 'Backup failed'
end
end end
wiki = ProjectWiki.new(project) wiki = ProjectWiki.new(project)
...@@ -27,10 +32,14 @@ module Backup ...@@ -27,10 +32,14 @@ module Backup
print " * #{wiki.path_with_namespace} ... " print " * #{wiki.path_with_namespace} ... "
if wiki.empty? if wiki.empty?
puts " [SKIPPED]".cyan puts " [SKIPPED]".cyan
elsif system(*%W(git --git-dir=#{path_to_repo(wiki)} bundle create #{path_to_bundle(wiki)} --all), silent) else
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 puts " [DONE]".green
else else
puts " [FAILED]".red puts " [FAILED]".red
abort 'Backup failed'
end
end end
end end
end end
...@@ -54,6 +63,7 @@ module Backup ...@@ -54,6 +63,7 @@ module Backup
puts "[DONE]".green puts "[DONE]".green
else else
puts "[FAILED]".red puts "[FAILED]".red
abort 'Restore failed'
end end
wiki = ProjectWiki.new(project) wiki = ProjectWiki.new(project)
...@@ -64,6 +74,7 @@ module Backup ...@@ -64,6 +74,7 @@ module Backup
puts " [DONE]".green puts " [DONE]".green
else else
puts " [FAILED]".red puts " [FAILED]".red
abort 'Restore failed'
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment