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