Add a service_provider fact
This returns the default provider Puppet will choose to manage services on this system by instantiating a dummy service resource type and returning the provider chosen. Co-Authored-By: Simon Fraser University <asa188@sfu.ca>
This commit is contained in:
parent
1d89df906e
commit
66e118a92a
2 changed files with 51 additions and 0 deletions
14
lib/facter/service_provider.rb
Normal file
14
lib/facter/service_provider.rb
Normal file
|
@ -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
spec/unit/facter/service_provider_spec.rb
Normal file
37
spec/unit/facter/service_provider_spec.rb
Normal file
|
@ -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
|
Loading…
Reference in a new issue