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_requests(repository) ⇒ Object
process_ids_to_remove(ids_to_remove) end.
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_requests(repository) ⇒ Object
process_ids_to_remove(ids_to_remove) end
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# 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)) orphaned_ids = orphaned_configs_to_remove(repository, ids_to_remove) ids_to_remove.join(orphaned_ids) process_ids_to_remove(ids_to_remove) end |