diff options
author | Davide Cavalca <dcavalca@fb.com> | 2016-03-04 13:28:29 -0800 |
---|---|---|
committer | Davide Cavalca <dcavalca@fb.com> | 2016-03-04 13:28:29 -0800 |
commit | 0174356f01fa20d643042004b20e4d76e0fe0735 (patch) | |
tree | 8a6120532a0c15d390eac8baec5ebb16cb0c1e0d | |
parent | 0520c148d7a9a3b94b4a832974ab3c824f659cb9 (diff) | |
download | chef-0174356f01fa20d643042004b20e4d76e0fe0735.tar.gz |
error out if provider doesn't support user services
-rw-r--r-- | lib/chef/provider/service.rb | 9 | ||||
-rw-r--r-- | lib/chef/provider/service/solaris.rb | 5 | ||||
-rw-r--r-- | lib/chef/provider/service/systemd.rb | 4 |
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| |