class Chef::CookbookCacheCleaner
Keep track of the filenames that we use in both eager cookbook downloading (during sync_cookbooks) and lazy (during the run itself, through FileVendor). After the run is over, clean up the cache.
Attributes
skip_removal[RW]
Public Class Methods
new()
click to toggle source
# File lib/chef/cookbook/synchronizer.rb, line 45 def initialize reset! end
Public Instance Methods
cache()
click to toggle source
# File lib/chef/cookbook/synchronizer.rb, line 57 def cache Chef::FileCache end
cleanup_file_cache()
click to toggle source
# File lib/chef/cookbook/synchronizer.rb, line 61 def cleanup_file_cache unless Chef::Config[:solo_legacy_mode] || skip_removal # Delete each file in the cache that we didn't encounter in the # manifest. cache.find(File.join(%w{cookbooks ** {*,.*}})).each do |cache_filename| unless @valid_cache_entries[cache_filename] Chef::Log.info("Removing #{cache_filename} from the cache; it is no longer needed by #{Chef::Dist::CLIENT}.") cache.delete(cache_filename) end end else Chef::Log.info("Skipping removal of unused files from the cache") end end
mark_file_as_valid(cache_path)
click to toggle source
# File lib/chef/cookbook/synchronizer.rb, line 53 def mark_file_as_valid(cache_path) @valid_cache_entries[cache_path] = true end
reset!()
click to toggle source
# File lib/chef/cookbook/synchronizer.rb, line 49 def reset! @valid_cache_entries = {} end