Handle old and new style hosters.yaml
[mirror/dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / whohosts.rb
index 2835cef..972c3bc 100644 (file)
@@ -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