Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/maven_packages.rb')
-rw-r--r--lib/api/maven_packages.rb57
1 files changed, 31 insertions, 26 deletions
diff --git a/lib/api/maven_packages.rb b/lib/api/maven_packages.rb
index bd1ebbaf899..a0d2fe45813 100644
--- a/lib/api/maven_packages.rb
+++ b/lib/api/maven_packages.rb
@@ -325,36 +325,41 @@ module API
file_name, format = extract_format(params[:file_name])
- result = ::Packages::Maven::FindOrCreatePackageService
- .new(user_project, current_user, params.merge(build: current_authenticated_job)).execute
+ ::Gitlab::Database::LoadBalancing::Session.current.use_primary do
+ result = ::Packages::Maven::FindOrCreatePackageService
+ .new(user_project, current_user, params.merge(build: current_authenticated_job)).execute
- bad_request!(result.errors.first) if result.error?
+ bad_request!(result.errors.first) if result.error?
- package = result.payload[:package]
+ package = result.payload[:package]
- case format
- when 'sha1'
- # After uploading a file, Maven tries to upload a sha1 and md5 version of it.
- # Since we store md5/sha1 in database we simply need to validate our hash
- # against one uploaded by Maven. We do this for `sha1` format.
- package_file = ::Packages::PackageFileFinder
- .new(package, file_name).execute!
+ case format
+ when 'sha1'
+ # After uploading a file, Maven tries to upload a sha1 and md5 version of it.
+ # Since we store md5/sha1 in database we simply need to validate our hash
+ # against one uploaded by Maven. We do this for `sha1` format.
+ package_file = ::Packages::PackageFileFinder
+ .new(package, file_name).execute!
- verify_package_file(package_file, params[:file])
- when 'md5'
- ''
- else
- file_params = {
- file: params[:file],
- size: params['file.size'],
- file_name: file_name,
- file_type: params['file.type'],
- file_sha1: params['file.sha1'],
- file_md5: params['file.md5']
- }
-
- ::Packages::CreatePackageFileService.new(package, file_params.merge(build: current_authenticated_job)).execute
- track_package_event('push_package', :maven, project: user_project, namespace: user_project.namespace) if jar_file?(format)
+ verify_package_file(package_file, params[:file])
+ when 'md5'
+ ''
+ else
+ file_params = {
+ file: params[:file],
+ size: params['file.size'],
+ file_name: file_name,
+ file_sha1: params['file.sha1'],
+ file_md5: params['file.md5']
+ }
+
+ if Feature.enabled?(:read_fingerprints_from_uploaded_file_in_maven_upload, user_project)
+ file_params.merge!(size: params[:file].size, file_sha1: params[:file].sha1, file_md5: params[:file].md5)
+ end
+
+ ::Packages::CreatePackageFileService.new(package, file_params.merge(build: current_authenticated_job)).execute
+ track_package_event('push_package', :maven, project: user_project, namespace: user_project.namespace) if jar_file?(format)
+ end
end
end
end