35b5d6bcc1
PE 3.x emits a puppetversion fact in the format "3.x.x (Puppet Enterprise 3.x.x)". This fact causes an error when invoked on PE 3.x: Could not retrieve fact='package_provider', resolution='<anonymous>': Malformed version number string 3.8.1 (Puppet Enterprise 3.8.1 This fix has been tested on PE 3.8.2 and should work for PE 3.3, 3.7, and 3.8. Original-fix-by: Alex Harden <aharden@gmail.com>
21 lines
622 B
Ruby
21 lines
622 B
Ruby
# Fact: package_provider
|
|
#
|
|
# Purpose: Returns the default provider Puppet will choose to manage packages
|
|
# on this system
|
|
#
|
|
# Resolution: Instantiates a dummy package resource and return the provider
|
|
#
|
|
# Caveats:
|
|
#
|
|
require 'puppet/type'
|
|
require 'puppet/type/package'
|
|
|
|
Facter.add(:package_provider) do
|
|
setcode do
|
|
if Gem::Version.new(Facter.value(:puppetversion).split(' ')[0]) >= Gem::Version.new('3.6')
|
|
Puppet::Type.type(:package).newpackage(:name => 'dummy', :allow_virtual => 'true')[:provider].to_s
|
|
else
|
|
Puppet::Type.type(:package).newpackage(:name => 'dummy')[:provider].to_s
|
|
end
|
|
end
|
|
end
|