1 module Puppet::Parser::Functions
2 newfunction(:whohosts, :type => :rvalue) do |args|
8 parser.watch_file(yamlfile)
12 ans = {"name" => "unknown"}
13 yaml = YAML.load_file(yamlfile)
15 if (nodeinfo['ldap'].has_key?('ipHostNumber'))
16 nodeinfo['ldap']['ipHostNumber'].each do |addr|
17 yaml.keys.each do |hoster|
18 if yaml[hoster].kind_of?(Hash) and yaml[hoster].has_key?('netrange')
19 netrange = yaml[hoster]['netrange']
24 netrange.each do |net|
26 if IPAddr.new(net).include?(addr)
31 raise "Error while trying to match addr #{addr} for net #{net}: #{e.message}\n#{e.backtrace}"
42 # vim:set shiftwidth=2: