diff options
author | Vinnie Okada <vokada@mrvinn.com> | 2014-10-22 21:08:19 -0500 |
---|---|---|
committer | Vinnie Okada <vokada@mrvinn.com> | 2014-10-22 21:08:19 -0500 |
commit | 41518a467dcef61deca24ad2f6205c6fd5706e1b (patch) | |
tree | b156d517ab5e27cc789078b23805465a5bc1739e | |
parent | 68b5ac7f185b9b30cd862eacf806db726d8ce6e4 (diff) | |
download | gitlab-ce-41518a467dcef61deca24ad2f6205c6fd5706e1b.tar.gz |
Remove :keep_repo option
Always delete repositories from the filesystem when deleting a project.
-rw-r--r-- | app/controllers/projects_controller.rb | 3 | ||||
-rw-r--r-- | app/services/projects/destroy_service.rb | 13 | ||||
-rw-r--r-- | lib/api/projects.rb | 8 | ||||
-rw-r--r-- | spec/requests/api/projects_spec.rb | 10 |
4 files changed, 7 insertions, 27 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index c881c921ce9..b3380a6ff23 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -100,8 +100,7 @@ class ProjectsController < ApplicationController def destroy return access_denied! unless can?(current_user, :remove_project, project) - ::Projects::DestroyService.new(@project, current_user, - keep_repo: params[:keep_repo]).execute + ::Projects::DestroyService.new(@project, current_user, {}).execute respond_to do |format| format.html do diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb index 7c7892a0b14..7e1d753b021 100644 --- a/app/services/projects/destroy_service.rb +++ b/app/services/projects/destroy_service.rb @@ -6,10 +6,7 @@ module Projects project.team.truncate project.repository.expire_cache unless project.empty_repo? - result = project.destroy - return false unless result - - unless params[:keep_repo] + if project.destroy GitlabShellWorker.perform_async( :remove_repository, project.path_with_namespace @@ -21,11 +18,11 @@ module Projects ) project.satellite.destroy - end - log_info("Project \"#{project.name}\" was removed") - system_hook_service.execute_hooks_for(project, :destroy) - result + log_info("Project \"#{project.name}\" was removed") + system_hook_service.execute_hooks_for(project, :destroy) + true + end end end end diff --git a/lib/api/projects.rb b/lib/api/projects.rb index e70548d1e85..7fcf97d1ad6 100644 --- a/lib/api/projects.rb +++ b/lib/api/projects.rb @@ -174,17 +174,11 @@ module API # # Parameters: # id (required) - The ID of a project - # keep_repo (optional) - If true, then delete the project from the - # database but keep the repo, wiki, and satellite on disk. # Example Request: # DELETE /projects/:id delete ":id" do authorize! :remove_project, user_project - ::Projects::DestroyService.new( - user_project, - current_user, - keep_repo: params[:keep_repo] - ).execute + ::Projects::DestroyService.new(user_project, current_user, {}).execute end # Mark this project as forked from another diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 6de37cff0aa..ba7ec7b2be9 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -641,16 +641,6 @@ describe API::API, api: true do response.status.should == 200 end - it 'should keep repo when "keep_repo" param is true' do - expect(GitlabShellWorker).not_to( - receive(:perform_async).with(:remove_repository, - /#{project.path_with_namespace}/) - ) - - delete api("/projects/#{project.id}?keep_repo=true", user) - response.status.should == 200 - end - it "should not remove a project if not an owner" do user3 = create(:user) project.team << [user3, :developer] |