Module: Tasks::Gitlab::Backup

Defined in:
lib/tasks/gitlab/backup.rb

Constant Summary collapse

PID =
Process.pid.freeze
PID_FILE =
"#{Rails.application.root}/tmp/backup_restore.pid".freeze

Class Method Summary collapse

Class Method Details

.create_backupObject



9
10
11
12
13
14
15
16
# File 'lib/tasks/gitlab/backup.rb', line 9

def self.create_backup
  lock_backup do
    ::Gitlab::TaskHelpers.warn_user_is_not_gitlab
    success = ::Backup::Manager.new(backup_progress).create

    exit 1 unless success # rubocop:disable Rails/Exit -- Rake task helper
  end
end

.create_task(task_id) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/tasks/gitlab/backup.rb', line 33

def self.create_task(task_id)
  lock_backup do
    backup_manager = ::Backup::Manager.new(backup_progress)
    task = backup_manager.find_task(task_id)
    success = backup_manager.run_create_task(task)

    exit 1 unless success # rubocop:disable Rails/Exit -- Rake task helper
  end
end

.reset_pool_repositories!Object

A Backup only includes regular repositories, after a restore we need to reinitialize their respective pools. This process is done by changing its original state to ‘none’ and scheduling its creation process again



54
55
56
57
58
# File 'lib/tasks/gitlab/backup.rb', line 54

def self.reset_pool_repositories!
  ::Backup::Restore::PoolRepositories.reinitialize_pools! do |pool_result|
    puts pool_result.to_h.to_json
  end
end

.restore_backupObject



18
19
20
21
22
23
24
# File 'lib/tasks/gitlab/backup.rb', line 18

def self.restore_backup
  lock_backup do
    ::Gitlab::TaskHelpers.warn_user_is_not_gitlab

    ::Backup::Manager.new(backup_progress).restore
  end
end

.restore_task(task_id) ⇒ Object



43
44
45
46
47
48
49
50
# File 'lib/tasks/gitlab/backup.rb', line 43

def self.restore_task(task_id)
  lock_backup do
    backup_manager = ::Backup::Manager.new(backup_progress)
    task = backup_manager.find_task(task_id)

    backup_manager.run_restore_task(task)
  end
end

.verify_backupObject

Verify backup file to ensure it is compatible with current GitLab’s version



27
28
29
30
31
# File 'lib/tasks/gitlab/backup.rb', line 27

def self.verify_backup
  lock_backup do
    ::Backup::Manager.new(backup_progress).verify!
  end
end