-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9392 from joshcooper/lookup_server_facts
Add server facts when looking up values
- Loading branch information
Showing
5 changed files
with
56 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# frozen_string_literal: true | ||
|
||
class Puppet::Node::ServerFacts | ||
def self.load | ||
server_facts = {} | ||
|
||
# Add our server Puppet Enterprise version, if available. | ||
pe_version_file = '/opt/puppetlabs/server/pe_version' | ||
if File.readable?(pe_version_file) and !File.zero?(pe_version_file) | ||
server_facts['pe_serverversion'] = File.read(pe_version_file).chomp | ||
end | ||
|
||
# Add our server version to the fact list | ||
server_facts["serverversion"] = Puppet.version.to_s | ||
|
||
# And then add the server name and IP | ||
{ "servername" => "networking.fqdn", | ||
"serverip" => "networking.ip", | ||
"serverip6" => "networking.ip6" }.each do |var, fact| | ||
value = Puppet.runtime[:facter].value(fact) | ||
unless value.nil? | ||
server_facts[var] = value | ||
end | ||
end | ||
|
||
if server_facts["servername"].nil? | ||
host = Puppet.runtime[:facter].value('networking.hostname') | ||
if host.nil? | ||
Puppet.warning _("Could not retrieve fact servername") | ||
elsif domain = Puppet.runtime[:facter].value('networking.domain') # rubocop:disable Lint/AssignmentInCondition | ||
server_facts["servername"] = [host, domain].join(".") | ||
else | ||
server_facts["servername"] = host | ||
end | ||
end | ||
|
||
if server_facts["serverip"].nil? && server_facts["serverip6"].nil? | ||
Puppet.warning _("Could not retrieve either serverip or serverip6 fact") | ||
end | ||
|
||
server_facts | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters