Class: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::RollbackDeletedObjects

Inherits:
Object
  • Object
show all
Includes:
StorageHelpers
Defined in:
lib/gitlab/cleanup/orphan_job_artifact_final_objects/rollback_deleted_objects.rb

Constant Summary collapse

UnsupportedProviderError =
Class.new(StandardError)
GOOGLE_PROVIDER =
'google'
DEFAULT_DELETED_LIST_FILENAME =
[
  ProcessList::DELETED_LIST_FILENAME_PREFIX,
  GenerateList::DEFAULT_FILENAME
].join.freeze
CURSOR_TRACKER_REDIS_KEY_PREFIX =
'orphan-job-artifact-objects-cleanup-rollback-cursor-tracker--'

Instance Method Summary collapse

Methods included from StorageHelpers

#artifacts_directory, #bucket, #bucket_prefix, #configuration, #connection

Constructor Details

#initialize(filename: nil, force_restart: false, logger: Gitlab::AppLogger) ⇒ RollbackDeletedObjects

Returns a new instance of RollbackDeletedObjects.



20
21
22
23
24
25
# File 'lib/gitlab/cleanup/orphan_job_artifact_final_objects/rollback_deleted_objects.rb', line 20

def initialize(filename: nil, force_restart: false, logger: Gitlab::AppLogger)
  @force_restart = force_restart
  @logger = logger
  @filename = filename || DEFAULT_DELETED_LIST_FILENAME
  @cursor_tracker_key = build_cursor_tracker_key
end

Instance Method Details

#run!Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/gitlab/cleanup/orphan_job_artifact_final_objects/rollback_deleted_objects.rb', line 27

def run!
  ensure_supported_provider!

  log_info("Processing #{filename}...")

  initialize_file

  each_fog_file do |fog_file|
    rollback(fog_file)
  end

  log_info("Done. Rolled back deleted objects listed in #{filename}.")
ensure
  file&.close
end