X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fpuppetmaster%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fyamlinfo.rb;h=6590d62530d4bb5383ae0ca65a27c0ff26b45109;hb=e50cda3666f187a73d78a32a526c81146b4f1602;hp=4cc88f0fd5e1bae11654b3e8bcc1fbb3a8c0729a;hpb=e06b59cd9caf42918d3d1255b2ab3f7e209be0f9;p=mirror%2Fdsa-puppet.git diff --git a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb index 4cc88f0fd..6590d6253 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb @@ -1,11 +1,11 @@ +require 'puppet/file_system' + module Puppet::Parser::Functions newfunction(:yamlinfo, :type => :rvalue) do |args| host = args[0] - yamlfile = args[1] - parser.watch_file(yamlfile) - def read_yaml(yaml, host) + read_yaml = lambda { |yaml, host| results = {} ['nameinfo', 'footer'].each do |detail| @@ -23,12 +23,6 @@ module Puppet::Parser::Functions end end - results['mail_port'] = '' - results['smarthost'] = '' - results['heavy_exim'] = '' - results['smarthost_port'] = 587 - results['reservedaddrs'] = '0.0.0.0/8 : 127.0.0.0/8 : 10.0.0.0/8 : 169.254.0.0/16 : 172.16.0.0/12 : 192.0.0.0/17 : 192.168.0.0/16 : 224.0.0.0/4 : 240.0.0.0/5 : 248.0.0.0/5' - if yaml['host_settings'].kind_of?(Hash) yaml['host_settings'].each_pair do |property, values| if values.kind_of?(Hash) @@ -39,22 +33,22 @@ module Puppet::Parser::Functions end end return(results) - end + } require 'yaml' - $KCODE = 'utf-8' + yamlfile = Puppet::Parser::Files.find_file('debian_org/misc/local.yaml', compiler.environment) yaml = YAML.load_file(yamlfile) ret = {} if host == '*' - Dir.entries('/var/lib/puppet/yaml/node/').each do |fname| + Dir.entries('/var/lib/puppet/yaml/facts/').each do |fname| next unless fname =~ /(.*)\.yaml$/ host_name = $1 - ret[host_name] = read_yaml(yaml, host_name) + ret[host_name] = read_yaml.call(yaml, host_name) end else - ret = read_yaml(yaml, host) + ret = read_yaml.call(yaml, host) end return(ret)