Skip to content
Snippets Groups Projects
Commit 0fbb5a86 authored by David Gerő's avatar David Gerő
Browse files

Add Human Readable Timestamp to backup tar file

parent 50a410a9
No related branches found
No related tags found
No related merge requests found
---
title: Add Human Readable format for rake backup
merge_request: 7188
author: David Gerő
Loading
Loading
@@ -353,7 +353,7 @@ restore:
 
```shell
# This command will overwrite the contents of your GitLab database!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186_2014_02_27
```
 
Restart and check GitLab:
Loading
Loading
Loading
Loading
@@ -14,7 +14,7 @@ module Backup
s[:gitlab_version] = Gitlab::VERSION
s[:tar_version] = tar_version
s[:skipped] = ENV["SKIP"]
tar_file = "#{s[:backup_created_at].to_i}_gitlab_backup.tar"
tar_file = s[:backup_created_at].strftime('%s_%Y_%m_%d') + '_gitlab_backup.tar'
 
Dir.chdir(Gitlab.config.backup.path) do
File.open("#{Gitlab.config.backup.path}/backup_information.yml",
Loading
Loading
@@ -83,10 +83,14 @@ module Backup
 
Dir.chdir(Gitlab.config.backup.path) do
file_list = Dir.glob('*_gitlab_backup.tar')
file_list.map! { |f| $1.to_i if f =~ /(\d+)_gitlab_backup.tar/ }
file_list.sort.each do |timestamp|
if Time.at(timestamp) < (Time.now - keep_time)
if Kernel.system(*%W(rm #{timestamp}_gitlab_backup.tar))
file_list.map! do |path_string|
if path_string =~ /(\d+)(?:_\d{4}_\d{2}_\d{2})?_gitlab_backup\.tar/
{ timestamp: $1.to_i, path: path_string }
end
end
file_list.sort.each do |file|
if Time.at(file[:timestamp]) < (Time.now - keep_time)
if Kernel.system(*%W(rm #{file[:path]}))
removed += 1
end
end
Loading
Loading
@@ -103,7 +107,7 @@ module Backup
Dir.chdir(Gitlab.config.backup.path)
 
# check for existing backups in the backup dir
file_list = Dir.glob("*_gitlab_backup.tar").each.map { |f| f.split(/_/).first.to_i }
file_list = Dir.glob("*_gitlab_backup.tar")
puts "no backups found" if file_list.count == 0
 
if file_list.count > 1 && ENV["BACKUP"].nil?
Loading
Loading
@@ -112,7 +116,7 @@ module Backup
exit 1
end
 
tar_file = ENV["BACKUP"].nil? ? File.join("#{file_list.first}_gitlab_backup.tar") : File.join(ENV["BACKUP"] + "_gitlab_backup.tar")
tar_file = ENV["BACKUP"].nil? ? file_list.first : file_list.grep(ENV['BACKUP']).first
 
unless File.exist?(tar_file)
puts "The specified backup doesn't exist!"
Loading
Loading
Loading
Loading
@@ -333,4 +333,35 @@ describe 'gitlab:app namespace rake task' do
expect { run_rake_task('gitlab:backup:restore') }.not_to raise_error
end
end
describe "Human Readable Backup Name" do
def tars_glob
Dir.glob(File.join(Gitlab.config.backup.path, '*_gitlab_backup.tar'))
end
before :all do
@origin_cd = Dir.pwd
reenable_backup_sub_tasks
FileUtils.rm tars_glob
# Redirect STDOUT and run the rake task
orig_stdout = $stdout
$stdout = StringIO.new
run_rake_task('gitlab:backup:create')
$stdout = orig_stdout
@backup_tar = tars_glob.first
end
after :all do
FileUtils.rm(@backup_tar)
Dir.chdir @origin_cd
end
it 'name has human readable time' do
expect(@backup_tar).to match(/\d+_\d{4}_\d{2}_\d{2}_gitlab_backup.tar$/)
end
end
end # gitlab:app namespace
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment