diff options
author | James Lopez <james@jameslopez.es> | 2018-07-11 14:52:48 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2018-07-11 14:52:48 +0200 |
commit | 3c31de752027abfb247efc5c588496d329e5b47b (patch) | |
tree | 0489dff433ac3fd8f5b65d8e20fcb04a1c3e4238 | |
parent | 414939c97ce8a14e78d88db06f7378e98bea42a3 (diff) | |
download | gitlab-ce-3c31de752027abfb247efc5c588496d329e5b47b.tar.gz |
refactor uploads manager
-rw-r--r-- | app/services/upload_service.rb | 6 | ||||
-rw-r--r-- | lib/gitlab/import_export/uploads_manager.rb | 11 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/uploads_manager_spec.rb | 4 |
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) |