Skip to content

Commit

Permalink
Merge pull request #506 from binford2k/feature/service_provider_fact
Browse files Browse the repository at this point in the history
Add a service_provider fact
  • Loading branch information
hunner committed Sep 24, 2015
2 parents 6bb1c27 + 66e118a commit 4d1bca3
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
14 changes: 14 additions & 0 deletions lib/facter/service_provider.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Fact: service_provider
#
# Purpose: Returns the default provider Puppet will choose to manage services
# on this system
#
# Resolution: Instantiates a dummy service resource and return the provider
#
# Caveats:
#
Facter.add(:service_provider) do
setcode do
Puppet::Type.type(:service).newservice(:name => 'dummy')[:provider].to_s
end
end
37 changes: 37 additions & 0 deletions spec/unit/facter/service_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/service'

describe 'service_provider', :type => :fact do
before { Facter.clear }
after { Facter.clear }

context "macosx" do
it "should return launchd" do
provider = Puppet::Type.type(:service).provider(:launchd)
Puppet::Type.type(:service).stubs(:defaultprovider).returns provider

expect(Facter.fact(:service_provider).value).to eq('launchd')
end
end

context "systemd" do
it "should return systemd" do
provider = Puppet::Type.type(:service).provider(:systemd)
Puppet::Type.type(:service).stubs(:defaultprovider).returns provider

expect(Facter.fact(:service_provider).value).to eq('systemd')
end
end

context "redhat" do
it "should return redhat" do
provider = Puppet::Type.type(:service).provider(:redhat)
Puppet::Type.type(:service).stubs(:defaultprovider).returns provider

expect(Facter.fact(:service_provider).value).to eq('redhat')
end
end

end

0 comments on commit 4d1bca3

Please sign in to comment.