summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormarkgibbons <mark.gibbons@nordstrom.com>2016-11-09 16:00:48 -0800
committermarkgibbons <mark.gibbons@nordstrom.com>2016-11-15 16:32:21 -0800
commit58c5137e854782329215182364110021a0418a2e (patch)
tree2dff664831c2f8bbc82eb1abafdfd35b6f10ff9f /lib
parentfc0ead5b9ec6aa28ae263f8f9c6bc4c7310c9471 (diff)
downloadchef-58c5137e854782329215182364110021a0418a2e.tar.gz
smf_recursive_dependencies: Allow solaris services to start recursively.
Svcadm enable -s service only starts the named service. This commit adds the recursive option to start service dependencies recursively. The resulting command "svcadm enable -sr service" will try to start service dependencies before starting the named service. Signed-off-by: markgibbons <mark.gibbons@nordstrom.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/provider/service/solaris.rb3
-rw-r--r--lib/chef/resource/service.rb9
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/chef/provider/service/solaris.rb b/lib/chef/provider/service/solaris.rb
index 868b3e1ac1..c3e47b3a5c 100644
--- a/lib/chef/provider/service/solaris.rb
+++ b/lib/chef/provider/service/solaris.rb
@@ -56,7 +56,8 @@ class Chef
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)
+ start_flags = @new_resource.recursive ? "-sr" : "-s"
+ shell_out!(default_init_command, "enable", start_flags , @new_resource.service_name)
end
def disable_service
diff --git a/lib/chef/resource/service.rb b/lib/chef/resource/service.rb
index 1ca4b84af0..c230278434 100644
--- a/lib/chef/resource/service.rb
+++ b/lib/chef/resource/service.rb
@@ -49,6 +49,7 @@ class Chef
@run_levels = nil
@user = nil
@supports = { :restart => nil, :reload => nil, :status => nil }
+ @recursive = nil
end
def service_name(arg = nil)
@@ -212,6 +213,14 @@ class Chef
end
end
+ def recursive(arg = nil)
+ set_or_return(
+ :user,
+ arg,
+ :kind_of => [ TrueClass, FalseClass ]
+ )
+ end
+
end
end
end