Skip to content
Snippets Groups Projects
Commit 9bb7abed authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Fix file_store for artifacts and lfs when saving

parent 9267ef0b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -77,8 +77,7 @@ class Projects::LfsStorageController < Projects::GitHttpClientController
 
def link_to_project!(object)
if object && !object.projects.exists?(storage_project.id)
object.projects << storage_project
object.save!
object.lfs_objects_projects.create!(project: storage_project)
end
end
end
Loading
Loading
@@ -13,7 +13,7 @@ module Ci
after_save :update_project_statistics_after_save, if: :size_changed?
after_destroy :update_project_statistics_after_destroy, unless: :project_destroyed?
 
after_save :update_file_store
after_save :update_file_store, if: :file_changed?
 
scope :with_files_stored_locally, -> { where(file_store: [nil, ::JobArtifactUploader::Store::LOCAL]) }
 
Loading
Loading
Loading
Loading
@@ -11,7 +11,7 @@ class LfsObject < ActiveRecord::Base
 
mount_uploader :file, LfsObjectUploader
 
after_save :update_file_store
after_save :update_file_store, if: :file_changed?
 
def update_file_store
# The file.object_store is set during `uploader.store!`
Loading
Loading
---
title: Fix file_store for artifacts and lfs when saving
merge_request:
author:
type: fixed
Loading
Loading
@@ -54,9 +54,9 @@ describe Projects::RawController do
end
 
context 'and lfs uses object storage' do
let(:lfs_object) { create(:lfs_object, :with_file, oid: '91eff75a492a3ed0dfcb544d7f31326bc4014c8551849c192fd1e48d4dd2c897', size: '1575078') }
before do
lfs_object.file = fixture_file_upload(Rails.root + "spec/fixtures/dk.png", "`/png")
lfs_object.save!
stub_lfs_object_storage
lfs_object.file.migrate!(LfsObjectUploader::Store::REMOTE)
end
Loading
Loading
Loading
Loading
@@ -62,9 +62,7 @@ describe LfsObject do
.with('LfsObjectUploader', described_class.name, :file, kind_of(Numeric))
.once
 
lfs_object = create(:lfs_object)
lfs_object.file = fixture_file_upload(Rails.root + "spec/fixtures/dk.png", "`/png")
lfs_object.save!
create(:lfs_object, :with_file)
end
end
end
Loading
Loading
Loading
Loading
@@ -123,11 +123,13 @@ describe Projects::UpdatePagesService do
expect(execute).not_to eq(:success)
end
 
it 'fails for empty file fails' do
build.job_artifacts_archive.update_attributes(file: empty_file)
context 'when using empty file' do
let(:file) { empty_file }
 
expect { execute }
.to raise_error(Projects::UpdatePagesService::FailedToExtractError)
it 'fails to extract' do
expect { execute }
.to raise_error(Projects::UpdatePagesService::FailedToExtractError)
end
end
 
context 'when timeout happens by DNS error' do
Loading
Loading
Loading
Loading
@@ -46,8 +46,7 @@ describe LfsObjectUploader do
end
 
describe 'remote file' do
let(:remote) { described_class::Store::REMOTE }
let(:lfs_object) { create(:lfs_object, file_store: remote) }
let(:lfs_object) { create(:lfs_object, :object_storage, :with_file) }
 
context 'with object storage enabled' do
before do
Loading
Loading
@@ -57,16 +56,11 @@ describe LfsObjectUploader do
it 'can store file remotely' do
allow(ObjectStorage::BackgroundMoveWorker).to receive(:perform_async)
 
store_file(lfs_object)
lfs_object
 
expect(lfs_object.file_store).to eq remote
expect(lfs_object.file_store).to eq(described_class::Store::REMOTE)
expect(lfs_object.file.path).not_to be_blank
end
end
end
def store_file(lfs_object)
lfs_object.file = fixture_file_upload(Rails.root.join("spec/fixtures/dk.png"), "`/png")
lfs_object.save!
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment