FILE: C:\ProgramData\PuppetLabs\puppet\var\lib\facter\pe_version.rb
--
# Fact: is_pe, pe_version, pe_major_version, pe_minor_version, pe_patch_version
#
# Purpose: Return various facts about the PE state of the system
#
# Resolution: Uses a regex match against puppetversion to determine whether the
# machine has Puppet Enterprise installed, and what version (overall, major,
# minor, patch) is installed.
#
# Caveats:
#
# Fact: pe_version
Facter.add('pe_version') do
setcode do
found_version = Facter.value('pe_build')
unless found_version
puppet_ver = Facter.value('puppetversion')
unless puppet_ver.nil?
pe_ver = puppet_ver.match(%r{Puppet Enterprise (\d+\.\d+\.\d+)})
found_version = pe_ver[1] if pe_ver
end
end
found_version
end
end
# Fact: is_pe
Facter.add('is_pe') do
setcode do
if Facter.value(:pe_version).to_s.empty?
false
else
true
end
end
end
# Fact: pe_major_version
Facter.add('pe_major_version') do
confine :is_pe => true
setcode do
pe_version = Facter.value(:pe_version)
if pe_version
pe_version.to_s.split('.')[0]
end
end
end
# Fact: pe_minor_version
Facter.add('pe_minor_version') do
confine :is_pe => true
setcode do
pe_version = Facter.value(:pe_version)
if pe_version
pe_version.to_s.split('.')[1]
end
end
end
# Fact: pe_patch_version
Facter.add('pe_patch_version') do
confine :is_pe => true
setcode do
pe_version = Facter.value(:pe_version)
if pe_version
pe_version.to_s.split('.')[2]
end
end
end
--