class Chef::Provider::Service
Public Class Methods
new(new_resource, run_context)
click to toggle source
Calls superclass method
Chef::Provider.new
# File lib/chef/provider/service.rb, line 30 def initialize(new_resource, run_context) super @enabled = nil end
Public Instance Methods
action_disable()
click to toggle source
# File lib/chef/provider/service.rb, line 93 def action_disable if current_resource.enabled converge_by("disable service #{new_resource}") do disable_service logger.info("#{new_resource} disabled") end else logger.trace("#{new_resource} already disabled - nothing to do") end load_new_resource_state new_resource.enabled(false) end
action_enable()
click to toggle source
# File lib/chef/provider/service.rb, line 80 def action_enable if current_resource.enabled logger.trace("#{new_resource} already enabled - nothing to do") else converge_by("enable service #{new_resource}") do enable_service logger.info("#{new_resource} enabled") end end load_new_resource_state new_resource.enabled(true) end
action_mask()
click to toggle source
# File lib/chef/provider/service.rb, line 106 def action_mask if current_resource.masked logger.trace("#{new_resource} already masked - nothing to do") else converge_by("mask service #{new_resource}") do mask_service logger.info("#{new_resource} masked") end end load_new_resource_state new_resource.masked(true) end
action_reload()
click to toggle source
# File lib/chef/provider/service.rb, line 167 def action_reload if current_resource.running converge_by("reload service #{new_resource}") do reload_service logger.info("#{new_resource} reloaded") end end load_new_resource_state end
action_restart()
click to toggle source
# File lib/chef/provider/service.rb, line 158 def action_restart converge_by("restart service #{new_resource}") do restart_service logger.info("#{new_resource} restarted") end load_new_resource_state new_resource.running(true) end
action_start()
click to toggle source
# File lib/chef/provider/service.rb, line 132 def action_start unless current_resource.running converge_by("start service #{new_resource}") do start_service logger.info("#{new_resource} started") end else logger.trace("#{new_resource} already running - nothing to do") end load_new_resource_state new_resource.running(true) end
action_stop()
click to toggle source
# File lib/chef/provider/service.rb, line 145 def action_stop if current_resource.running converge_by("stop service #{new_resource}") do stop_service logger.info("#{new_resource} stopped") end else logger.trace("#{new_resource} already stopped - nothing to do") end load_new_resource_state new_resource.running(false) end
action_unmask()
click to toggle source
# File lib/chef/provider/service.rb, line 119 def action_unmask if current_resource.masked converge_by("unmask service #{new_resource}") do unmask_service logger.info("#{new_resource} unmasked") end else logger.trace("#{new_resource} already unmasked - nothing to do") end load_new_resource_state new_resource.masked(false) end
define_resource_requirements()
click to toggle source
# File lib/chef/provider/service.rb, line 70 def define_resource_requirements requirements.assert(:reload) do |a| a.assertion { supports[:reload] || new_resource.reload_command } a.failure_message Chef::Exceptions::UnsupportedAction, "#{self} does not support :reload" # if a service is not declared to support reload, that won't # typically change during the course of a run - so no whyrun # alternative here. end end
disable_service()
click to toggle source
# File lib/chef/provider/service.rb, line 181 def disable_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :disable" end
enable_service()
click to toggle source
# File lib/chef/provider/service.rb, line 177 def enable_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :enable" end
load_current_resource()
click to toggle source
# File lib/chef/provider/service.rb, line 35 def load_current_resource supports[:status] = false if supports[:status].nil? supports[:reload] = false if supports[:reload].nil? supports[:restart] = false if supports[:restart].nil? end
load_new_resource_state()
click to toggle source
the new_resource#enabled and running variables are not user input, but when we do (e.g.) #action_enable we want to set new_resource.enabled so that the comparison between desired and current state produces the correct change in reporting. XXX?: the nil? check below will likely fail if this is a cloned resource or if we just run multiple actions.
# File lib/chef/provider/service.rb, line 46 def load_new_resource_state if new_resource.enabled.nil? new_resource.enabled(current_resource.enabled) end if new_resource.running.nil? new_resource.running(current_resource.running) end if new_resource.masked.nil? new_resource.masked(current_resource.masked) end end
mask_service()
click to toggle source
# File lib/chef/provider/service.rb, line 185 def mask_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :mask" end
reload_service()
click to toggle source
# File lib/chef/provider/service.rb, line 205 def reload_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :reload" end
restart_service()
click to toggle source
# File lib/chef/provider/service.rb, line 201 def restart_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :restart" end
start_service()
click to toggle source
# File lib/chef/provider/service.rb, line 193 def start_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :start" end
stop_service()
click to toggle source
# File lib/chef/provider/service.rb, line 197 def stop_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :stop" end
supports()
click to toggle source
# File lib/chef/provider/service.rb, line 26 def supports @supports ||= new_resource.supports.dup end
unmask_service()
click to toggle source
# File lib/chef/provider/service.rb, line 189 def unmask_service raise Chef::Exceptions::UnsupportedAction, "#{self} does not support :unmask" end
user_services_requirements()
click to toggle source
subclasses should override this if they do implement user services
# File lib/chef/provider/service.rb, line 59 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
Protected Instance Methods
custom_command_for_action?(action)
click to toggle source
# File lib/chef/provider/service.rb, line 219 def custom_command_for_action?(action) method_name = "#{action}_command".to_sym new_resource.respond_to?(method_name) && !!new_resource.send(method_name) end
default_init_command()
click to toggle source
# File lib/chef/provider/service.rb, line 211 def default_init_command if new_resource.init_command new_resource.init_command elsif instance_variable_defined?(:@init_command) @init_command end end