Skip to content

Commit 8068bce

Browse files
committed
Refactor server fact loading into a separate class
1 parent a423af8 commit 8068bce

File tree

2 files changed

+45
-35
lines changed

2 files changed

+45
-35
lines changed

lib/puppet/indirector/catalog/compiler.rb

+2-35
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
require_relative '../../../puppet/environments'
44
require_relative '../../../puppet/node'
5+
require_relative '../../../puppet/node/server_facts'
56
require_relative '../../../puppet/resource/catalog'
67
require_relative '../../../puppet/indirector/code'
78
require_relative '../../../puppet/util/profiler'
@@ -426,40 +427,6 @@ def node_from_request(facts, request)
426427
#
427428
# See also set_server_facts in Puppet::Server::Compiler in puppetserver.
428429
def set_server_facts
429-
@server_facts = {}
430-
431-
# Add our server Puppet Enterprise version, if available.
432-
pe_version_file = '/opt/puppetlabs/server/pe_version'
433-
if File.readable?(pe_version_file) and !File.zero?(pe_version_file)
434-
@server_facts['pe_serverversion'] = File.read(pe_version_file).chomp
435-
end
436-
437-
# Add our server version to the fact list
438-
@server_facts["serverversion"] = Puppet.version.to_s
439-
440-
# And then add the server name and IP
441-
{ "servername" => "networking.fqdn",
442-
"serverip" => "networking.ip",
443-
"serverip6" => "networking.ip6" }.each do |var, fact|
444-
value = Puppet.runtime[:facter].value(fact)
445-
unless value.nil?
446-
@server_facts[var] = value
447-
end
448-
end
449-
450-
if @server_facts["servername"].nil?
451-
host = Puppet.runtime[:facter].value('networking.hostname')
452-
if host.nil?
453-
Puppet.warning _("Could not retrieve fact servername")
454-
elsif domain = Puppet.runtime[:facter].value('networking.domain') # rubocop:disable Lint/AssignmentInCondition
455-
@server_facts["servername"] = [host, domain].join(".")
456-
else
457-
@server_facts["servername"] = host
458-
end
459-
end
460-
461-
if @server_facts["serverip"].nil? && @server_facts["serverip6"].nil?
462-
Puppet.warning _("Could not retrieve either serverip or serverip6 fact")
463-
end
430+
@server_facts = Puppet::Node::ServerFacts.load
464431
end
465432
end

lib/puppet/node/server_facts.rb

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# frozen_string_literal: true
2+
3+
class Puppet::Node::ServerFacts
4+
def self.load
5+
server_facts = {}
6+
7+
# Add our server Puppet Enterprise version, if available.
8+
pe_version_file = '/opt/puppetlabs/server/pe_version'
9+
if File.readable?(pe_version_file) and !File.zero?(pe_version_file)
10+
server_facts['pe_serverversion'] = File.read(pe_version_file).chomp
11+
end
12+
13+
# Add our server version to the fact list
14+
server_facts["serverversion"] = Puppet.version.to_s
15+
16+
# And then add the server name and IP
17+
{ "servername" => "networking.fqdn",
18+
"serverip" => "networking.ip",
19+
"serverip6" => "networking.ip6" }.each do |var, fact|
20+
value = Puppet.runtime[:facter].value(fact)
21+
unless value.nil?
22+
server_facts[var] = value
23+
end
24+
end
25+
26+
if server_facts["servername"].nil?
27+
host = Puppet.runtime[:facter].value('networking.hostname')
28+
if host.nil?
29+
Puppet.warning _("Could not retrieve fact servername")
30+
elsif domain = Puppet.runtime[:facter].value('networking.domain') # rubocop:disable Lint/AssignmentInCondition
31+
server_facts["servername"] = [host, domain].join(".")
32+
else
33+
server_facts["servername"] = host
34+
end
35+
end
36+
37+
if server_facts["serverip"].nil? && server_facts["serverip6"].nil?
38+
Puppet.warning _("Could not retrieve either serverip or serverip6 fact")
39+
end
40+
41+
server_facts
42+
end
43+
end

0 commit comments

Comments
 (0)