Class: Chef::CookbookCacheCleaner
- Includes:
- Singleton
- Defined in:
- lib/chef/cookbook/synchronizer.rb
Overview
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.
Instance Method Summary collapse
- #cache ⇒ Object
- #cleanup_file_cache ⇒ Object
-
#initialize ⇒ CookbookCacheCleaner
constructor
A new instance of CookbookCacheCleaner.
- #mark_file_as_valid(cache_path) ⇒ Object
- #reset! ⇒ Object
Constructor Details
#initialize ⇒ CookbookCacheCleaner
Returns a new instance of CookbookCacheCleaner.
25 26 27 |
# File 'lib/chef/cookbook/synchronizer.rb', line 25 def initialize reset! end |
Instance Method Details
#cache ⇒ Object
37 38 39 |
# File 'lib/chef/cookbook/synchronizer.rb', line 37 def cache Chef::FileCache end |
#cleanup_file_cache ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/chef/cookbook/synchronizer.rb', line 41 def cleanup_file_cache unless Chef::Config[:solo] # 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-client.") cache.delete(cache_filename) end end end end |
#mark_file_as_valid(cache_path) ⇒ Object
33 34 35 |
# File 'lib/chef/cookbook/synchronizer.rb', line 33 def mark_file_as_valid(cache_path) @valid_cache_entries[cache_path] = true end |
#reset! ⇒ Object
29 30 31 |
# File 'lib/chef/cookbook/synchronizer.rb', line 29 def reset! @valid_cache_entries = {} end |