Commit 991b5fbfe223e3d9e506b35d07062858f41ccc0d

Authored by Jacob Vosmaer
2 parents 95cb310e fb9b114d

Merge branch 'gitlab_rails_uploads' into 'master'

Gitlab Rails Uploads
config/patches/gitlab-rails/backup_uploads_realpath.patch 0 → 100644
... ... @@ -0,0 +1,24 @@
  1 +diff --git a/lib/backup/uploads.rb b/lib/backup/uploads.rb
  2 +index e79da7e..e50e1ff 100644
  3 +--- a/lib/backup/uploads.rb
  4 ++++ b/lib/backup/uploads.rb
  5 +@@ -3,7 +3,7 @@ module Backup
  6 + attr_reader :app_uploads_dir, :backup_uploads_dir, :backup_dir
  7 +
  8 + def initialize
  9 +- @app_uploads_dir = Rails.root.join('public', 'uploads')
  10 ++ @app_uploads_dir = File.realpath(Rails.root.join('public', 'uploads'))
  11 + @backup_dir = Gitlab.config.backup.path
  12 + @backup_uploads_dir = File.join(Gitlab.config.backup.path, 'uploads')
  13 + end
  14 +@@ -21,8 +21,9 @@ module Backup
  15 + end
  16 +
  17 + def backup_existing_uploads_dir
  18 ++ timestamped_uploads_path = File.join(app_uploads_dir, '..', "uploads.#{Time.now.to_i}")
  19 + if File.exists?(app_uploads_dir)
  20 +- FileUtils.mv(app_uploads_dir, Rails.root.join('public', "uploads.#{Time.now.to_i}"))
  21 ++ FileUtils.mv(app_uploads_dir, timestamped_uploads_path)
  22 + end
  23 + end
  24 + end
... ...
config/software/gitlab-rails.rb
... ... @@ -46,6 +46,11 @@ build do
46 46 patch :source => "backup_read_REVISION.patch"
47 47 command "git rev-parse HEAD > REVISION"
48 48  
  49 + # The user uploads path is not (yet) configurable in gitlab-rails. As a
  50 + # workaround, omnibus-gitlab creates a symlink for public/uploads. This breaks
  51 + # the GitLab backup script.
  52 + patch :source => "backup_uploads_realpath.patch"
  53 +
49 54 bundle "install --without mysql development test --path=#{install_dir}/embedded/service/gem", :env => env
50 55  
51 56 # In order to precompile the assets, we need to get to a state where rake can
... ...
files/gitlab-cookbooks/gitlab/attributes/default.rb
... ... @@ -44,7 +44,7 @@ default['gitlab']['gitlab-rails']['log_directory'] = "/var/log/gitlab/gitlab-rai
44 44 default['gitlab']['gitlab-rails']['environment'] = 'production'
45 45  
46 46 default['gitlab']['gitlab-rails']['internal_api_url'] = "http://localhost:8080"
47   -default['gitlab']['gitlab-rails']['uploads_directory'] = "/var/opt/gitlab/uploads"
  47 +default['gitlab']['gitlab-rails']['uploads_directory'] = "/var/opt/gitlab/gitlab-rails/uploads"
48 48 default['gitlab']['gitlab-rails']['rate_limit_requests_per_period'] = 10
49 49 default['gitlab']['gitlab-rails']['rate_limit_period'] = 60
50 50  
... ...