class Chef::Provider::Service::Gentoo

Public Instance Methods

define_resource_requirements() click to toggle source
# File lib/chef/provider/service/gentoo.rb, line 48
def define_resource_requirements
  requirements.assert(:all_actions) do |a|
    a.assertion { ::File.exists?("/sbin/rc-update") }
    a.failure_message Chef::Exceptions::Service, "/sbin/rc-update does not exist"
    # no whyrun recovery -t his is a core component whose presence is
    # unlikely to be affected by what we do in the course of a chef run
  end

  requirements.assert(:all_actions) do |a|
    a.assertion { @found_script }
    # No failure, just informational output from whyrun
    a.whyrun "Could not find service #{@new_resource.service_name} under any runlevel"
  end
end
disable_service() click to toggle source
# File lib/chef/provider/service/gentoo.rb, line 67
def disable_service
  shell_out!("/sbin/rc-update del #{@new_resource.service_name} default")
end
enable_service() click to toggle source
# File lib/chef/provider/service/gentoo.rb, line 63
def enable_service
  shell_out!("/sbin/rc-update add #{@new_resource.service_name} default")
end
load_current_resource() click to toggle source
# File lib/chef/provider/service/gentoo.rb, line 27
def load_current_resource
  supports[:status] = true if supports[:status].nil?
  supports[:restart] = true if supports[:restart].nil?

  @found_script = false
  super

  @current_resource.enabled(
    Dir.glob("/etc/runlevels/**/#{Chef::Util::PathHelper.escape_glob_dir(@current_resource.service_name)}").any? do |file|
      @found_script = true
      exists = ::File.exists? file
      readable = ::File.readable? file
      logger.trace "#{@new_resource} exists: #{exists}, readable: #{readable}"
      exists && readable
    end
  )
  logger.trace "#{@new_resource} enabled: #{@current_resource.enabled}"

  @current_resource
end