summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2018-07-11 14:52:48 +0200
committerJames Lopez <james@jameslopez.es>2018-07-11 14:52:48 +0200
commit3c31de752027abfb247efc5c588496d329e5b47b (patch)
tree0489dff433ac3fd8f5b65d8e20fcb04a1c3e4238
parent414939c97ce8a14e78d88db06f7378e98bea42a3 (diff)
downloadgitlab-ce-3c31de752027abfb247efc5c588496d329e5b47b.tar.gz
refactor uploads manager
-rw-r--r--app/services/upload_service.rb6
-rw-r--r--lib/gitlab/import_export/uploads_manager.rb11
-rw-r--r--spec/lib/gitlab/import_export/uploads_manager_spec.rb4
3 files changed, 13 insertions, 8 deletions
diff --git a/app/services/upload_service.rb b/app/services/upload_service.rb
index d5a9b344905..8e20512cd61 100644
--- a/app/services/upload_service.rb
+++ b/app/services/upload_service.rb
@@ -1,12 +1,12 @@
class UploadService
- def initialize(model, file, uploader_class = FileUploader)
- @model, @file, @uploader_class = model, file, uploader_class
+ def initialize(model, file, uploader_class = FileUploader, **uploader_context)
+ @model, @file, @uploader_class, @uploader_context = model, file, uploader_class, uploader_context
end
def execute
return nil unless @file && @file.size <= max_attachment_size
- uploader = @uploader_class.new(@model)
+ uploader = @uploader_class.new(@model, nil, @uploader_context)
uploader.store!(@file)
uploader.to_h
diff --git a/lib/gitlab/import_export/uploads_manager.rb b/lib/gitlab/import_export/uploads_manager.rb
index c968deb6b19..b1ea7f19068 100644
--- a/lib/gitlab/import_export/uploads_manager.rb
+++ b/lib/gitlab/import_export/uploads_manager.rb
@@ -29,10 +29,15 @@ module Gitlab
Dir["#{uploads_export_path}/**/*"].each do |upload|
next if File.directory?(upload)
- UploadService.new(@project, File.open(upload, 'r'), FileUploader).execute
- end
+ secret, identifier = upload.split('/').last(2)
- true
+ uploader_context = {
+ secret: secret,
+ identifier: identifier
+ }
+
+ UploadService.new(@project, File.open(upload, 'r'), FileUploader, uploader_context).execute
+ end
rescue => e
@shared.error(e)
false
diff --git a/spec/lib/gitlab/import_export/uploads_manager_spec.rb b/spec/lib/gitlab/import_export/uploads_manager_spec.rb
index ffb8d140f32..922f6f6376c 100644
--- a/spec/lib/gitlab/import_export/uploads_manager_spec.rb
+++ b/spec/lib/gitlab/import_export/uploads_manager_spec.rb
@@ -48,7 +48,7 @@ describe Gitlab::ImportExport::UploadsManager do
stub_uploads_object_storage(FileUploader)
end
- it 'downloads the file to include in an archive' do
+ it 'saves the file' do
fake_uri = double
expect(fake_uri).to receive(:open).and_return(StringIO.new('File content'))
@@ -70,7 +70,7 @@ describe Gitlab::ImportExport::UploadsManager do
FileUtils.touch(File.join(shared.export_path, 'uploads/random', "dummy.txt"))
end
- it 'downloads the file to include in an archive' do
+ it 'restores the file' do
manager.restore
expect(project.uploads.size).to eq(1)