Read misc files from environment
[mirror/dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / whohosts.rb
index 20f83d3..3192bb7 100644 (file)
@@ -1,24 +1,20 @@
+require 'puppet/file_system'
+
 module Puppet::Parser::Functions
   newfunction(:whohosts, :type => :rvalue) do |args|
     require 'ipaddr'
     require 'yaml'
 
     ipAddrs = args[0]
-    yamlfile = args[1]
-    parser.watch_file(yamlfile)
-
-    $KCODE = 'utf-8'
 
     ans = {"name" => "unknown"}
+    yamlfile = Puppet::Parser::Files.find_file('debian_org/misc/hoster.yaml', compiler.environment)
     yaml = YAML.load_file(yamlfile)
 
     ipAddrs.each do |addr|
       yaml.keys.each do |hoster|
-        if yaml[hoster].kind_of?(Hash) and yaml[hoster].has_key?('netrange')
-          netrange = yaml[hoster]['netrange']
-        else
-          next
-        end
+        next unless yaml[hoster].kind_of?(Hash) and yaml[hoster].has_key?('netrange')
+        netrange = yaml[hoster]['netrange']
 
         netrange.each do |net|
           begin
@@ -32,6 +28,9 @@ module Puppet::Parser::Functions
         end
       end
     end
+    if not ans['longname']
+      ans['longname'] = ans['name']
+    end
     return ans
   end
 end