Skip to content
Snippets Groups Projects
Unverified Commit a53a4a43 authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg
Browse files

Remove direct disk access in RemoveDotGitFromUsernames

Prior to this change, the migration touched the disk path. This has been
removed.

Further, I believe it also fixes a bug. It seems that GitLab Shell
checks if the root path exists, when the path is duplicated. For
example, if the shard is located at /home/git, it did check if
`/home/git/home/git` existed.
parent cfbb256b
No related branches found
No related tags found
1 merge request!10495Merge Requests - Assignee
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class RemoveDotGitFromUsernames < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
include Gitlab::ShellAdapter
 
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
 
def up
Loading
Loading
@@ -64,16 +60,14 @@ class RemoveDotGitFromUsernames < ActiveRecord::Migration
# we rename suffix instead of removing it
path = path.sub(/\.git\z/, '_git')
 
Gitlab::GitalyClient::StorageSettings.allow_disk_access do
check_routes(path.dup, 0, path)
end
check_routes(path.dup, 0, path)
end
 
def check_routes(base, counter, path)
route_exists = route_exists?(path)
 
Gitlab.config.repositories.storages.each do |shard, storage|
if route_exists || path_exists?(shard, storage.legacy_disk_path)
Gitlab.config.repositories.storages.each do |shard, _storage|
if route_exists || path_exists?(shard, path)
counter += 1
path = "#{base}#{counter}"
 
Loading
Loading
Loading
Loading
@@ -27,7 +27,7 @@ describe MigrateProcessCommitWorkerJobs do
end
 
describe '#repository' do
it 'returns a Rugged::Repository' do
it 'returns a mock implemention of ::Repository' do
migration_project = described_class::Project
.find_including_path(project.id)
 
Loading
Loading
@@ -83,11 +83,7 @@ describe MigrateProcessCommitWorkerJobs do
end
 
it 'encodes data to UTF-8' do
allow_any_instance_of(Rugged::Repository).to receive(:lookup)
.with(commit.id)
.and_return(commit)
allow(commit).to receive(:message)
allow(commit).to receive(:body)
.and_return('김치'.force_encoding('BINARY'))
 
migration.up
Loading
Loading
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