summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinnie Okada <vokada@mrvinn.com>2014-10-22 21:08:19 -0500
committerVinnie Okada <vokada@mrvinn.com>2014-10-22 21:08:19 -0500
commit41518a467dcef61deca24ad2f6205c6fd5706e1b (patch)
treeb156d517ab5e27cc789078b23805465a5bc1739e
parent68b5ac7f185b9b30cd862eacf806db726d8ce6e4 (diff)
downloadgitlab-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.rb3
-rw-r--r--app/services/projects/destroy_service.rb13
-rw-r--r--lib/api/projects.rb8
-rw-r--r--spec/requests/api/projects_spec.rb10
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]