summaryrefslogtreecommitdiff
path: root/lib/chef/provider/service.rb
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2015-05-06 07:59:33 -0700
committerJohn Keiser <john@johnkeiser.com>2015-06-02 09:53:39 -0700
commit9028823f7b046c4c081b1cb1df005d61fbfa1db2 (patch)
tree74d1fa52adb202a6841148be3b82638a578b1b4e /lib/chef/provider/service.rb
parent93f7b74349362d0c698a1080177b94e64248dac6 (diff)
downloadchef-9028823f7b046c4c081b1cb1df005d61fbfa1db2.tar.gz
Use the central priority map for `provides`
Diffstat (limited to 'lib/chef/provider/service.rb')
-rw-r--r--lib/chef/provider/service.rb74
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/chef/provider/service.rb b/lib/chef/provider/service.rb
index 75da2ddb31..4cd7f335dd 100644
--- a/lib/chef/provider/service.rb
+++ b/lib/chef/provider/service.rb
@@ -171,3 +171,77 @@ class Chef
end
end
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
+Chef.set_provider_priority_array :service, [
+ Chef::Provider::Service::Systemd,
+ Chef::Provider::Service::Insserv,
+ Chef::Provider::Service::Redhat,
+], os: "linux"
+
+Chef.set_provider_priority_array :service, [
+ Chef::Provider::Service::Systemd,
+ Chef::Provider::Service::Arch,
+], platform_family: "arch"
+
+Chef.set_provider_priority_array :service, [
+ Chef::Provider::Service::Systemd,
+ Chef::Provider::Service::Gentoo,
+], platform_family: "gentoo"
+
+Chef.set_provider_priority_array :service, [
+ # we can determine what systemd supports accurately
+ Chef::Provider::Service::Systemd,
+ # on debian-ish system if an upstart script exists that must win over sysv types
+ Chef::Provider::Service::Upstart,
+ Chef::Provider::Service::Insserv,
+ Chef::Provider::Service::Debian,
+ Chef::Provider::Service::Invokercd,
+], platform_family: "debian"
+
+Chef.set_provider_priority_array :service, [
+ Chef::Provider::Service::Systemd,
+ Chef::Provider::Service::Insserv,
+ Chef::Provider::Service::Redhat,
+], platform_family: [ "rhel", "fedora", "suse" ]
+
+#
+# BSDen
+#
+
+Chef.set_provider_priority_array :service, Chef::Provider::Service::Freebsd, os: [ "freebsd", "netbsd" ]
+Chef.set_provider_priority_array :service, Chef::Provider::Service::Openbsd, os: [ "openbsd" ]
+
+#
+# Solaris-en
+#
+
+Chef.set_provider_priority_array :service, Chef::Provider::Service::Solaris, os: "solaris2"
+
+#
+# Mac
+#
+
+Chef.set_provider_priority_array :service, Chef::Provider::Service::Macosx, os: "darwin"