summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Cavalca <dcavalca@fb.com>2016-03-04 13:28:29 -0800
committerDavide Cavalca <dcavalca@fb.com>2016-03-04 13:28:29 -0800
commit0174356f01fa20d643042004b20e4d76e0fe0735 (patch)
tree8a6120532a0c15d390eac8baec5ebb16cb0c1e0d
parent0520c148d7a9a3b94b4a832974ab3c824f659cb9 (diff)
downloadchef-0174356f01fa20d643042004b20e4d76e0fe0735.tar.gz
error out if provider doesn't support user services
-rw-r--r--lib/chef/provider/service.rb9
-rw-r--r--lib/chef/provider/service/solaris.rb5
-rw-r--r--lib/chef/provider/service/systemd.rb4
3 files changed, 18 insertions, 0 deletions
diff --git a/lib/chef/provider/service.rb b/lib/chef/provider/service.rb
index b848d33083..e693bd2eed 100644
--- a/lib/chef/provider/service.rb
+++ b/lib/chef/provider/service.rb
@@ -62,7 +62,16 @@ class Chef
end
end
+ # subclasses should override this if they do implement user services
+ def user_services_requirements
+ requirements.assert(:all_actions) do |a|
+ a.assertion { @new_resource.user.nil? }
+ a.failure_message Chef::Exceptions::UnsupportedAction, "#{self} does not support user services"
+ end
+ end
+
def shared_resource_requirements
+ user_services_requirements
end
def define_resource_requirements
diff --git a/lib/chef/provider/service/solaris.rb b/lib/chef/provider/service/solaris.rb
index 0787392094..1e5398eba8 100644
--- a/lib/chef/provider/service/solaris.rb
+++ b/lib/chef/provider/service/solaris.rb
@@ -49,6 +49,11 @@ class Chef
@current_resource
end
+ def define_resource_requirements
+ # FIXME? need reload from service.rb
+ shared_resource_requirements
+ end
+
def enable_service
shell_out!(default_init_command, "clear", @new_resource.service_name) if @maintenance
shell_out!(default_init_command, "enable", "-s", @new_resource.service_name)
diff --git a/lib/chef/provider/service/systemd.rb b/lib/chef/provider/service/systemd.rb
index 82b887d48b..1597d46a3d 100644
--- a/lib/chef/provider/service/systemd.rb
+++ b/lib/chef/provider/service/systemd.rb
@@ -60,6 +60,10 @@ class Chef::Provider::Service::Systemd < Chef::Provider::Service::Simple
current_resource
end
+ # systemd supports user services just fine
+ def user_services_requirements
+ end
+
def define_resource_requirements
shared_resource_requirements
requirements.assert(:all_actions) do |a|