summaryrefslogtreecommitdiff
path: root/lib/chef/provider/service/init.rb
diff options
context:
space:
mode:
authorAJ Christensen <aj@junglist.gen.nz>2008-10-03 11:31:34 +1300
committerAJ Christensen <aj@junglist.gen.nz>2008-10-03 11:31:34 +1300
commit74d4dbb388c4504a3fb33de5407fed0c856d0af5 (patch)
tree24593af859946067e5b8c77a7b01aadb01c5f90d /lib/chef/provider/service/init.rb
parent6394b5c8839f8d7f2645d9e06a67a204e9e85b6e (diff)
downloadchef-74d4dbb388c4504a3fb33de5407fed0c856d0af5.tar.gz
Namespacing the Service providers to the Service class. Changes Chef::Provider::Debian => Chef::Provider::Service::Debian
Diffstat (limited to 'lib/chef/provider/service/init.rb')
-rw-r--r--lib/chef/provider/service/init.rb108
1 files changed, 55 insertions, 53 deletions
diff --git a/lib/chef/provider/service/init.rb b/lib/chef/provider/service/init.rb
index 3eb70e594e..2571b8ff97 100644
--- a/lib/chef/provider/service/init.rb
+++ b/lib/chef/provider/service/init.rb
@@ -21,73 +21,75 @@ require File.join(File.dirname(__FILE__), "..", "..", "mixin", "command")
class Chef
class Provider
- class Init < Chef::Provider::Service
+ class Service
+ class Init < Chef::Provider::Service
- def load_current_resource
- @current_resource = Chef::Resource::Service.new(@new_resource.name)
- @current_resource.service_name(@new_resource.service_name)
- process_running = false
- if @new_resource.supports[:status]
- run_command(:command => "/etc/init.d/#{@current_resource.service_name} status") == 0 ? process_running = true : process_running = false
- elsif @new_resource.status_command
- run_command(:command => @new_resource.status_command) == 0 ? process_running = true : process_running = false
- else
- Chef::Log.debug("#{@new_resource} does not support status and you have not specified a status command, falling back to process table inspection")
- if @new_resource.pattern == @new_resource.service_name
- Chef::Log.debug("#{@new_resource} defaulting pattern to #{Regex.new(@new_resource.pattern)}")
- elsif Facter["ps"].value == ""
- raise Chef::Exception::Service, "#{@new_resource}: Facter could not determine how to call `ps` on your system (#{Facter["ps"].value})"
- end
+ def load_current_resource
+ @current_resource = Chef::Resource::Service.new(@new_resource.name)
+ @current_resource.service_name(@new_resource.service_name)
+ process_running = false
+ if @new_resource.supports[:status]
+ run_command(:command => "/etc/init.d/#{@current_resource.service_name} status") == 0 ? process_running = true : process_running = false
+ elsif @new_resource.status_command
+ run_command(:command => @new_resource.status_command) == 0 ? process_running = true : process_running = false
+ else
+ Chef::Log.debug("#{@new_resource} does not support status and you have not specified a status command, falling back to process table inspection")
+ if @new_resource.pattern == @new_resource.service_name
+ Chef::Log.debug("#{@new_resource} defaulting pattern to #{Regex.new(@new_resource.pattern)}")
+ elsif Facter["ps"].value == ""
+ raise Chef::Exception::Service, "#{@new_resource}: Facter could not determine how to call `ps` on your system (#{Facter["ps"].value})"
+ end
- process_pid = nil
- status = popen4(Facter["ps"].value) do |pid, stdin, stdout, stderr|
- stdin.close
- r = Regexp.new(@new_resource.pattern)
- Chef::Log.debug("#{@new_resource}: attempting to match #{@new_resource.pattern} (#{r}) against process table")
- stdout.each_line do |line|
- if r.match(line)
- process_pid = line.sub(/^\s+/, '').split(/\s+/)[1]
+ process_pid = nil
+ status = popen4(Facter["ps"].value) do |pid, stdin, stdout, stderr|
+ stdin.close
+ r = Regexp.new(@new_resource.pattern)
+ Chef::Log.debug("#{@new_resource}: attempting to match #{@new_resource.pattern} (#{r}) against process table")
+ stdout.each_line do |line|
+ if r.match(line)
+ process_pid = line.sub(/^\s+/, '').split(/\s+/)[1]
+ end
end
end
+ unless status.exitstatus == 0
+ raise Chef::Exception::Service, "Command #{Facter["ps"].value} failed"
+ else
+ process_pid ? process_running = true : process_running = false
+ Chef::Log.debug("#{@new_resource}: #{Facter["ps"].value} exited succesfully, process_running: #{process_running}")
+ end
end
- unless status.exitstatus == 0
- raise Chef::Exception::Service, "Command #{Facter["ps"].value} failed"
+ @current_resource.running process_running
+ @current_resource
+ end
+
+ def start_service(name)
+ if @new_resource.start_command
+ run_command(:command => @new_resource.start_command)
else
- process_pid ? process_running = true : process_running = false
- Chef::Log.debug("#{@new_resource}: #{Facter["ps"].value} exited succesfully, process_running: #{process_running}")
+ run_command(:command => "/etc/init.d/#{name} start")
end
end
- @current_resource.running process_running
- @current_resource
- end
- def start_service(name)
- if @new_resource.start_command
- run_command(:command => @new_resource.start_command)
- else
- run_command(:command => "/etc/init.d/#{name} start")
+ def stop_service(name)
+ if @new_resource.stop_command
+ run_command(:command => @new_resource.stop_command)
+ else
+ run_command(:command => "/etc/init.d/#{name} stop")
+ end
end
- end
- def stop_service(name)
- if @new_resource.stop_command
- run_command(:command => @new_resource.stop_command)
- else
- run_command(:command => "/etc/init.d/#{name} stop")
+ def restart_service(name)
+ if @new_resource.supports[:restart]
+ run_command(:command => "/etc/init.d/#{name} restart")
+ elsif @new_resource.restart_command
+ run_command(:command => @new_resource.restart_command)
+ else
+ stop_service
+ start_service
+ end
end
- end
- def restart_service(name)
- if @new_resource.supports[:restart]
- run_command(:command => "/etc/init.d/#{name} restart")
- elsif @new_resource.restart_command
- run_command(:command => @new_resource.restart_command)
- else
- stop_service
- start_service
- end
end
-
end
end
end