Class: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::GenerateList
- Inherits:
-
Object
- Object
- Gitlab::Cleanup::OrphanJobArtifactFinalObjects::GenerateList
- Includes:
- StorageHelpers
- Defined in:
- lib/gitlab/cleanup/orphan_job_artifact_final_objects/generate_list.rb
Constant Summary collapse
- UnsupportedProviderError =
Class.new(StandardError)
- DEFAULT_FILENAME =
'orphan_job_artifact_final_objects.csv'
- LAST_PAGE_MARKER_REDIS_KEY =
'orphan-job-artifact-objects-cleanup-last-page-marker'
- PAGINATORS =
{ google: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::Google, aws: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::Aws, azurerm: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::Paginators::Azure }.freeze
Instance Method Summary collapse
-
#initialize(provider: nil, filename: nil, force_restart: false, logger: Gitlab::AppLogger) ⇒ GenerateList
constructor
A new instance of GenerateList.
- #run! ⇒ Object
Methods included from StorageHelpers
#artifacts_directory, #bucket, #bucket_prefix, #configuration, #connection
Constructor Details
#initialize(provider: nil, filename: nil, force_restart: false, logger: Gitlab::AppLogger) ⇒ GenerateList
Returns a new instance of GenerateList.
20 21 22 23 24 25 |
# File 'lib/gitlab/cleanup/orphan_job_artifact_final_objects/generate_list.rb', line 20 def initialize(provider: nil, filename: nil, force_restart: false, logger: Gitlab::AppLogger) @paginator = determine_paginator!(provider) @force_restart = force_restart @logger = logger @filename = filename || DEFAULT_FILENAME 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/generate_list.rb', line 27 def run! log_info('Looking for orphan job artifact objects under the `@final` directories') initialize_file each_batch do |fog_collection| BatchFromStorage.new(fog_collection, bucket_prefix: bucket_prefix).orphan_objects.each do |fog_file| log_orphan_object(fog_file) end end log_info("Done. All orphan objects are listed in #{filename}.") ensure file&.close end |