diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/ci/build_trace_chunks/fog.rb | 16 | ||||
-rw-r--r-- | app/models/concerns/fog_storage.rb | 16 | ||||
-rw-r--r-- | app/models/uploads/base.rb | 13 | ||||
-rw-r--r-- | app/models/uploads/fog.rb | 6 | ||||
-rw-r--r-- | app/models/uploads/local.rb | 10 |
5 files changed, 35 insertions, 26 deletions
diff --git a/app/models/ci/build_trace_chunks/fog.rb b/app/models/ci/build_trace_chunks/fog.rb index 63d81a093a5..d486e8e292e 100644 --- a/app/models/ci/build_trace_chunks/fog.rb +++ b/app/models/ci/build_trace_chunks/fog.rb @@ -5,22 +5,6 @@ module Ci class Fog include FogStorage - def data(model) - model_key = key(model) - - connection.get_object(bucket_name, key_raw(model_key))[:body] - end - - def set_data(model, data) - model_key = key(model) - - connection.put_object(bucket_name, key_raw(model_key), data) - end - - def delete_data(model) - delete_keys([key(model)]) - end - def keys(relation) return [] unless available? diff --git a/app/models/concerns/fog_storage.rb b/app/models/concerns/fog_storage.rb index 7a45d438a10..6277531c671 100644 --- a/app/models/concerns/fog_storage.rb +++ b/app/models/concerns/fog_storage.rb @@ -18,6 +18,22 @@ module FogStorage end end + def data(model) + model_key = key(model) + + connection.get_object(bucket_name, key_raw(model_key))[:body] + end + + def set_data(model, data) + model_key = key(model) + + connection.put_object(bucket_name, key_raw(model_key), data) + end + + def delete_data(model) + delete_keys([key(model)]) + end + private def key(model) diff --git a/app/models/uploads/base.rb b/app/models/uploads/base.rb new file mode 100644 index 00000000000..92dd94d3836 --- /dev/null +++ b/app/models/uploads/base.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Uploads + class Base + BATCH_SIZE = 100 + + attr_reader :logger + + def initialize(logger: nil) + @logger ||= Rails.logger + end + end +end diff --git a/app/models/uploads/fog.rb b/app/models/uploads/fog.rb index 041f395b097..56d41fab26a 100644 --- a/app/models/uploads/fog.rb +++ b/app/models/uploads/fog.rb @@ -1,11 +1,9 @@ # frozen_string_literal: true module Uploads - class Fog + class Fog < Base include FogStorage - BATCH_SIZE = 100 - def keys(relation) return [] unless available? @@ -14,7 +12,7 @@ module Uploads def delete_keys_async(keys_to_delete) keys_to_delete.each_slice(BATCH_SIZE) do |batch| - UploadDeleteFogWorker.perform_async(batch) + UploadDeleteWorker.perform_async(self.class, batch) end end diff --git a/app/models/uploads/local.rb b/app/models/uploads/local.rb index bc1c396347e..43512911a85 100644 --- a/app/models/uploads/local.rb +++ b/app/models/uploads/local.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true module Uploads - class Local - BATCH_SIZE = 100 - + class Local < Base def keys(relation) relation.includes(:model).find_each.map {|u| u.absolute_path } end @@ -16,7 +14,7 @@ module Uploads def delete_keys_async(keys_to_delete) keys_to_delete.each_slice(BATCH_SIZE) do |batch| - UploadDeleteLocalWorker.perform_async(batch) + UploadDeleteWorker.perform_async(self.class, batch) end end @@ -24,12 +22,12 @@ module Uploads def delete_file(path) unless exists?(path) - Sidekiq.logger.warn("File '#{path}' doesn't exist, skipping") + logger.warn("File '#{path}' doesn't exist, skipping") return end unless in_uploads?(path) - Sidekiq.logger.warn("Path '#{path}' is not in uploads dir, skipping") + logger.warn("Path '#{path}' is not in uploads dir, skipping") return end |