Module: Backup::RemoveSpecified::RemoveHeavyData
- Includes:
- Shared, SaveIdHashToFile, SaveNullifiedRelsToFile
- Included in:
- Backup::RemoveSpecified
- Defined in:
- lib/backup/remove_specified/remove_heavy_data.rb
Instance Method Summary collapse
- #remove_heavy_data_for_repo(repository) ⇒ Object
- #remove_heavy_data_for_repos_owned_by(owner_id, owner_type) ⇒ Object
-
#remove_repo_builds(repository) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength.
- #remove_repo_requests(repository) ⇒ Object
Methods included from SaveNullifiedRelsToFile
#save_nullified_rels_to_file, #save_rels_batch_to_file
Methods included from SaveFile
#current_time_for_subfolder, #ensure_path, #folder_path, #full_file_path, #save_file
Methods included from SaveIdHashToFile
#get_exported_object, #save_id_hash_to_file, #save_ids_batch_to_file
Instance Method Details
#remove_heavy_data_for_repo(repository) ⇒ Object
19 20 21 22 |
# File 'lib/backup/remove_specified/remove_heavy_data.rb', line 19 def remove_heavy_data_for_repo(repository) remove_repo_builds(repository) remove_repo_requests(repository) end |
#remove_heavy_data_for_repos_owned_by(owner_id, owner_type) ⇒ Object
13 14 15 16 17 |
# File 'lib/backup/remove_specified/remove_heavy_data.rb', line 13 def remove_heavy_data_for_repos_owned_by(owner_id, owner_type) Repository.where('owner_id = ? and owner_type = ?', owner_id, owner_type).order(:id).each do |repository| remove_heavy_data_for_repo(repository) end end |
#remove_repo_builds(repository) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/MethodLength
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/backup/remove_specified/remove_heavy_data.rb', line 24 def remove_repo_builds(repository) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength threshold = @config.threshold.to_i.months.ago.to_datetime builds_to_remove = repository.builds.where('created_at < ?', threshold) builds_dependencies = builds_to_remove.map do |build| result = build.ids_of_all_dependencies(dependencies_to_filter, :without_parents) result.add(:build, build.id) result end.compact ids_to_remove = IdHash.join(*builds_dependencies) @subfolder = "repository_#{repository.id}_old_builds_#{current_time_for_subfolder}" unless @config.dry_run nullified_rels = builds_to_remove&.map(&:nullify_default_dependencies)&.flatten save_nullified_rels_to_file(build: nullified_rels) if @config.if_backup end process_ids_to_remove(ids_to_remove) end |
#remove_repo_requests(repository) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/backup/remove_specified/remove_heavy_data.rb', line 45 def remove_repo_requests(repository) threshold = @config.threshold.to_i.months.ago.to_datetime requests_to_remove = repository.requests.where('created_at < ?', threshold) requests_dependencies = requests_to_remove.map do |request| hash_with_filtered = request.ids_of_all_dependencies(dependencies_to_filter, :without_parents) hash_with_filtered.add(:request, request.id) end @subfolder = "repository_#{repository.id}_old_requests_#{current_time_for_subfolder}" unless @config.dry_run nullified_rels = requests_to_remove.map do |request| nullify_filtered_dependencies(request) end.flatten save_nullified_rels_to_file(build: nullified_rels) if @config.if_backup end ids_to_remove = IdHash.join(*(requests_dependencies)) process_ids_to_remove(ids_to_remove) end |