lib/chef/mixin/language.rb in chef-0.9.14 vs lib/chef/mixin/language.rb in chef-0.9.16

- old
+ new

@@ -4,13 +4,13 @@ # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -117,39 +117,48 @@ # === Returns # true:: If the current platform is in the list # false:: If the current platform is not in the list def platform?(*args) has_platform = false - + args.flatten.each do |platform| has_platform = true if platform == node[:platform] end - + has_platform end def search(*args, &block) # If you pass a block, or have at least the start argument, do raw result parsing - # + # # Otherwise, do the iteration for the end user - if Kernel.block_given? || args.length >= 4 + if Kernel.block_given? || args.length >= 4 Chef::Search::Query.new.search(*args, &block) - else + else results = Array.new Chef::Search::Query.new.search(*args) do |o| - results << o + results << o end results end end def data_bag(bag) - rbag = Chef::DataBag.load(bag) + DataBag.validate_name!(bag) + rbag = DataBag.load(bag) rbag.keys + rescue Exception + Log.error("Failed to list data bag items in data bag: #{bag.inspect}") + raise end def data_bag_item(bag, item) - Chef::DataBagItem.load(bag, item) + DataBag.validate_name!(bag) + DataBagItem.validate_id!(item) + DataBagItem.load(bag, item) + rescue Exception + Log.error("Failed to load data bag item: #{bag.inspect} #{item.inspect}") + raise end end end end