diff options
author | John Keiser <john@johnkeiser.com> | 2015-05-06 17:33:50 -0700 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2015-06-02 09:53:40 -0700 |
commit | fa0b9a5a92c477ef5ea84bf90a266943bb1a04c9 (patch) | |
tree | e2f7d6a8a7cf70894b9caead82bc306735c2e99e /lib/chef/provider/service.rb | |
parent | 8a968eeb58139b00e8bfc35b52cb9150515525a8 (diff) | |
download | chef-fa0b9a5a92c477ef5ea84bf90a266943bb1a04c9.tar.gz |
Move provider_mapping values out into the actual resource classes
Diffstat (limited to 'lib/chef/provider/service.rb')
-rw-r--r-- | lib/chef/provider/service.rb | 96 |
1 files changed, 45 insertions, 51 deletions
diff --git a/lib/chef/provider/service.rb b/lib/chef/provider/service.rb index 8af04ec39f..1bdc22627e 100644 --- a/lib/chef/provider/service.rb +++ b/lib/chef/provider/service.rb @@ -23,6 +23,8 @@ class Chef class Provider class Service < Chef::Provider + provides :service + include Chef::Mixin::Command def initialize(new_resource, run_context) @@ -169,57 +171,49 @@ class Chef !!@new_resource.send(method_name) end - # - # Platform-specific versions - # - - # - # Linux - # - - require 'chef/chef_class' - require 'chef/provider/service/systemd' - require 'chef/provider/service/insserv' - require 'chef/provider/service/redhat' - require 'chef/provider/service/arch' - require 'chef/provider/service/gentoo' - require 'chef/provider/service/upstart' - require 'chef/provider/service/debian' - require 'chef/provider/service/invokercd' - require 'chef/provider/service/freebsd' - require 'chef/provider/service/openbsd' - require 'chef/provider/service/solaris' - require 'chef/provider/service/macosx' - - # default block for linux O/Sen must come before platform_family exceptions - # so that they take precedence - Chef.set_provider_priority_array :service, [ Systemd, Insserv, Redhat ], - os: "linux" - - Chef.set_provider_priority_array :service, [ Systemd, Arch ], - platform_family: "arch" - Chef.set_provider_priority_array :service, [ Systemd, Gentoo ], - platform_family: "gentoo" - # we can determine what systemd supports accurately - # on debian-ish system if an upstart script exists that must win over sysv types - Chef.set_provider_priority_array :service, [ Systemd, Upstart, Insserv, Debian, Invokercd ], - platform_family: "debian" - Chef.set_provider_priority_array :service, [ Systemd, Insserv, Redhat ], - platform_family: %w(rhel fedora suse) - - # BSDen - Chef.set_provider_priority_array :service, Freebsd, - os: %w(freebsd netbsd) - Chef.set_provider_priority_array :service, Openbsd, - os: "openbsd" - - # Solaris-en - Chef.set_provider_priority_array :service, Solaris, - os: "solaris2" - - # Mac - Chef.set_provider_priority_array :service, Macosx, - os: "darwin" + module ServicePriorityInit + + # + # Platform-specific versions + # + + # + # Linux + # + + require 'chef/chef_class' + require 'chef/provider/service/systemd' + require 'chef/provider/service/insserv' + require 'chef/provider/service/redhat' + require 'chef/provider/service/arch' + require 'chef/provider/service/gentoo' + require 'chef/provider/service/upstart' + require 'chef/provider/service/debian' + require 'chef/provider/service/invokercd' + require 'chef/provider/service/freebsd' + require 'chef/provider/service/openbsd' + require 'chef/provider/service/solaris' + require 'chef/provider/service/macosx' + + def self.os(os, *providers) + Chef.set_provider_priority_array(:service, providers, os: os) + end + def self.platform_family(platform_family, *providers) + Chef.set_provider_priority_array(:service, providers, platform_family: platform_family) + end + + os %w(freebsd netbsd), Freebsd + os %w(openbsd), Openbsd + os %w(solaris2), Solaris + os %w(darwin), Macosx + os %w(linux), Systemd, Insserv, Redhat + + platform_family %w(arch), Systemd, Arch + platform_family %w(gentoo), Systemd, Gentoo + platform_family %w(debian), Systemd, Upstart, Insserv, Debian, Invokercd + platform_family %w(rhel fedora suse), Systemd, Insserv, Redhat + + end end end end |