Skip to content

Commit e1a9bf5

Browse files
committed
Merge pull request #534 from asasfu/feature/package_provider_fact
Add package_provider fact
2 parents 76db981 + ce6e867 commit e1a9bf5

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

lib/facter/package_provider.rb

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Fact: package_provider
2+
#
3+
# Purpose: Returns the default provider Puppet will choose to manage packages
4+
# on this system
5+
#
6+
# Resolution: Instantiates a dummy package resource and return the provider
7+
#
8+
# Caveats:
9+
#
10+
require 'puppet/type'
11+
require 'puppet/type/package'
12+
13+
Facter.add(:package_provider) do
14+
setcode do
15+
Puppet::Type.type(:package).newpackage(:name => 'dummy')[:provider].to_s
16+
end
17+
end
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#! /usr/bin/env ruby -S rspec
2+
require 'spec_helper'
3+
require 'puppet/type'
4+
require 'puppet/type/package'
5+
6+
describe 'package_provider', :type => :fact do
7+
before { Facter.clear }
8+
after { Facter.clear }
9+
10+
context "darwin" do
11+
it "should return pkgdmg" do
12+
provider = Puppet::Type.type(:package).provider(:pkgdmg)
13+
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
14+
15+
expect(Facter.fact(:package_provider).value).to eq('pkgdmg')
16+
end
17+
end
18+
19+
context "centos 7" do
20+
it "should return yum" do
21+
provider = Puppet::Type.type(:package).provider(:yum)
22+
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
23+
24+
expect(Facter.fact(:package_provider).value).to eq('yum')
25+
end
26+
end
27+
28+
context "ubuntu" do
29+
it "should return apt" do
30+
provider = Puppet::Type.type(:package).provider(:apt)
31+
Puppet::Type.type(:package).stubs(:defaultprovider).returns provider
32+
33+
expect(Facter.fact(:package_provider).value).to eq('apt')
34+
end
35+
end
36+
37+
end

0 commit comments

Comments
 (0)