summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2018-03-30 13:25:46 +0000
committerSean McGivern <sean@mcgivern.me.uk>2018-03-30 13:25:46 +0000
commit4d61672506be65ac0ec33341c0a6e9645d399311 (patch)
treef0385ef34f9aeaf11a06da8b814b2aa1b384c688
parent72f2f384dec7a6e4a78dadf5a2f6afbbf0eb3ea7 (diff)
parent316eb6ef60f00f47ab6ce0e6e24f88de9ac149eb (diff)
downloadgitlab-ce-4d61672506be65ac0ec33341c0a6e9645d399311.tar.gz
Merge branch '44774-migrate-upload-task-fails-for-upload-with-store-nil' into 'master'
Resolve "Migrate upload task fails for Upload with `store: nil`" Closes #44774 See merge request gitlab-org/gitlab-ce!18082
-rw-r--r--changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml5
-rw-r--r--lib/tasks/gitlab/uploads/migrate.rake4
-rw-r--r--spec/tasks/gitlab/uploads/migrate_rake_spec.rb20
3 files changed, 24 insertions, 5 deletions
diff --git a/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml b/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml
new file mode 100644
index 00000000000..372f4293964
--- /dev/null
+++ b/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml
@@ -0,0 +1,5 @@
+---
+title: Fixed gitlab:uploads:migrate task ignoring some uploads.
+merge_request: 18082
+author:
+type: fixed
diff --git a/lib/tasks/gitlab/uploads/migrate.rake b/lib/tasks/gitlab/uploads/migrate.rake
index c26c3ccb3be..e7e656a911b 100644
--- a/lib/tasks/gitlab/uploads/migrate.rake
+++ b/lib/tasks/gitlab/uploads/migrate.rake
@@ -25,8 +25,8 @@ namespace :gitlab do
Upload.class_eval { include EachBatch } unless Upload < EachBatch
Upload
- .where.not(store: @to_store)
- .where(uploader: @uploader_class.to_s,
+ .where(store: [nil, ObjectStorage::Store::LOCAL],
+ uploader: @uploader_class.to_s,
model_type: @model_class.base_class.sti_name)
end
end
diff --git a/spec/tasks/gitlab/uploads/migrate_rake_spec.rb b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb
index b778d26060d..53b1e45ba54 100644
--- a/spec/tasks/gitlab/uploads/migrate_rake_spec.rb
+++ b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb
@@ -20,9 +20,23 @@ describe 'gitlab:uploads:migrate rake tasks' do
run_rake_task("gitlab:uploads:migrate", *args)
end
- it 'enqueue jobs in batch' do
- expect(ObjectStorage::MigrateUploadsWorker).to receive(:enqueue!).exactly(4).times
+ shared_examples 'enqueue jobs in batch' do |batch:|
+ it do
+ expect(ObjectStorage::MigrateUploadsWorker)
+ .to receive(:perform_async).exactly(batch).times
+ .and_return("A fake job.")
- run
+ run
+ end
+ end
+
+ it_behaves_like 'enqueue jobs in batch', batch: 4
+
+ context 'Upload has store = nil' do
+ before do
+ Upload.where(model: projects).update_all(store: nil)
+ end
+
+ it_behaves_like 'enqueue jobs in batch', batch: 4
end
end