Commit 46b89a27 authored by James Lopez's avatar James Lopez

Fix tmp file being deleted after the request plus some cleanup and improved...

Fix tmp file being deleted after the request plus some cleanup and improved erroring for this situation
parent 4477dc24
......@@ -19,6 +19,7 @@ v 8.9.1
- Fix 404 when accessing pipelines as guest user on public projects
- Fix mobile Safari bug where horizontal nav arrows would flicker on scroll
- Fix in auto merge when pipeline is nil
- Fix GitLab import project deleting imported file straight after being uploaded
v 8.9.0
- Fix builds API response not including commit data
......
......@@ -12,9 +12,13 @@ class Import::GitlabProjectsController < Import::BaseController
return redirect_back_or_default(options: { alert: "You need to upload a GitLab project export archive." })
end
imported_file = params[:file].path + "-import"
FileUtils.copy_entry(params[:file].path, imported_file)
@project = Gitlab::ImportExport::ProjectCreator.new(project_params[:namespace_id],
current_user,
File.expand_path(project_params[:file].path),
File.expand_path(imported_file),
project_params[:path]).execute
if @project.saved?
......
......@@ -23,7 +23,11 @@ module Gitlab
private
def decompress_archive
untar_zxf(archive: @archive_file, dir: @shared.export_path)
result = untar_zxf(archive: @archive_file, dir: @shared.export_path)
raise Projects::ImportService::Error.new("Unable to decompress #{@archive_file} into #{@shared.export_path}") unless result
true
end
end
end
......
......@@ -10,17 +10,22 @@ module Gitlab
end
def execute
Gitlab::ImportExport::FileImporter.import(archive_file: @archive_file,
shared: @shared)
if check_version! && [project_tree, repo_restorer, wiki_restorer, uploads_restorer].all?(&:restore)
if import_file && check_version! && [project_tree, repo_restorer, wiki_restorer, uploads_restorer].all?(&:restore)
project_tree.restored_project
else
raise Projects::ImportService::Error.new(@shared.errors.join(', '))
end
remove_import_file
end
private
def import_file
Gitlab::ImportExport::FileImporter.import(archive_file: @archive_file,
shared: @shared)
end
def check_version!
Gitlab::ImportExport::VersionChecker.check!(shared: @shared)
end
......@@ -59,6 +64,10 @@ module Gitlab
def wiki_repo_path
File.join(@shared.export_path, 'project.wiki.bundle')
end
def remove_import_file
FileUtils.rm_rf(@archive_file)
end
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment