diff --git a/app/controllers/katello/api/v2/content_uploads_controller.rb b/app/controllers/katello/api/v2/content_uploads_controller.rb index 024f43bca7f..f792139896b 100644 --- a/app/controllers/katello/api/v2/content_uploads_controller.rb +++ b/app/controllers/katello/api/v2/content_uploads_controller.rb @@ -33,8 +33,9 @@ def create param :offset, :number, :required => true, :desc => N_("The offset in the file where the content starts") param :content, File, :required => true, :desc => N_("The actual file contents") def update + content = params[:content].respond_to?(:read) ? params[:content].read : params[:content] @repository.backend_content_service(::SmartProxy.pulp_primary) - .upload_chunk(params[:id], params[:offset], params[:content], params[:size]) + .upload_chunk(params[:id], params[:offset], content, params[:size]) head :no_content end diff --git a/test/controllers/api/v2/content_uploads_controller_test.rb b/test/controllers/api/v2/content_uploads_controller_test.rb index f917920272e..8bcae2c8de5 100644 --- a/test/controllers/api/v2/content_uploads_controller_test.rb +++ b/test/controllers/api/v2/content_uploads_controller_test.rb @@ -79,6 +79,18 @@ def test_update assert_response :success end + def test_update_file + id = '1' + offset = '0' + test_document = File.join(Engine.root, "test", "fixtures", "files", "puppet_module.tar.gz") + content = Rack::Test::UploadedFile.new(test_document, '') + file_content = File.read(test_document) + @repo.backend_content_service(SmartProxy.pulp_primary).expects(:upload_chunk).with(id, offset, file_content, nil) + put :update, params: { :id => id, :offset => offset, :content => content, :repository_id => @repo.id } + + assert_response :success + end + def test_update_protected allowed_perms = [@update_permission] denied_perms = [@read_permission, @create_permission, @destroy_permission]