Skip to content

Instantly share code, notes, and snippets.

@bjbq4d
Created June 6, 2012 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjbq4d/2883888 to your computer and use it in GitHub Desktop.
Save bjbq4d/2883888 to your computer and use it in GitHub Desktop.
Knife script to clean up extra checksum files
require 'chef'
puts "Looking for leftover checksums..."
#Get all checksums
currentChecksums = Chef::Checksum.cdb_all_checksums.keys
#Get all cookbook information
cookbookVersions = Chef::MinimalCookbookVersion.load_full_versions_of(Chef::MinimalCookbookVersion.load_all(nil), nil)
cookbookVersions.each do |cookbookVersion|
Chef::CookbookVersion::COOKBOOK_SEGMENTS.each do |segment|
cookbookVersion.manifest[segment].each do |file|
currentChecksums.delete(file[:checksum])
end
end
end
if currentChecksums.size > 0
puts "Leftover checksums : #{currentChecksums.size}"
currentChecksums.each do |checksumValue|
checksum = Chef::Checksum.cdb_load(checksumValue).purge
end
puts "Leftover checksums purged successfully!"
else
puts "No checksums to remove"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment