diff options
author | Tiago Botelho <tiagonbotelho@hotmail.com> | 2018-11-27 12:41:27 +0300 |
---|---|---|
committer | Tiago Botelho <tiagonbotelho@hotmail.com> | 2018-11-27 15:58:13 +0300 |
commit | 4bd8a427d4e8127f1badc7365b35702472918956 (patch) | |
tree | d8e64bd046f35b64ad6f88bdd062e1e8f364c327 /app/workers | |
parent | d3f033d69cec33e8058ee9f029718882990175b0 (diff) |
Removes all the irrelevant import related code and columns
Clears the import related columns and code from the Project
model over to the ProjectImportState model
Diffstat (limited to 'app/workers')
10 files changed, 23 insertions, 26 deletions
diff --git a/app/workers/concerns/gitlab/github_import/stage_methods.rb b/app/workers/concerns/gitlab/github_import/stage_methods.rb index 59e6bc2c97d..e2dee315cde 100644 --- a/app/workers/concerns/gitlab/github_import/stage_methods.rb +++ b/app/workers/concerns/gitlab/github_import/stage_methods.rb @@ -24,7 +24,7 @@ module Gitlab def find_project(id) # If the project has been marked as failed we want to bail out # automatically. - Project.import_started.find_by(id: id) + Project.joins_import_state.where(import_state: { status: :started }).find_by(id: id) end # rubocop: enable CodeReuse/ActiveRecord end diff --git a/app/workers/concerns/project_import_options.rb b/app/workers/concerns/project_import_options.rb index 22bdf441d6b..2baf768bfd1 100644 --- a/app/workers/concerns/project_import_options.rb +++ b/app/workers/concerns/project_import_options.rb @@ -18,7 +18,7 @@ module ProjectImportOptions "import" end - project.mark_import_as_failed("Every #{action} attempt has failed: #{job['error_message']}. Please try again.") + project.import_state.mark_as_failed(_("Every %{action} attempt has failed: %{job_error_message}. Please try again.") % { action: action, job_error_message: job['error_message'] }) Sidekiq.logger.warn "Failed #{job['class']} with #{job['args']}: #{job['error_message']}" end end diff --git a/app/workers/concerns/project_start_import.rb b/app/workers/concerns/project_start_import.rb index 46a133db2a1..4462bc51a24 100644 --- a/app/workers/concerns/project_start_import.rb +++ b/app/workers/concerns/project_start_import.rb @@ -2,11 +2,11 @@ # Used in EE by mirroring module ProjectStartImport - def start(project) - if project.import_started? && project.import_jid == self.jid + def start(import_state) + if import_state.started? && import_state.jid == self.jid return true end - project.import_start + import_state.start end end diff --git a/app/workers/gitlab/github_import/advance_stage_worker.rb b/app/workers/gitlab/github_import/advance_stage_worker.rb index 2b49860025a..0b3437a8a33 100644 --- a/app/workers/gitlab/github_import/advance_stage_worker.rb +++ b/app/workers/gitlab/github_import/advance_stage_worker.rb @@ -31,7 +31,7 @@ module Gitlab # next_stage - The name of the next stage to start when all jobs have been # completed. def perform(project_id, waiters, next_stage) - return unless (project = find_project(project_id)) + return unless import_state = find_import_state(project_id) new_waiters = wait_for_jobs(waiters) @@ -41,7 +41,7 @@ module Gitlab # the pressure on Redis. We _only_ do this once all jobs are done so # we don't get stuck forever if one or more jobs failed to notify the # JobWaiter. - project.refresh_import_jid_expiration + import_state.refresh_jid_expiration STAGES.fetch(next_stage.to_sym).perform_async(project_id) else @@ -64,11 +64,8 @@ module Gitlab end # rubocop: disable CodeReuse/ActiveRecord - def find_project(id) - # TODO: Only select the JID - # This is due to the fact that the JID could be present in either the project record or - # its associated import_state record - Project.import_started.find_by(id: id) + def find_import_state(project_id) + ProjectImportState.select(:jid).with_status(:started).find_by(project_id: project_id) end # rubocop: enable CodeReuse/ActiveRecord end diff --git a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb index 65473026b4c..76723e4a61f 100644 --- a/app/workers/gitlab/github_import/refresh_import_jid_worker.rb +++ b/app/workers/gitlab/github_import/refresh_import_jid_worker.rb @@ -16,12 +16,13 @@ module Gitlab # project_id - The ID of the project that is being imported. # check_job_id - The ID of the job for which to check the status. def perform(project_id, check_job_id) - return unless (project = find_project(project_id)) + import_state = find_import_state(project_id) + return unless import_state if SidekiqStatus.running?(check_job_id) # As long as the repository is being cloned we want to keep refreshing # the import JID status. - project.refresh_import_jid_expiration + import_state.refresh_jid_expiration self.class.perform_in_the_future(project_id, check_job_id) end @@ -31,11 +32,10 @@ module Gitlab end # rubocop: disable CodeReuse/ActiveRecord - def find_project(id) - # TODO: Only select the JID - # This is due to the fact that the JID could be present in either the project record or - # its associated import_state record - Project.import_started.find_by(id: id) + def find_import_state(project_id) + ProjectImportState.select(:jid) + .with_status(:started) + .find_by(project_id: project_id) end # rubocop: enable CodeReuse/ActiveRecord end diff --git a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb index 5726fbb573d..ccfed2ae187 100644 --- a/app/workers/gitlab/github_import/stage/import_base_data_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_base_data_worker.rb @@ -23,7 +23,7 @@ module Gitlab klass.new(project, client).execute end - project.refresh_import_jid_expiration + project.import_state.refresh_jid_expiration ImportPullRequestsWorker.perform_async(project.id) end diff --git a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb index 1c5a7139802..37a7a7f4ba0 100644 --- a/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb +++ b/app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb @@ -15,7 +15,7 @@ module Gitlab .new(project, client) .execute - project.refresh_import_jid_expiration + project.import_state.refresh_jid_expiration AdvanceStageWorker.perform_async( project.id, diff --git a/app/workers/repository_fork_worker.rb b/app/workers/repository_fork_worker.rb index 68ec66e8499..7eae07d3f6b 100644 --- a/app/workers/repository_fork_worker.rb +++ b/app/workers/repository_fork_worker.rb @@ -12,7 +12,7 @@ class RepositoryForkWorker source_project = target_project.forked_from_project unless source_project - return target_project.mark_import_as_failed('Source project cannot be found.') + return target_project.import_state.mark_as_failed(_('Source project cannot be found.')) end fork_repository(target_project, source_project.repository_storage, source_project.disk_path) @@ -33,7 +33,7 @@ class RepositoryForkWorker end def start_fork(project) - return true if start(project) + return true if start(project.import_state) Rails.logger.info("Project #{project.full_path} was in inconsistent state (#{project.import_status}) while forking.") false diff --git a/app/workers/repository_import_worker.rb b/app/workers/repository_import_worker.rb index 82189a3c9f5..59691f48a39 100644 --- a/app/workers/repository_import_worker.rb +++ b/app/workers/repository_import_worker.rb @@ -34,14 +34,14 @@ class RepositoryImportWorker attr_reader :project def start_import - return true if start(project) + return true if start(project.import_state) Rails.logger.info("Project #{project.full_path} was in inconsistent state (#{project.import_status}) while importing.") false end def fail_import(message) - project.mark_import_as_failed(message) + project.import_state.mark_as_failed(message) end def template_import? diff --git a/app/workers/stuck_import_jobs_worker.rb b/app/workers/stuck_import_jobs_worker.rb index 667a4121131..c8a186ba4ce 100644 --- a/app/workers/stuck_import_jobs_worker.rb +++ b/app/workers/stuck_import_jobs_worker.rb @@ -63,6 +63,6 @@ class StuckImportJobsWorker # rubocop: enable CodeReuse/ActiveRecord def error_message - "Import timed out. Import took longer than #{IMPORT_JOBS_EXPIRATION} seconds" + _("Import timed out. Import took longer than %{import_jobs_expiration} seconds") % { import_jobs_expiration: IMPORT_JOBS_EXPIRATION } end end |