diff options
author | James Lopez <james@jameslopez.es> | 2016-05-03 12:41:23 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-05-03 12:41:23 +0200 |
commit | 9d306eb132bf153a0c93dd870d3a098028f12384 (patch) | |
tree | a0e06d8538c26e95b725f808bfafa2334db8a0d5 /app | |
parent | 548c91e3c58d03d1e99c7945d14afe4abd605217 (diff) | |
download | gitlab-ce-9d306eb132bf153a0c93dd870d3a098028f12384.tar.gz |
picking stuff from ui related to import
Diffstat (limited to 'app')
-rw-r--r-- | app/models/project.rb | 10 | ||||
-rw-r--r-- | app/workers/project_impor_worker.rb | 25 |
2 files changed, 35 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index af62e8ecd90..3e782be637e 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -359,6 +359,16 @@ class Project < ActiveRecord::Base def visible_to_user(user) where(id: user.authorized_projects.select(:id).reorder(nil)) end + + def create_from_import_job(current_user_id:, tmp_file:, namespace_id:, project_path:) + job_id = ProjectImportWorker.perform_async(current_user_id, tmp_file, namespace_id, project_path) + + if job_id + Rails.logger.info "Import job started for export #{tmp_file} with job ID #{job_id}" + else + Rails.logger.error "Import job failed to start for #{tmp_file}" + end + end end def team diff --git a/app/workers/project_impor_worker.rb b/app/workers/project_impor_worker.rb new file mode 100644 index 00000000000..0ef353fa441 --- /dev/null +++ b/app/workers/project_impor_worker.rb @@ -0,0 +1,25 @@ +class ProjectImportWorker + include Sidekiq::Worker + include Gitlab::ShellAdapter + + sidekiq_options queue: :gitlab_shell, retry: false + + def perform(current_user_id, tmp_file, namespace_id, path) + current_user = User.find(current_user_id) + + project = Gitlab::ImportExport::ImportService.execute(archive_file: tmp_file, + owner: current_user, + namespace_id: namespace_id, + project_path: path) + + # TODO: Move this to import service + # if result[:status] == :error + # project.update(import_error: result[:message]) + # project.import_fail + # return + # end + + project.repository.after_import + project.import_finish + end +end
\ No newline at end of file |