Update stdlib and concat to 6.1.0 both
[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 # Fact: pe_version
12 Facter.add('pe_version') do
13   setcode do
14     puppet_ver = Facter.value('puppetversion')
15     if !puppet_ver.nil?
16       pe_ver = puppet_ver.match(%r{Puppet Enterprise (\d+\.\d+\.\d+)})
17       pe_ver[1] if pe_ver
18     else
19       nil
20     end
21   end
22 end
23
24 # Fact: is_pe
25 Facter.add('is_pe') do
26   setcode do
27     if Facter.value(:pe_version).to_s.empty?
28       false
29     else
30       true
31     end
32   end
33 end
34
35 # Fact: pe_major_version
36 Facter.add('pe_major_version') do
37   confine :is_pe => true
38   setcode do
39     pe_version = Facter.value(:pe_version)
40     if pe_version
41       pe_version.to_s.split('.')[0]
42     end
43   end
44 end
45
46 # Fact: pe_minor_version
47 Facter.add('pe_minor_version') do
48   confine :is_pe => true
49   setcode do
50     pe_version = Facter.value(:pe_version)
51     if pe_version
52       pe_version.to_s.split('.')[1]
53     end
54   end
55 end
56
57 # Fact: pe_patch_version
58 Facter.add('pe_patch_version') do
59   confine :is_pe => true
60   setcode do
61     pe_version = Facter.value(:pe_version)
62     if pe_version
63       pe_version.to_s.split('.')[2]
64     end
65   end
66 end