summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2017-08-24 18:58:31 +0800
committerLin Jen-Shin <godfat@godfat.org>2017-08-24 18:58:31 +0800
commit932d32515a72bc80e021474100f677d954f3822e (patch)
tree61d8d1dec448a46ce6487c4d8f00b7aea823cab3
parent5c31c72048d418d88d59abbdb117ec5413eb5f83 (diff)
downloadgitlab-ce-932d32515a72bc80e021474100f677d954f3822e.tar.gz
Move to Projects::HousecleaningService
-rw-r--r--app/models/project.rb2
-rw-r--r--app/services/projects/housecleaning_service.rb40
-rw-r--r--app/services/projects/import_export/cleanup_service.rb42
-rw-r--r--spec/models/project_spec.rb10
-rw-r--r--spec/services/projects/housecleaning_service_spec.rb (renamed from spec/services/projects/import_export/cleanup_service_spec.rb)2
5 files changed, 47 insertions, 49 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 72da4e8eb2e..c0060504d74 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -372,7 +372,7 @@ class Project < ActiveRecord::Base
if Gitlab::ImportSources.importer_names.include?(project.import_type) && project.repo_exists?
project.run_after_commit do
begin
- Projects::ImportExport::CleanupService.new(project).execute
+ Projects::HousecleaningService.new(project).execute
rescue Projects::HousekeepingService::LeaseTaken => e
Rails.logger.info("Could not perform housekeeping for project #{project.full_path} (#{project.id}): #{e}")
end
diff --git a/app/services/projects/housecleaning_service.rb b/app/services/projects/housecleaning_service.rb
new file mode 100644
index 00000000000..d5cf8478e13
--- /dev/null
+++ b/app/services/projects/housecleaning_service.rb
@@ -0,0 +1,40 @@
+module Projects
+ class HousecleaningService
+ def self.reserved_refs_names
+ %w[heads tags merge-requests keep-around environments]
+ end
+
+ def self.reserved_refs_regexp
+ names = reserved_refs_names.map(&Regexp.method(:escape)).join('|')
+
+ %r{\Arefs/(?:#{names})/}
+ end
+
+ def initialize(project)
+ @project = project
+ end
+
+ # This could raise Projects::HousekeepingService::LeaseTaken
+ def execute
+ Projects::HousekeepingService.new(@project).execute do
+ garbage_refs.each(&rugged.references.method(:delete))
+ end
+ end
+
+ private
+
+ def garbage_refs
+ @garbage_refs ||= begin
+ reserved_refs_regexp = self.class.reserved_refs_regexp
+
+ rugged.references.reject do |ref|
+ ref.name =~ reserved_refs_regexp
+ end
+ end
+ end
+
+ def rugged
+ @rugged ||= @project.repository.rugged
+ end
+ end
+end
diff --git a/app/services/projects/import_export/cleanup_service.rb b/app/services/projects/import_export/cleanup_service.rb
deleted file mode 100644
index 25bff3468a9..00000000000
--- a/app/services/projects/import_export/cleanup_service.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-module Projects
- module ImportExport
- class CleanupService
- def self.reserved_refs_names
- %w[heads tags merge-requests keep-around environments]
- end
-
- def self.reserved_refs_regexp
- names = reserved_refs_names.map(&Regexp.method(:escape)).join('|')
-
- %r{\Arefs/(?:#{names})/}
- end
-
- def initialize(project)
- @project = project
- end
-
- # This could raise Projects::HousekeepingService::LeaseTaken
- def execute
- Projects::HousekeepingService.new(@project).execute do
- garbage_refs.each(&rugged.references.method(:delete))
- end
- end
-
- private
-
- def garbage_refs
- @garbage_refs ||= begin
- reserved_refs_regexp = self.class.reserved_refs_regexp
-
- rugged.references.reject do |ref|
- ref.name =~ reserved_refs_regexp
- end
- end
- end
-
- def rugged
- @rugged ||= @project.repository.rugged
- end
- end
- end
-end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 130c0739033..7631207b1d0 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1563,14 +1563,14 @@ describe Project do
describe 'project import state transitions' do
context 'state transition: [:started] => [:finished]' do
- let(:cleanup_service) { spy(:cleanup_service) }
+ let(:housecleaning_service) { spy(:housecleaning_service) }
let(:housekeeping_service) { spy(:housekeeping_service) }
before do
- allow(Projects::ImportExport::CleanupService)
- .to receive(:new) { cleanup_service }
+ allow(Projects::HousecleaningService)
+ .to receive(:new) { housecleaning_service }
- allow(cleanup_service)
+ allow(housecleaning_service)
.to receive(:execute) { housekeeping_service.execute }
allow(Projects::HousekeepingService)
@@ -1589,7 +1589,7 @@ describe Project do
project.import_finish
- expect(cleanup_service).to have_received(:execute)
+ expect(housecleaning_service).to have_received(:execute)
expect(housekeeping_service).to have_received(:execute)
end
diff --git a/spec/services/projects/import_export/cleanup_service_spec.rb b/spec/services/projects/housecleaning_service_spec.rb
index 108d0ea2ecc..3dd7906dc9a 100644
--- a/spec/services/projects/import_export/cleanup_service_spec.rb
+++ b/spec/services/projects/housecleaning_service_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-describe Projects::ImportExport::CleanupService do
+describe Projects::HousecleaningService do
subject { described_class.new(project) }
let(:project) { create(:project, :repository) }