11#
22# Author:: Adam Jacob (<adam@opscode.com>)
33# Author:: Christopher Brown (<cb@opscode.com>)
4- # Copyright:: Copyright (c) 2008 Opscode, Inc.
4+ # Author:: Christopher Walters (<cw@opscode.com>)
5+ # Author:: Tim Hinderliter (<tim@opscode.com>)
6+ # Copyright:: Copyright (c) 2008-2010 Opscode, Inc.
57# License:: Apache License, Version 2.0
68#
79# Licensed under the Apache License, Version 2.0 (the "License");
@@ -93,7 +95,7 @@ def access_denied
9395 raise Unauthorized , "You must authenticate first!"
9496 end
9597
96- def specific_cookbooks ( node_name , cl )
98+ def cookbooks_for_node ( node_name , cookbook_loader )
9799 valid_cookbooks = Hash . new
98100 begin
99101 node = Chef ::Node . cdb_load ( node_name )
@@ -102,29 +104,29 @@ def specific_cookbooks(node_name, cl)
102104 recipes = [ ]
103105 end
104106 recipes . each do |recipe |
105- valid_cookbooks = expand_cookbook_deps ( valid_cookbooks , cl , recipe )
107+ valid_cookbooks = expand_cookbook_deps ( valid_cookbooks , cookbook_loader , recipe )
106108 end
107109 valid_cookbooks
108110 end
109111
110- def expand_cookbook_deps ( valid_cookbooks , cl , recipe )
112+ def expand_cookbook_deps ( visited_cookbooks , cookbook_loader , recipe )
111113 cookbook = recipe
112114 if recipe =~ /^(.+)::/
113115 cookbook = $1
114116 end
115117 Chef ::Log . debug ( "Node requires #{ cookbook } " )
116- valid_cookbooks [ cookbook ] = true
117- cl . metadata [ cookbook . to_sym ] . dependencies . each do |dep , versions |
118- expand_cookbook_deps ( valid_cookbooks , cl , dep ) unless valid_cookbooks [ dep ]
118+ visited_cookbooks [ cookbook ] = true
119+ cookbook_loader . metadata [ cookbook . to_sym ] . dependencies . each do |dep , versions |
120+ expand_cookbook_deps ( visited_cookbooks , cookbook_loader , dep ) unless visited_cookbooks [ dep ]
119121 end
120- valid_cookbooks
122+ visited_cookbooks
121123 end
122124
123125 def load_all_files ( node_name = nil )
124- cl = Chef ::CookbookLoader . new
125- valid_cookbooks = node_name ? specific_cookbooks ( node_name , cl ) : { }
126+ cookbook_loader = Chef ::CookbookLoader . new
127+ valid_cookbooks = node_name ? cookbooks_for_node ( node_name , cookbook_loader ) : { }
126128 cookbook_list = Hash . new
127- cl . each do |cookbook |
129+ cookbook_loader . each do |cookbook |
128130 if node_name
129131 next unless valid_cookbooks [ cookbook . name . to_s ]
130132 end
@@ -134,9 +136,9 @@ def load_all_files(node_name=nil)
134136 end
135137
136138 def get_available_recipes
137- cl = Chef ::CookbookLoader . new
138- available_recipes = cl . sort { |a , b | a . name . to_s <=> b . name . to_s } . inject ( [ ] ) do |result , element |
139- element . recipes . sort . each do |r |
139+ cookbook_loader = Chef ::CookbookLoader . new
140+ available_recipes = cookbook_loader . sort { |a , b | a . name . to_s <=> b . name . to_s } . inject ( [ ] ) do |result , element |
141+ element . recipes . sort . each do |r |
140142 if r =~ /^(.+)::default$/
141143 result << $1
142144 else
0 commit comments