Commit 8b8bab11 authored by Rémy Coutable's avatar Rémy Coutable

Stub ENV in the backup task spec file

Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent 9c71fb0d
...@@ -101,50 +101,50 @@ module Backup ...@@ -101,50 +101,50 @@ module Backup
end end
def unpack def unpack
Dir.chdir(backup_path) Dir.chdir(backup_path) do
# check for existing backups in the backup dir
# check for existing backups in the backup dir if backup_file_list.empty?
if backup_file_list.empty? $progress.puts "No backups found in #{backup_path}"
$progress.puts "No backups found in #{backup_path}" $progress.puts "Please make sure that file name ends with #{FILE_NAME_SUFFIX}"
$progress.puts "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" exit 1
exit 1 elsif backup_file_list.many? && ENV["BACKUP"].nil?
elsif backup_file_list.many? && ENV["BACKUP"].nil? $progress.puts 'Found more than one backup, please specify which one you want to restore:'
$progress.puts 'Found more than one backup, please specify which one you want to restore:' $progress.puts 'rake gitlab:backup:restore BACKUP=timestamp_of_backup'
$progress.puts 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' exit 1
exit 1 end
end
tar_file = if ENV['BACKUP'].present? tar_file = if ENV['BACKUP'].present?
"#{ENV['BACKUP']}#{FILE_NAME_SUFFIX}" "#{ENV['BACKUP']}#{FILE_NAME_SUFFIX}"
else else
backup_file_list.first backup_file_list.first
end end
unless File.exist?(tar_file) unless File.exist?(tar_file)
$progress.puts "The backup file #{tar_file} does not exist!" $progress.puts "The backup file #{tar_file} does not exist!"
exit 1 exit 1
end end
$progress.print 'Unpacking backup ... ' $progress.print 'Unpacking backup ... '
unless Kernel.system(*%W(tar -xf #{tar_file})) unless Kernel.system(*%W(tar -xf #{tar_file}))
$progress.puts 'unpacking backup failed'.color(:red) $progress.puts 'unpacking backup failed'.color(:red)
exit 1 exit 1
else else
$progress.puts 'done'.color(:green) $progress.puts 'done'.color(:green)
end end
ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0 ENV["VERSION"] = "#{settings[:db_version]}" if settings[:db_version].to_i > 0
# restoring mismatching backups can lead to unexpected problems # restoring mismatching backups can lead to unexpected problems
if settings[:gitlab_version] != Gitlab::VERSION if settings[:gitlab_version] != Gitlab::VERSION
$progress.puts 'GitLab version mismatch:'.color(:red) $progress.puts 'GitLab version mismatch:'.color(:red)
$progress.puts " Your current GitLab version (#{Gitlab::VERSION}) differs from the GitLab version in the backup!".color(:red) $progress.puts " Your current GitLab version (#{Gitlab::VERSION}) differs from the GitLab version in the backup!".color(:red)
$progress.puts ' Please switch to the following version and try again:'.color(:red) $progress.puts ' Please switch to the following version and try again:'.color(:red)
$progress.puts " version: #{settings[:gitlab_version]}".color(:red) $progress.puts " version: #{settings[:gitlab_version]}".color(:red)
$progress.puts $progress.puts
$progress.puts "Hint: git checkout v#{settings[:gitlab_version]}" $progress.puts "Hint: git checkout v#{settings[:gitlab_version]}"
exit 1 exit 1
end
end end
end end
......
...@@ -172,10 +172,6 @@ describe Backup::Manager do ...@@ -172,10 +172,6 @@ describe Backup::Manager do
end end
describe '#unpack' do describe '#unpack' do
before do
allow(Dir).to receive(:chdir)
end
context 'when there are no backup files in the directory' do context 'when there are no backup files in the directory' do
before do before do
allow(Dir).to receive(:glob).and_return([]) allow(Dir).to receive(:glob).and_return([])
......
This diff is collapsed.
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