Skip to content

Commit

Permalink
Merge pull request #534 from asasfu/feature/package_provider_fact
Browse files Browse the repository at this point in the history
Add package_provider fact
  • Loading branch information
bmjen committed Oct 1, 2015
2 parents 76db981 + ce6e867 commit e1a9bf5
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
17 changes: 17 additions & 0 deletions lib/facter/package_provider.rb
Original file line number Diff line number Diff line change
@@ -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 changes: 37 additions & 0 deletions spec/unit/facter/package_provider_spec.rb
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit e1a9bf5

Please sign in to comment.