Merge pull request #534 from asasfu/feature/package_provider_fact
Add package_provider fact
This commit is contained in:
commit
e1a9bf5063
2 changed files with 54 additions and 0 deletions
17
lib/facter/package_provider.rb
Normal file
17
lib/facter/package_provider.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
# 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
|
||||
Puppet::Type.type(:package).newpackage(:name => 'dummy')[:provider].to_s
|
||||
end
|
||||
end
|
37
spec/unit/facter/package_provider_spec.rb
Normal file
37
spec/unit/facter/package_provider_spec.rb
Normal file
|
@ -0,0 +1,37 @@
|
|||
#! /usr/bin/env ruby -S rspec
|
||||
require 'spec_helper'
|
||||
require 'puppet/type'
|
||||
require 'puppet/type/package'
|
||||
|
||||
describe 'package_provider', :type => :fact do
|
||||
before { Facter.clear }
|
||||
after { Facter.clear }
|
||||
|
||||
context "darwin" do
|
||||
it "should return pkgdmg" do
|
||||
provider = Puppet::Type.type(:package).provider(:pkgdmg)
|
||||
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
|
||||
|
||||
expect(Facter.fact(:package_provider).value).to eq('pkgdmg')
|
||||
end
|
||||
end
|
||||
|
||||
context "centos 7" do
|
||||
it "should return yum" do
|
||||
provider = Puppet::Type.type(:package).provider(:yum)
|
||||
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
|
||||
|
||||
expect(Facter.fact(:package_provider).value).to eq('yum')
|
||||
end
|
||||
end
|
||||
|
||||
context "ubuntu" do
|
||||
it "should return apt" do
|
||||
provider = Puppet::Type.type(:package).provider(:apt)
|
||||
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
|
||||
|
||||
expect(Facter.fact(:package_provider).value).to eq('apt')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue