summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalasankar "Balu" C <balasankar@gitlab.com>2018-09-17 21:42:10 +0530
committerBalasankar "Balu" C <balasankar@gitlab.com>2018-09-18 20:26:54 +0530
commitc4668c388f8da13ed3328c809a679a2542fd5b8d (patch)
tree6d98bf6ac7b0d87821ff606facc53ac2d7d4742e
parent623ba9fd64bd349581d8f60c69d8933f641fa1e4 (diff)
downloadgitlab-ce-c4668c388f8da13ed3328c809a679a2542fd5b8d.tar.gz
Add wrapper rake task to migrate all uploads to OS
Add a rake task that will trigger gitlab:uploads:migrate rake task with different possible arguments, one by one.
-rw-r--r--changelogs/unreleased/51571-wrapper-rake-task-uploads-migrate-os.yml5
-rw-r--r--lib/tasks/gitlab/uploads/migrate.rake26
2 files changed, 30 insertions, 1 deletions
diff --git a/changelogs/unreleased/51571-wrapper-rake-task-uploads-migrate-os.yml b/changelogs/unreleased/51571-wrapper-rake-task-uploads-migrate-os.yml
new file mode 100644
index 00000000000..50710ca0aa8
--- /dev/null
+++ b/changelogs/unreleased/51571-wrapper-rake-task-uploads-migrate-os.yml
@@ -0,0 +1,5 @@
+---
+title: Add wrapper rake task to migrate all uploads to OS
+merge_request: 21779
+author:
+type: other
diff --git a/lib/tasks/gitlab/uploads/migrate.rake b/lib/tasks/gitlab/uploads/migrate.rake
index f548a266b99..1c93609a006 100644
--- a/lib/tasks/gitlab/uploads/migrate.rake
+++ b/lib/tasks/gitlab/uploads/migrate.rake
@@ -1,6 +1,30 @@
namespace :gitlab do
namespace :uploads do
- desc 'GitLab | Uploads | Migrate the uploaded files to object storage'
+ namespace :migrate do
+ desc "GitLab | Uploads | Migrate all uploaded files to object storage"
+ task all: :environment do
+ categories = [%w(AvatarUploader Project :avatar),
+ %w(AvatarUploader Group :avatar),
+ %w(AvatarUploader User :avatar),
+ %w(AttachmentUploader Note :attachment),
+ %w(AttachmentUploader Appearance :logo),
+ %w(AttachmentUploader Appearance :header_logo),
+ %w(FaviconUploader Appearance :favicon),
+ %w(FileUploader Project),
+ %w(PersonalFileUploader Snippet),
+ %w(NamespaceFileUploader Snippet),
+ %w(FileUploader MergeRequest)]
+
+ categories.each do |args|
+ Rake::Task["gitlab:uploads:migrate"].invoke(*args)
+ Rake::Task["gitlab:uploads:migrate"].reenable
+ end
+ end
+ end
+
+ # The following is the actual rake task that migrates uploads of specified
+ # category to object storage
+ desc 'GitLab | Uploads | Migrate the uploaded files of specified type to object storage'
task :migrate, [:uploader_class, :model_class, :mounted_as] => :environment do |task, args|
batch_size = ENV.fetch('BATCH', 200).to_i
@to_store = ObjectStorage::Store::REMOTE