From 602dba70eda47b7eca3e617da57da90333eba863 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Wed, 2 Mar 2011 13:00:22 +0100 Subject: [PATCH] Try to get useful error messages --- .../puppet/parser/functions/allnodeinfo.rb | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/puppetmaster/lib/puppet/parser/functions/allnodeinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/allnodeinfo.rb index a71617e53..06b074d8d 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/allnodeinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/allnodeinfo.rb @@ -1,18 +1,22 @@ module Puppet::Parser::Functions newfunction(:allnodeinfo, :type => :rvalue) do |args| - required = args.shift.split() - optional = args.shift.split() + begin + required = args.shift.split() + optional = args.shift.split() - allhosts = function_ldapinfo('*', required+optional ) - res = {} - allhosts.each_pair do |hostname, host| - # If a returned value doesn't have all the attributes we're searching for, skip - # We'll skip if the array is empty, but we also seem to get back a nil object for empty attributes sometimes - next if required.any?{ |a| not host[a] or host[a].empty? } - res[hostname] = host - end + allhosts = function_ldapinfo('*', required+optional ) + res = {} + allhosts.each_pair do |hostname, host| + # If a returned value doesn't have all the attributes we're searching for, skip + # We'll skip if the array is empty, but we also seem to get back a nil object for empty attributes sometimes + next if required.any?{ |a| not host[a] or host[a].empty? } + res[hostname] = host + end - return res + return res + rescue => e + raise Puppet::ParseError, "Error in allnodeinfo: #{e.message}\n#{e.backtrace}" + end end end # vim:set et: -- 2.20.1