diff options
author | James Lopez <james@jameslopez.es> | 2018-01-26 11:14:54 +0100 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2018-01-26 15:26:26 +0100 |
commit | 7affc2311282a032722af245abb92f0bd2da8db9 (patch) | |
tree | 009e6dd2be7aaa8b72ca9c999c61de975e130ef0 | |
parent | 865bb64a06f33b1076d1b9a202cd41c7ad0728c5 (diff) | |
download | gitlab-ce-7affc2311282a032722af245abb92f0bd2da8db9.tar.gz |
add spec
-rw-r--r-- | app/models/project.rb | 1 | ||||
-rw-r--r-- | app/workers/repository_import_worker.rb | 1 | ||||
-rw-r--r-- | spec/workers/repository_import_worker_spec.rb | 13 |
3 files changed, 14 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 8a5895cea05..d0d0fd6e093 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -569,6 +569,7 @@ class Project < ActiveRecord::Base forked_from_project.repository_storage_path, forked_from_project.disk_path) elsif gitlab_project_import? + # Do not retry on Import/Export until https://gitlab.com/gitlab-org/gitlab-ce/issues/26189 is solved. RepositoryImportWorker.set(retry: false).perform_async(self.id) else RepositoryImportWorker.perform_async(self.id) diff --git a/app/workers/repository_import_worker.rb b/app/workers/repository_import_worker.rb index 1a8be9d9a93..d79b5ee5346 100644 --- a/app/workers/repository_import_worker.rb +++ b/app/workers/repository_import_worker.rb @@ -21,7 +21,6 @@ class RepositoryImportWorker return if service.async? if result[:status] == :error - fail_import(project, result[:message]) if project.gitlab_project_import? raise result[:message] diff --git a/spec/workers/repository_import_worker_spec.rb b/spec/workers/repository_import_worker_spec.rb index 7274a9f00f9..b8bdc049482 100644 --- a/spec/workers/repository_import_worker_spec.rb +++ b/spec/workers/repository_import_worker_spec.rb @@ -52,6 +52,19 @@ describe RepositoryImportWorker do end.to raise_error(StandardError, error) expect(project.reload.import_jid).not_to be_nil end + + it 'updates the error on Import/Export' do + error = %q{remote: Not Found fatal: repository 'https://user:pass@test.com/root/repoC.git/' not found } + + project.update_attributes(import_jid: '123', import_type: 'gitlab_project') + expect_any_instance_of(Projects::ImportService).to receive(:execute).and_return({ status: :error, message: error }) + + expect do + subject.perform(project.id) + end.to raise_error(StandardError, error) + + expect(project.reload.import_error).not_to be_nil + end end context 'when using an asynchronous importer' do |