Class: Dor::CleanupResetService
- Inherits:
-
Object
- Object
- Dor::CleanupResetService
- Defined in:
- lib/dor/services/cleanup_reset_service.rb
Overview
Remove all traces of the object’s data files from the workspace and export areas
Class Method Summary collapse
-
.cleanup_assembly_content(druid, base) ⇒ void
Remove the object’s data files from the assembly area.
-
.cleanup_by_reset_druid(druid) ⇒ void
Remove copy of the reset data that was exported to preservation core.
-
.cleanup_reset_export(druid, last_version) ⇒ void
Remove copy of the reset data that was exported to preservation core.
-
.cleanup_reset_workspace_content(druid, last_version, base) ⇒ void
Remove all the object’s reset data files from the workspace area equal to less than the last_version.
- .get_druid_last_version(druid) ⇒ Object
-
.get_reset_bag_dir_list(last_version, base_bag_directory) ⇒ void
Prepares a list of reset bag directories that should be removed.
-
.get_reset_bag_tar_list(last_version, base_bag_directory) ⇒ void
Prepares a list of reset bag tars that should be removed.
-
.get_reset_dir_list(last_version, base_druid_tree) ⇒ void
Prepares a list of reset directories that should be removed.
Class Method Details
.cleanup_assembly_content(druid, base) ⇒ void
This method returns an undefined value.
Returns remove the object’s data files from the assembly area.
99 100 101 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 99 def self.cleanup_assembly_content(druid, base) DruidTools::Druid.new(druid, base).prune! end |
.cleanup_by_reset_druid(druid) ⇒ void
This method returns an undefined value.
Returns remove copy of the reset data that was exported to preservation core.
10 11 12 13 14 15 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 10 def self.cleanup_by_reset_druid(druid) last_version = get_druid_last_version(druid) cleanup_reset_workspace_content(druid, last_version, Config.cleanup.local_workspace_root) cleanup_assembly_content(druid, Config.cleanup.local_assembly_root) cleanup_reset_export(druid, last_version) end |
.cleanup_reset_export(druid, last_version) ⇒ void
This method returns an undefined value.
Returns remove copy of the reset data that was exported to preservation core.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 57 def self.cleanup_reset_export(druid, last_version) id = druid.split(':').last base_bag_directory = File.join(Config.cleanup.local_export_home, id) bag_dir_list = get_reset_bag_dir_list(last_version, base_bag_directory) bag_dir_list.each do |bag_dir| Pathname(bag_dir).rmtree end bag_tar_list = get_reset_bag_tar_list(last_version, base_bag_directory) bag_tar_list.each do |bag_tar| Pathname(bag_tar).rmtree end end |
.cleanup_reset_workspace_content(druid, last_version, base) ⇒ void
This method returns an undefined value.
Returns remove all the object’s reset data files from the workspace area equal to less than the last_version.
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 30 def self.cleanup_reset_workspace_content(druid, last_version, base) base_druid = DruidTools::Druid.new(druid, base) base_druid_tree = base_druid.pathname.to_s # if it is truncated tree /aa/111/aaa/1111/content, # we should follow the regular cleanup technique reset_directories = get_reset_dir_list(last_version, base_druid_tree) reset_directories.each do |path| FileUtils.rm_rf(path) end base_druid.prune_ancestors(base_druid.pathname.parent) end |
.get_druid_last_version(druid) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 17 def self.get_druid_last_version(druid) druid_obj = Dor.find(druid) last_version = druid_obj.current_version.to_i # if the current version is still open, avoid this versioned directory last_version -= 1 if Dor::Config.workflow.client.get_lifecycle('dor', druid, 'accessioned').nil? last_version end |
.get_reset_bag_dir_list(last_version, base_bag_directory) ⇒ void
This method returns an undefined value.
Returns prepares a list of reset bag directories that should be removed.
75 76 77 78 79 80 81 82 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 75 def self.get_reset_bag_dir_list(last_version, base_bag_directory) reset_bags = [] (1..last_version).each do |i| reset_path = "#{base_bag_directory}_v#{i}" reset_bags.append(reset_path) if File.exist?(reset_path) end reset_bags end |
.get_reset_bag_tar_list(last_version, base_bag_directory) ⇒ void
This method returns an undefined value.
Returns prepares a list of reset bag tars that should be removed.
87 88 89 90 91 92 93 94 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 87 def self.get_reset_bag_tar_list(last_version, base_bag_directory) reset_bags = [] (1..last_version).each do |i| reset_path = "#{base_bag_directory}_v#{i}.tar" reset_bags.append(reset_path) if File.exist?(reset_path) end reset_bags end |
.get_reset_dir_list(last_version, base_druid_tree) ⇒ void
This method returns an undefined value.
Returns prepares a list of reset directories that should be removed.
46 47 48 49 50 51 52 53 |
# File 'lib/dor/services/cleanup_reset_service.rb', line 46 def self.get_reset_dir_list(last_version, base_druid_tree) reset_directories = [] (1..last_version).each do |i| reset_path = "#{base_druid_tree}_v#{i}" reset_directories.append(reset_path) if File.exist?(reset_path) end reset_directories end |