# File lib/chef/checksum_cache.rb, line 72 def self.all_cached_checksums all_checksums_with_filenames = {} Dir[File.join(Chef::Config[:cache_options][:path], '*')].each do |cksum_file| all_checksums_with_filenames[File.basename(cksum_file)] = cksum_file end all_checksums_with_filenames end
# File lib/chef/checksum_cache.rb, line 101 def self.checksum_for_file(*args) instance.checksum_for_file(*args) end
# File lib/chef/checksum_cache.rb, line 81 def self.cleanup_checksum_cache Chef::Log.debug("Cleaning the checksum cache") if (Chef::Config[:cache_type].to_s == "BasicFile") all_cached_checksums.each do |cache_key, cksum_cache_file| unless valid_cached_checksums.include?(cache_key) remove_unused_checksum(cksum_cache_file) end end end end
# File lib/chef/checksum_cache.rb, line 136 def self.generate_md5_checksum_for_file(*args) instance.generate_md5_checksum_for_file(*args) end
# File lib/chef/checksum_cache.rb, line 37 def initialize(*args) self.reset!(*args) end
# File lib/chef/checksum_cache.rb, line 96 def self.remove_unused_checksum(checksum_file) Chef::Log.debug("Removing unused checksum cache file #{checksum_file}") FileUtils.rm(checksum_file) end
# File lib/chef/checksum_cache.rb, line 56 def self.reset_cache_validity @valid_cached_checksums = nil end
# File lib/chef/checksum_cache.rb, line 109 def checksum_for_file(file, key=nil) key ||= generate_key(file) fstat = File.stat(file) lookup_checksum(key, fstat) || generate_checksum(key, file, fstat) end
# File lib/chef/checksum_cache.rb, line 125 def generate_checksum(key, file, fstat) checksum = checksum_file(file, Digest::SHA256.new) moneta.store(key, {"mtime" => fstat.mtime.to_f, "checksum" => checksum}) validate_checksum(key) checksum end
# File lib/chef/checksum_cache.rb, line 132 def generate_key(file, group="chef") "#{group}-file-#{file.gsub(/(#{File::SEPARATOR}|\.)/, '-')}" end
# File lib/chef/checksum_cache.rb, line 144 def generate_md5_checksum(io) checksum_io(io, Digest::MD5.new) end
# File lib/chef/checksum_cache.rb, line 140 def generate_md5_checksum_for_file(file) checksum_file(file, Digest::MD5.new) end
# File lib/chef/checksum_cache.rb, line 115 def lookup_checksum(key, fstat) cached = fetch(key) if cached && file_unchanged?(cached, fstat) validate_checksum(key) cached["checksum"] else nil end end
# File lib/chef/checksum_cache.rb, line 41 def reset!(backend=nil, options=nil) backend ||= Chef::Config[:cache_type] options ||= Chef::Config[:cache_options] begin require "moneta/#{convert_to_snake_case(backend, 'Moneta')}" require 'chef/monkey_patches/moneta' rescue LoadError => e Chef::Log.fatal("Could not load Moneta back end #{backend.inspect}") raise e end @moneta = Moneta.const_get(backend).new(options) end
Generated with the Darkfish Rdoc Generator 2.