Class: Chef::Provider::Service::Daemontools
- Inherits:
-
Chef::Provider::Service
- Object
- Chef::Provider::Service
- Chef::Provider::Service::Daemontools
- Includes:
- Mixin::ShellOut
- Defined in:
- lib/chef/provider/service/daemontools.rb,
lib/chef/provider/service/daemontools/version.rb
Constant Summary collapse
- VERSION =
"1.0.5"
Instance Method Summary collapse
- #disable_service ⇒ Object
- #enable_service ⇒ Object
-
#initialize(new_resource, run_context = nil) ⇒ Daemontools
constructor
A new instance of Daemontools.
- #load_current_resource ⇒ Object
- #reload_service ⇒ Object
- #restart_service ⇒ Object
- #service_status! ⇒ Object
- #start_service ⇒ Object
- #stop_service ⇒ Object
Constructor Details
#initialize(new_resource, run_context = nil) ⇒ Daemontools
Returns a new instance of Daemontools.
34 35 36 37 38 |
# File 'lib/chef/provider/service/daemontools.rb', line 34 def initialize(new_resource, run_context=nil) super @svc_command = 'svc' @svstat_command = 'svstat' end |
Instance Method Details
#disable_service ⇒ Object
54 55 56 57 58 59 |
# File 'lib/chef/provider/service/daemontools.rb', line 54 def disable_service if @current_resource.enabled service_link = "#{@new_resource.service_dir}/#{@new_resource.service_name}" shell_out!("rm -f #{service_link} && #{@svc_command} -dx . log", :cwd => service_link) end end |
#enable_service ⇒ Object
48 49 50 51 52 |
# File 'lib/chef/provider/service/daemontools.rb', line 48 def enable_service if !@current_resource.enabled ::File.symlink(@new_resource.directory, "#{@new_resource.service_dir}/#{@new_resource.service_name}") end end |
#load_current_resource ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/chef/provider/service/daemontools.rb', line 40 def load_current_resource @current_resource = Chef::Resource::Service.new(@new_resource.name) @current_resource.service_name(@new_resource.service_name) service_status! @current_resource end |
#reload_service ⇒ Object
73 74 75 76 77 |
# File 'lib/chef/provider/service/daemontools.rb', line 73 def reload_service if @current_resource.enabled && @current_resource.running shell_out!("#{@svc_command} -h #{@new_resource.service_dir}/#{@new_resource.service_name}") end end |
#restart_service ⇒ Object
79 80 81 82 83 |
# File 'lib/chef/provider/service/daemontools.rb', line 79 def restart_service if @current_resource.enabled && @current_resource.running shell_out!("#{@svc_command} -t #{@new_resource.service_dir}/#{@new_resource.service_name}") end end |
#service_status! ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/chef/provider/service/daemontools.rb', line 85 def service_status! service_link = "#{@current_resource.service_dir}/#{@current_resource.service_name}" if ::File.symlink?(service_link) && ::File.exist?("#{service_link}/run") @current_resource.enabled(true) status = shell_out!("#{@svstat_command} #{service_link}") if status.exitstatus == 0 retry_count = 4 while status.stdout =~ /: supervise not running/ or status.stdout =~ /: unable to open supervise\/ok/ sleep 1 retry_count -= 1 status = shell_out!("#{@svstat_command} #{service_link}") break if retry_count < 0 end if status.stdout =~ /: up \(pid [1-9]/ @current_resource.running(true) elsif status.stdout =~ /: down [1-9]/ @current_resource.running(false) else @current_resource.running(false) end else @current_resource.running(false) end else @current_resource.enabled(false) @current_resource.running(false) end @current_resource end |
#start_service ⇒ Object
61 62 63 64 65 |
# File 'lib/chef/provider/service/daemontools.rb', line 61 def start_service if @current_resource.enabled && !@current_resource.running shell_out!("#{@svc_command} -u #{@new_resource.service_dir}/#{@new_resource.service_name}") end end |
#stop_service ⇒ Object
67 68 69 70 71 |
# File 'lib/chef/provider/service/daemontools.rb', line 67 def stop_service if @current_resource.enabled && @current_resource.running shell_out!("#{@svc_command} -d #{@new_resource.service_dir}/#{@new_resource.service_name}") end end |