Fix backups if registry is disabled
This commit is contained in:
parent
3c18a4f8aa
commit
12bd781031
|
@ -1,5 +1,8 @@
|
|||
module Backup
|
||||
class Manager
|
||||
ARCHIVES_TO_BACKUP = %w{uploads builds artifacts lfs registry}
|
||||
FOLDERS_TO_BACKUP = %w{repositories db}
|
||||
|
||||
def pack
|
||||
# Make sure there is a connection
|
||||
ActiveRecord::Base.connection.reconnect!
|
||||
|
@ -157,11 +160,17 @@ module Backup
|
|||
end
|
||||
|
||||
def archives_to_backup
|
||||
%w{uploads builds artifacts lfs registry}.map{ |name| (name + ".tar.gz") unless skipped?(name) }.compact
|
||||
(ARCHIVES_TO_BACKUP - disabled_features).map{ |name| (name + ".tar.gz") unless skipped?(name) }.compact
|
||||
end
|
||||
|
||||
def folders_to_backup
|
||||
%w{repositories db}.reject{ |name| skipped?(name) }
|
||||
(FOLDERS_TO_BACKUP - disabled_features).reject{ |name| skipped?(name) }
|
||||
end
|
||||
|
||||
def disabled_features
|
||||
features = []
|
||||
features << 'registry' unless Gitlab.config.registry.enabled
|
||||
features
|
||||
end
|
||||
|
||||
def settings
|
||||
|
|
|
@ -179,18 +179,26 @@ namespace :gitlab do
|
|||
task create: :environment do
|
||||
$progress.puts "Dumping container registry images ... ".blue
|
||||
|
||||
if ENV["SKIP"] && ENV["SKIP"].include?("registry")
|
||||
$progress.puts "[SKIPPED]".cyan
|
||||
if Gitlab.config.registry.enabled
|
||||
if ENV["SKIP"] && ENV["SKIP"].include?("registry")
|
||||
$progress.puts "[SKIPPED]".cyan
|
||||
else
|
||||
Backup::Registry.new.dump
|
||||
$progress.puts "done".green
|
||||
end
|
||||
else
|
||||
Backup::Registry.new.dump
|
||||
$progress.puts "done".green
|
||||
$progress.puts "[DISABLED]".cyan
|
||||
end
|
||||
end
|
||||
|
||||
task restore: :environment do
|
||||
$progress.puts "Restoring container registry images ... ".blue
|
||||
Backup::Registry.new.restore
|
||||
$progress.puts "done".green
|
||||
if Gitlab.config.registry.enabled
|
||||
Backup::Registry.new.restore
|
||||
$progress.puts "done".green
|
||||
else
|
||||
$progress.puts "[DISABLED]".cyan
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ require 'spec_helper'
|
|||
require 'rake'
|
||||
|
||||
describe 'gitlab:app namespace rake task' do
|
||||
let(:enable_registry) { true }
|
||||
|
||||
before :all do
|
||||
Rake.application.rake_require 'tasks/gitlab/task_helpers'
|
||||
Rake.application.rake_require 'tasks/gitlab/backup'
|
||||
|
@ -15,6 +17,10 @@ describe 'gitlab:app namespace rake task' do
|
|||
FileUtils.mkdir_p('public/uploads')
|
||||
end
|
||||
|
||||
before do
|
||||
stub_container_registry_config(enabled: enable_registry)
|
||||
end
|
||||
|
||||
def run_rake_task(task_name)
|
||||
Rake::Task[task_name].reenable
|
||||
Rake.application.invoke_task task_name
|
||||
|
@ -143,6 +149,18 @@ describe 'gitlab:app namespace rake task' do
|
|||
|
||||
expect(temp_dirs).to be_empty
|
||||
end
|
||||
|
||||
context 'registry disabled' do
|
||||
let(:enable_registry) { false }
|
||||
|
||||
it 'should not create registry.tar.gz' do
|
||||
tar_contents, exit_status = Gitlab::Popen.popen(
|
||||
%W{tar -tvf #{@backup_tar}}
|
||||
)
|
||||
expect(exit_status).to eq(0)
|
||||
expect(tar_contents).not_to match('registry.tar.gz')
|
||||
end
|
||||
end
|
||||
end # backup_create task
|
||||
|
||||
describe "Skipping items" do
|
||||
|
|
Loading…
Reference in New Issue