Merge branch 'rs-projects-destroy-service-parity' into 'master'
Bring CE-EE parity to app/services/projects/destroy_service.rb See merge request gitlab-org/gitlab-ce!19111
This commit is contained in:
commit
e73b71ec9c
1 changed files with 16 additions and 3 deletions
|
@ -51,11 +51,11 @@ module Projects
|
|||
|
||||
flush_caches(@project)
|
||||
|
||||
unless mv_repository(removal_path(repo_path), repo_path)
|
||||
unless rollback_repository(removal_path(repo_path), repo_path)
|
||||
raise_error('Failed to restore project repository. Please contact the administrator.')
|
||||
end
|
||||
|
||||
unless mv_repository(removal_path(wiki_path), wiki_path)
|
||||
unless rollback_repository(removal_path(wiki_path), wiki_path)
|
||||
raise_error('Failed to restore wiki repository. Please contact the administrator.')
|
||||
end
|
||||
end
|
||||
|
@ -84,6 +84,9 @@ module Projects
|
|||
# Skip repository removal. We use this flag when remove user or group
|
||||
return true if params[:skip_repo] == true
|
||||
|
||||
# There is a possibility project does not have repository or wiki
|
||||
return true unless repo_exists?(path)
|
||||
|
||||
new_path = removal_path(path)
|
||||
|
||||
if mv_repository(path, new_path)
|
||||
|
@ -98,8 +101,18 @@ module Projects
|
|||
end
|
||||
end
|
||||
|
||||
def mv_repository(from_path, to_path)
|
||||
def rollback_repository(old_path, new_path)
|
||||
# There is a possibility project does not have repository or wiki
|
||||
return true unless repo_exists?(old_path)
|
||||
|
||||
mv_repository(old_path, new_path)
|
||||
end
|
||||
|
||||
def repo_exists?(path)
|
||||
gitlab_shell.exists?(project.repository_storage, path + '.git')
|
||||
end
|
||||
|
||||
def mv_repository(from_path, to_path)
|
||||
return true unless gitlab_shell.exists?(project.repository_storage, from_path + '.git')
|
||||
|
||||
gitlab_shell.mv_repository(project.repository_storage, from_path, to_path)
|
||||
|
|
Loading…
Reference in a new issue