diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-20 09:16:11 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-20 09:16:11 +0000 |
commit | edaa33dee2ff2f7ea3fac488d41558eb5f86d68c (patch) | |
tree | 11f143effbfeba52329fb7afbd05e6e2a3790241 /app/services/dependency_proxy | |
parent | d8a5691316400a0f7ec4f83832698f1988eb27c1 (diff) | |
download | gitlab-ce-edaa33dee2ff2f7ea3fac488d41558eb5f86d68c.tar.gz |
Add latest changes from gitlab-org/gitlab@14-7-stable-eev14.7.0-rc42
Diffstat (limited to 'app/services/dependency_proxy')
-rw-r--r-- | app/services/dependency_proxy/download_blob_service.rb | 38 | ||||
-rw-r--r-- | app/services/dependency_proxy/find_or_create_blob_service.rb | 48 |
2 files changed, 0 insertions, 86 deletions
diff --git a/app/services/dependency_proxy/download_blob_service.rb b/app/services/dependency_proxy/download_blob_service.rb deleted file mode 100644 index b3548c8a126..00000000000 --- a/app/services/dependency_proxy/download_blob_service.rb +++ /dev/null @@ -1,38 +0,0 @@ -# frozen_string_literal: true - -module DependencyProxy - class DownloadBlobService < DependencyProxy::BaseService - def initialize(image, blob_sha, token) - @image = image - @blob_sha = blob_sha - @token = token - @temp_file = Tempfile.new - end - - def execute - File.open(@temp_file.path, "wb") do |file| - Gitlab::HTTP.get(blob_url, headers: auth_headers, stream_body: true) do |fragment| - if [301, 302, 307].include?(fragment.code) - # do nothing - elsif fragment.code == 200 - file.write(fragment) - else - raise DownloadError.new('Non-success response code on downloading blob fragment', fragment.code) - end - end - end - - success(file: @temp_file) - rescue DownloadError => exception - error(exception.message, exception.http_status) - rescue Timeout::Error => exception - error(exception.message, 599) - end - - private - - def blob_url - registry.blob_url(@image, @blob_sha) - end - end -end diff --git a/app/services/dependency_proxy/find_or_create_blob_service.rb b/app/services/dependency_proxy/find_or_create_blob_service.rb deleted file mode 100644 index 1b43263a3ba..00000000000 --- a/app/services/dependency_proxy/find_or_create_blob_service.rb +++ /dev/null @@ -1,48 +0,0 @@ -# frozen_string_literal: true - -module DependencyProxy - class FindOrCreateBlobService < DependencyProxy::BaseService - def initialize(group, image, token, blob_sha) - @group = group - @image = image - @token = token - @blob_sha = blob_sha - end - - def execute - from_cache = true - file_name = @blob_sha.sub('sha256:', '') + '.gz' - blob = @group.dependency_proxy_blobs.active.find_or_build(file_name) - - unless blob.persisted? - from_cache = false - result = DependencyProxy::DownloadBlobService - .new(@image, @blob_sha, @token).execute - - if result[:status] == :error - log_failure(result) - - return error('Failed to download the blob', result[:http_status]) - end - - blob.file = result[:file] - blob.size = result[:file].size - blob.save! - end - - blob.read! if from_cache - success(blob: blob, from_cache: from_cache) - end - - private - - def log_failure(result) - log_error( - "Dependency proxy: Failed to download the blob." \ - "Blob sha: #{@blob_sha}." \ - "Error message: #{result[:message][0, 100]}" \ - "HTTP status: #{result[:http_status]}" - ) - end - end -end |