summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2018-01-26 11:14:54 +0100
committerJames Lopez <james@jameslopez.es>2018-01-26 15:26:26 +0100
commit7affc2311282a032722af245abb92f0bd2da8db9 (patch)
tree009e6dd2be7aaa8b72ca9c999c61de975e130ef0
parent865bb64a06f33b1076d1b9a202cd41c7ad0728c5 (diff)
downloadgitlab-ce-7affc2311282a032722af245abb92f0bd2da8db9.tar.gz
add spec
-rw-r--r--app/models/project.rb1
-rw-r--r--app/workers/repository_import_worker.rb1
-rw-r--r--spec/workers/repository_import_worker_spec.rb13
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