X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fpuppetmaster%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fwhohosts.rb;h=972c3bc93f96aa3e6ec583011e71423c5ab0ce3e;hb=b6e6411cde70148acac94808f002753bf2a12206;hp=2835cef2d3f8d8ea0b62a4bd679c279db90a32e5;hpb=af54a28ce3583c22c02a9e59277bb173fb1704f1;p=mirror%2Fdsa-puppet.git diff --git a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb index 2835cef2d..972c3bc93 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb @@ -15,12 +15,16 @@ module Puppet::Parser::Functions if (nodeinfo['ldap'].has_key?('ipHostNumber')) nodeinfo['ldap']['ipHostNumber'].each do |addr| yaml.keys.each do |hoster| - if yaml[hoster].has_key?'netrange' - yaml[hoster]['netrange'].each do |net| - if IPAddr.new(net).include?(addr) - return hoster - end - end + if yaml[hoster].kind_of?(Array) + netrange = yaml[hoster] + elsif yaml[hoster].kind_of?(Array) and yaml[hoster].has_key?['netrange'] + netrange = yaml[hoster]['netrange'] + else + next + end + netrange.each do |net| + if IPAddr.new(net).include?(addr) + return hoster end end end