upgrade to stdlib 4.6.1
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / facter / pe_version.rb
1 # Fact: is_pe, pe_version, pe_major_version, pe_minor_version, pe_patch_version
2 #
3 # Purpose: Return various facts about the PE state of the system
4 #
5 # Resolution: Uses a regex match against puppetversion to determine whether the
6 #   machine has Puppet Enterprise installed, and what version (overall, major,
7 #   minor, patch) is installed.
8 #
9 # Caveats:
10 #
11 Facter.add("pe_version") do
12   setcode do
13     pe_ver = Facter.value("puppetversion").match(/Puppet Enterprise (\d+\.\d+\.\d+)/)
14     pe_ver[1] if pe_ver
15   end
16 end
17
18 Facter.add("is_pe") do
19   setcode do
20     if Facter.value(:pe_version).to_s.empty? then
21       false
22     else
23       true
24     end
25   end
26 end
27
28 Facter.add("pe_major_version") do
29   confine :is_pe => true
30   setcode do
31     if pe_version = Facter.value(:pe_version)
32       pe_version.to_s.split('.')[0]
33     end
34   end
35 end
36
37 Facter.add("pe_minor_version") do
38   confine :is_pe => true
39   setcode do
40     if pe_version = Facter.value(:pe_version)
41       pe_version.to_s.split('.')[1]
42     end
43   end
44 end
45
46 Facter.add("pe_patch_version") do
47   confine :is_pe => true
48   setcode do
49     if pe_version = Facter.value(:pe_version)
50       pe_version.to_s.split('.')[2]
51     end
52   end
53 end