X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=modules%2Fpuppetmaster%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Fyamlinfo.rb;h=f53014dee3a22c2f7dcaeda9fd746fa9be329605;hb=HEAD;hp=4f6227f118bdae4bc1918fbebc4eb03becd21c95;hpb=55a63628f8e7bbc120abc8378ae119243eb622ce;p=dsa-puppet.git diff --git a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb index 4f6227f1..f53014de 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb @@ -3,9 +3,10 @@ module Puppet::Parser::Functions host = args[0] yamlfile = args[1] - #self.interp.newfile(yamlfile) + parser = Puppet::Parser::Parser.new(environment) + parser.watch_file(yamlfile) - def read_yaml(yaml, host) + read_yaml = lambda { |yaml, host| results = {} ['nameinfo', 'footer'].each do |detail| @@ -27,8 +28,7 @@ module Puppet::Parser::Functions 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,10 +39,9 @@ module Puppet::Parser::Functions end end return(results) - end + } require 'yaml' - $KCODE = 'utf-8' yaml = YAML.load_file(yamlfile) ret = {} @@ -51,10 +50,10 @@ module Puppet::Parser::Functions Dir.entries('/var/lib/puppet/yaml/node/').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)