class Proxy::OpenSCAP::StorageFs
Public Instance Methods
delete_arf_file()
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 34 def delete_arf_file path = "#{@path_to_dir}/#{@namespace}/#{@cname}/#{@id}" raise FileNotFound, "Can't find path #{path}" if !File.directory?(path) || File.zero?(path) FileUtils.rm_r path {:id => @id, :deleted => true}.to_json end
get_arf_file(digest)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 41 def get_arf_file(digest) file = File.open(get_path digest) { :size => File.size(file), :xml => file.read } end
get_arf_xml(digest)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 30 def get_arf_xml(digest) get_arf_file(digest)[:xml] end
get_path(digest)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 46 def get_path(digest) full_path = @path + digest raise FileNotFound, "Can't find path #{full_path}" if !File.file?(full_path) || File.zero?(full_path) full_path end
list_dirs(path)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 57 def list_dirs(path) Pathname.new(path).children.select(&:directory?) end
move_corrupted(digest, spooldir)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 25 def move_corrupted(digest, spooldir) source = "#{spooldir}/#{@namespace}/#{@cname}/#{@id}/#{@date}" move "#{source}/#{digest}", StoreCorruptedError end
spool_errors()
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 52 def spool_errors path = "#{@path_to_dir}/#{@namespace}" { :errors_count => File.exists?(path) ? list_dirs(path).count : 0 } end
store_archive(data)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 9 def store_archive(data) store(data, StoreReportError) end
store_corrupted(data)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 21 def store_corrupted(data) store(data, StoreCorruptedError) end
store_failed(data)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 17 def store_failed(data) store(data, StoreFailedError) end
store_spool(data)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 13 def store_spool(data) store(data, StoreSpoolError) end
Private Instance Methods
create_directory()
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 70 def create_directory begin FileUtils.mkdir_p @path rescue StandardError => e logger.error "Could not create '#{@path}' directory: #{e.message}" raise e end @path end
move(source, error_type)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 80 def move(source, error_type) begin create_directory FileUtils.mv source, @path rescue StandardError => e raise error_type, "Could not move file: #{e.message}" end end
store(data, error_type)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 89 def store(data, error_type) begin create_directory rescue StandardError => e raise error_type, "Could not fulfill request: #{e.message}" end begin target_path = store_file(@path, data) rescue StandardError => e raise error_type, "Could not store file: #{e.message}" end logger.debug "File #{target_path} stored in reports dir." end
store_file(path_to_store, data)
click to toggle source
# File lib/smart_proxy_openscap/storage_fs.rb, line 63 def store_file(path_to_store, data) filename = Digest::SHA256.hexdigest data target_path = path_to_store + filename File.open(target_path,'w') { |f| f.write(data) } target_path end