Commit 3dc74378 authored by Michael Kozono's avatar Michael Kozono

Allow individual failures

parent 1bae010b
...@@ -97,28 +97,18 @@ module Gitlab ...@@ -97,28 +97,18 @@ module Gitlab
end end
def uploader def uploader
PATH_PATTERNS.each do |path_pattern_map| matching_pattern_map[:uploader]
if path_relative_to_upload_dir.match(path_pattern_map[:pattern])
return path_pattern_map[:uploader]
end
end
end end
def model_type def model_type
PATH_PATTERNS.each do |path_pattern_map| matching_pattern_map[:model_type]
if path_relative_to_upload_dir.match(path_pattern_map[:pattern])
return path_pattern_map[:model_type]
end
end
end end
def model_id def model_id
PATH_PATTERNS.each do |path_pattern_map| matchd = path_relative_to_upload_dir.match(matching_pattern_map[:pattern])
matchd = path_relative_to_upload_dir.match(path_pattern_map[:pattern])
# If something is captured (matchd[1] is not nil), it is a model_id # If something is captured (matchd[1] is not nil), it is a model_id
return matchd[1] if matchd && matchd[1] return matchd[1] if matchd[1]
end
# Only the FileUploader pattern will not match an ID # Only the FileUploader pattern will not match an ID
file_uploader_model_id file_uploader_model_id
...@@ -140,6 +130,16 @@ module Gitlab ...@@ -140,6 +130,16 @@ module Gitlab
private private
def matching_pattern_map
@matching_pattern_map ||= PATH_PATTERNS.find do |path_pattern_map|
path_relative_to_upload_dir.match(path_pattern_map[:pattern])
end
raise "Unknown upload path pattern \"#{path}\"" unless @matching_pattern_map
@matching_pattern_map
end
def file_uploader_model_id def file_uploader_model_id
pattern_to_capture_full_path = /\A(.+)#{FILE_UPLOADER_PATH_PATTERN}/ pattern_to_capture_full_path = /\A(.+)#{FILE_UPLOADER_PATH_PATTERN}/
matchd = path_relative_to_upload_dir.match(pattern_to_capture_full_path) matchd = path_relative_to_upload_dir.match(pattern_to_capture_full_path)
...@@ -222,7 +222,15 @@ module Gitlab ...@@ -222,7 +222,15 @@ module Gitlab
files = UnhashedUploadFile.untracked.where(id: start_id..end_id) files = UnhashedUploadFile.untracked.where(id: start_id..end_id)
files.each do |unhashed_upload_file| files.each do |unhashed_upload_file|
begin
unhashed_upload_file.ensure_tracked! unhashed_upload_file.ensure_tracked!
rescue StandardError => e
Rails.logger.warn "Failed to add untracked file to uploads: #{e.message}"
# The untracked rows will remain in the DB. We will be able to see
# which ones failed to become tracked, and then we can decide what
# to do.
end
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