Skip to content

Instantly share code, notes, and snippets.

@rpl
Created June 28, 2013 16:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rpl/5886004 to your computer and use it in GitHub Desktop.
Save rpl/5886004 to your computer and use it in GitHub Desktop.
simple ruby script to find "non-frozen" cookbooks on a chef-server
require 'rubygems'
require 'chef/config'
require 'chef/log'
require 'chef/rest'
require 'chef/cookbook_version'
chef_server_url = ARGV[0]
client_name = ARGV[1]
signing_key_filename=ARGV[2]
rest = Chef::REST.new(chef_server_url, client_name, signing_key_filename)
cookbooks = rest.get_rest("/cookbooks?all_versions")
found_nonfrozen_cookbooks = []
cookbooks.keys.each do |name|
cookbook_versions = rest.get_rest("/cookbooks/#{name}")
cookbook_versions[name]["versions"].each do |cv|
print '.'
version = cv["version"]
cookbook = rest.get_rest("/cookbooks/#{name}/#{version}")
found_nonfrozen_cookbooks << "#{name}/#{version}" unless cookbook.frozen_version?
end
end
puts "\nRESULTS: "
puts found_nonfrozen_cookbooks.join('\n')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment