Module: Preservation::Storage

Defined in:
lib/preservation/storage.rb

Overview

Storage

Class Method Summary collapse

Class Method Details

.cleanupObject

Free up disk space for completed transfers



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/preservation/storage.rb', line 9

def self.cleanup
  preserved = get_preserved
  if !preserved.nil? && !preserved.empty?
    preserved.each do |i|
      # skip anything that has a different owner to script
      if File.stat(i).grpowned?
        FileUtils.remove_dir i
        # @logger.info 'Deleted ' + i
      end
    end
  end
end

.enough_storage_for_download?(required_bytes) ⇒ Boolean

Enough storage for download?

Returns:

  • (Boolean)


25
26
27
28
29
30
# File 'lib/preservation/storage.rb', line 25

def self.enough_storage_for_download?(required_bytes)
  # scale up the required space using a multiplier
  multiplier = 2
  available = FreeDiskSpace.bytes('/')
  required_bytes * multiplier < available ? true : false
end

.get_preservedArray<String>

Collect all paths from DB where preservation has been done

Returns:

  • (Array<String>)


34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/preservation/storage.rb', line 34

def self.get_preserved
  ingest_complete = Preservation::Report::Transfer.status(status_to_find: 'COMPLETE',
                                                          status_presence: true)
  preserved = []
  ingest_complete.each do |i|
    dir_path = Preservation.ingest_path + '/' + i['path']
    if File.exists?(dir_path)
      preserved << dir_path
    end
  end

  preserved
end