From 1564a50936c74b7621173985fb6bb6d34c697989 Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Tue, 11 Apr 2017 19:44:06 +0200 Subject: [PATCH] Read misc files from environment --- modules/debian_org/{ => files}/misc/hoster.yaml | 0 modules/debian_org/{ => files}/misc/local.yaml | 0 .../lib/puppet/parser/functions/entropy_provider.rb | 2 +- modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb | 2 +- modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb | 4 +++- modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb | 4 +++- modules/site/manifests/init.pp | 4 ++-- 7 files changed, 10 insertions(+), 6 deletions(-) rename modules/debian_org/{ => files}/misc/hoster.yaml (100%) rename modules/debian_org/{ => files}/misc/local.yaml (100%) diff --git a/modules/debian_org/misc/hoster.yaml b/modules/debian_org/files/misc/hoster.yaml similarity index 100% rename from modules/debian_org/misc/hoster.yaml rename to modules/debian_org/files/misc/hoster.yaml diff --git a/modules/debian_org/misc/local.yaml b/modules/debian_org/files/misc/local.yaml similarity index 100% rename from modules/debian_org/misc/local.yaml rename to modules/debian_org/files/misc/local.yaml diff --git a/modules/puppetmaster/lib/puppet/parser/functions/entropy_provider.rb b/modules/puppetmaster/lib/puppet/parser/functions/entropy_provider.rb index 9f628cb60..4d091008f 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/entropy_provider.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/entropy_provider.rb @@ -22,7 +22,7 @@ module Puppet::Parser::Functions next unless localinfo[node]['entropy_key'] addresses = allnodeinfo[node]['ipHostNumber'] - thishoster = function_whohosts([addresses, "/etc/puppet/modules/debian_org/misc/hoster.yaml"]) + thishoster = function_whohosts([addresses]) name = thishoster['name'] provider << node diff --git a/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb index 1380a02ed..0695fdf9c 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/nodeinfo.rb @@ -12,7 +12,7 @@ module Puppet::Parser::Functions unless nodeinfo['ldap']['ipHostNumber'] raise Puppet::ParseError, "Host #{host} does not have ipHostNumber values in ldap" end - nodeinfo['hoster'] = function_whohosts([nodeinfo['ldap']['ipHostNumber'], "/etc/puppet/modules/debian_org/misc/hoster.yaml"]) + nodeinfo['hoster'] = function_whohosts([nodeinfo['ldap']['ipHostNumber']]) nodeinfo['buildd'] = (nodeinfo['ldap']['purpose'].respond_to?('include?') && nodeinfo['ldap']['purpose'].include?('buildd')) nodeinfo['timeserver'] = (nodeinfo['ldap']['purpose'].respond_to?('include?') && nodeinfo['ldap']['purpose'].include?('timeserver')) nodeinfo['porterbox'] = (nodeinfo['ldap']['purpose'].respond_to?('include?') && nodeinfo['ldap']['purpose'].include?('porterbox')) diff --git a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb index 43592854c..3192bb731 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/whohosts.rb @@ -1,12 +1,14 @@ +require 'puppet/file_system' + module Puppet::Parser::Functions newfunction(:whohosts, :type => :rvalue) do |args| require 'ipaddr' require 'yaml' ipAddrs = args[0] - yamlfile = args[1] 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| diff --git a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb index 0c64b22e8..42a47959a 100644 --- a/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb +++ b/modules/puppetmaster/lib/puppet/parser/functions/yamlinfo.rb @@ -1,8 +1,9 @@ +require 'puppet/file_system' + module Puppet::Parser::Functions newfunction(:yamlinfo, :type => :rvalue) do |args| host = args[0] - yamlfile = args[1] read_yaml = lambda { |yaml, host| results = {} @@ -41,6 +42,7 @@ module Puppet::Parser::Functions require 'yaml' + yamlfile = Puppet::Parser::Files.find_file('debian_org/misc/local.yaml', compiler.environment) yaml = YAML.load_file(yamlfile) ret = {} diff --git a/modules/site/manifests/init.pp b/modules/site/manifests/init.pp index 19a64b5bf..2f9dc6941 100644 --- a/modules/site/manifests/init.pp +++ b/modules/site/manifests/init.pp @@ -1,7 +1,7 @@ class site { - $localinfo = yamlinfo('*', '/etc/puppet/modules/debian_org/misc/local.yaml') - $nodeinfo = nodeinfo($::fqdn, '/etc/puppet/modules/debian_org/misc/local.yaml') + $localinfo = yamlinfo('*') + $nodeinfo = nodeinfo($::fqdn) $allnodeinfo = allnodeinfo('sshRSAHostKey ipHostNumber', 'purpose mXRecord physicalHost purpose') $roles = hiera('roles') -- 2.20.1