]> git.donarmstrong.com Git - dsa-puppet.git/commitdiff
Handle old and new style hosters.yaml
authorPeter Palfrader <peter@palfrader.org>
Tue, 1 Mar 2011 09:51:18 +0000 (10:51 +0100)
committerPeter Palfrader <peter@palfrader.org>
Tue, 1 Mar 2011 09:51:18 +0000 (10:51 +0100)
modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb

index c2bda8c4aa05db1fdf7052d5ef4dbb0e427515cd..972c3bc93f96aa3e6ec583011e71423c5ab0ce3e 100644 (file)
@@ -15,10 +15,16 @@ module Puppet::Parser::Functions
     if (nodeinfo['ldap'].has_key?('ipHostNumber'))
       nodeinfo['ldap']['ipHostNumber'].each do |addr|
         yaml.keys.each do |hoster|
-          yaml[hoster].each do |net|
-            if IPAddr.new(net).include?(addr)
-              ans = hoster
-            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
@@ -26,3 +32,6 @@ module Puppet::Parser::Functions
     return ans
   end
 end
+# vim:set ts=2:
+# vim:set et:
+# vim:set shiftwidth=2: