]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb
Change hoster.yaml to allow for more keys in the future
[dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / whohosts.rb
1 module Puppet::Parser::Functions
2   newfunction(:whohosts, :type => :rvalue) do |args|
3     require 'ipaddr'
4     require 'yaml'
5
6     nodeinfo = args[0]
7     yamlfile = args[1]
8     parser.watch_file(yamlfile)
9
10     $KCODE = 'utf-8'
11
12     ans = "unknown"
13     yaml = YAML.load_file(yamlfile)
14
15     if (nodeinfo['ldap'].has_key?('ipHostNumber'))
16       nodeinfo['ldap']['ipHostNumber'].each do |addr|
17         yaml.keys.each do |hoster|
18           if yaml[hoster].has_key?'netrange'
19             yaml[hoster]['netrange'].each do |net|
20               if IPAddr.new(net).include?(addr)
21                 return hoster
22               end
23             end
24           end
25         end
26       end
27     end
28     return ans
29   end
30 end
31 # vim:set ts=2:
32 # vim:set et:
33 # vim:set shiftwidth=2: