diff options
Diffstat (limited to 'app/services/dependency_proxy/find_or_create_blob_service.rb')
-rw-r--r-- | app/services/dependency_proxy/find_or_create_blob_service.rb | 48 |
1 files changed, 0 insertions, 48 deletions
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 |