diff --git a/app/models/storage/hashed_project.rb b/app/models/storage/hashed_project.rb index 1a10e0e59a8..fae1b64961a 100644 --- a/app/models/storage/hashed_project.rb +++ b/app/models/storage/hashed_project.rb @@ -1,7 +1,9 @@ module Storage class HashedProject attr_accessor :project - delegate :namespace, :gitlab_shell, :repository_storage_path, to: :project + delegate :gitlab_shell, :repository_storage_path, to: :project + + ROOT_PATH_PREFIX = '@hashed'.freeze def initialize(project) @project = project @@ -11,7 +13,7 @@ module Storage # # @return [String] directory where repository is stored def base_dir - "#{disk_hash[0..1]}/#{disk_hash[2..3]}" if disk_hash + "#{ROOT_PATH_PREFIX}/#{disk_hash[0..1]}/#{disk_hash[2..3]}" if disk_hash end # Disk path is used to build repository and project's wiki path on disk diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 6b646393696..c7d2f2063af 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -2413,13 +2413,13 @@ describe Project do describe '#base_dir' do it 'returns base_dir based on hash of project id' do - expect(project.base_dir).to eq('6b/86') + expect(project.base_dir).to eq('@hashed/6b/86') end end describe '#disk_path' do it 'returns disk_path based on hash of project id' do - hashed_path = '6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b' + hashed_path = '@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b' expect(project.disk_path).to eq(hashed_path) end @@ -2427,7 +2427,7 @@ describe Project do describe '#ensure_storage_path_exists' do it 'delegates to gitlab_shell to ensure namespace is created' do - expect(gitlab_shell).to receive(:add_namespace).with(project.repository_storage_path, '6b/86') + expect(gitlab_shell).to receive(:add_namespace).with(project.repository_storage_path, '@hashed/6b/86') project.ensure_storage_path_exists end