Merge branch 'sh-fix-import-repos' into 'master'
Fix gitlab-rake gitlab:import:repos task Closes #37682 See merge request gitlab-org/gitlab-ce!14597
This commit is contained in:
commit
95f613837d
|
@ -72,6 +72,7 @@ class Project < ActiveRecord::Base
|
||||||
attr_accessor :old_path_with_namespace
|
attr_accessor :old_path_with_namespace
|
||||||
attr_accessor :template_name
|
attr_accessor :template_name
|
||||||
attr_writer :pipeline_status
|
attr_writer :pipeline_status
|
||||||
|
attr_accessor :skip_disk_validation
|
||||||
|
|
||||||
alias_attribute :title, :name
|
alias_attribute :title, :name
|
||||||
|
|
||||||
|
@ -227,7 +228,7 @@ class Project < ActiveRecord::Base
|
||||||
validates :import_url, importable_url: true, if: [:external_import?, :import_url_changed?]
|
validates :import_url, importable_url: true, if: [:external_import?, :import_url_changed?]
|
||||||
validates :star_count, numericality: { greater_than_or_equal_to: 0 }
|
validates :star_count, numericality: { greater_than_or_equal_to: 0 }
|
||||||
validate :check_limit, on: :create
|
validate :check_limit, on: :create
|
||||||
validate :can_create_repository?, on: [:create, :update], if: ->(project) { !project.persisted? || project.renamed? }
|
validate :check_repository_path_availability, on: [:create, :update], if: ->(project) { !project.persisted? || project.renamed? }
|
||||||
validate :avatar_type,
|
validate :avatar_type,
|
||||||
if: ->(project) { project.avatar.present? && project.avatar_changed? }
|
if: ->(project) { project.avatar.present? && project.avatar_changed? }
|
||||||
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
|
validates :avatar, file_size: { maximum: 200.kilobytes.to_i }
|
||||||
|
@ -1018,7 +1019,8 @@ class Project < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
# Check if repository already exists on disk
|
# Check if repository already exists on disk
|
||||||
def can_create_repository?
|
def check_repository_path_availability
|
||||||
|
return true if skip_disk_validation
|
||||||
return false unless repository_storage_path
|
return false unless repository_storage_path
|
||||||
|
|
||||||
expires_full_path_cache # we need to clear cache to validate renames correctly
|
expires_full_path_cache # we need to clear cache to validate renames correctly
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Fix gitlab-rake gitlab:import:repos task failing
|
||||||
|
merge_request:
|
||||||
|
author:
|
||||||
|
type: fixed
|
|
@ -56,7 +56,8 @@ module Gitlab
|
||||||
name: project_path,
|
name: project_path,
|
||||||
path: project_path,
|
path: project_path,
|
||||||
repository_storage: storage_name,
|
repository_storage: storage_name,
|
||||||
namespace_id: group&.id
|
namespace_id: group&.id,
|
||||||
|
skip_disk_validation: true
|
||||||
}
|
}
|
||||||
|
|
||||||
project = Projects::CreateService.new(user, project_params).execute
|
project = Projects::CreateService.new(user, project_params).execute
|
||||||
|
|
|
@ -2793,6 +2793,17 @@ describe Project do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#check_repository_path_availability' do
|
||||||
|
let(:project) { build(:project) }
|
||||||
|
|
||||||
|
it 'skips gitlab-shell exists?' do
|
||||||
|
project.skip_disk_validation = true
|
||||||
|
|
||||||
|
expect(project.gitlab_shell).not_to receive(:exists?)
|
||||||
|
expect(project.check_repository_path_availability).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#latest_successful_pipeline_for_default_branch' do
|
describe '#latest_successful_pipeline_for_default_branch' do
|
||||||
let(:project) { build(:project) }
|
let(:project) { build(:project) }
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,15 @@ describe Projects::CreateService, '#execute' do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when skip_disk_validation is used' do
|
||||||
|
it 'sets the project attribute' do
|
||||||
|
opts[:skip_disk_validation] = true
|
||||||
|
project = create_project(user, opts)
|
||||||
|
|
||||||
|
expect(project.skip_disk_validation).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def create_project(user, opts)
|
def create_project(user, opts)
|
||||||
Projects::CreateService.new(user, opts).execute
|
Projects::CreateService.new(user, opts).execute
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue