class Chef::Provider::Service::AixInit

Constants

RC_D_SCRIPT_NAME

Public Class Methods

new(new_resource, run_context) click to toggle source
Calls superclass method Chef::Provider::Service::Init.new
# File lib/chef/provider/service/aixinit.rb, line 27
def initialize(new_resource, run_context)
  super
  @init_command = "/etc/rc.d/init.d/#{@new_resource.service_name}"
end

Public Instance Methods

action_enable() click to toggle source
# File lib/chef/provider/service/aixinit.rb, line 41
def action_enable
  if @new_resource.priority.nil?
    priority_ok = true
  else
    priority_ok = @current_resource.priority == @new_resource.priority
  end
  if @current_resource.enabled && priority_ok
    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
disable_service() click to toggle source
# File lib/chef/provider/service/aixinit.rb, line 74
def disable_service
  Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }

  if @new_resource.priority.is_a? Integer
    create_symlink(2, "K", 100 - @new_resource.priority)
  elsif @new_resource.priority.is_a? Hash
    @new_resource.priority.each do |level, o|
      create_symlink(level, "K", 100 - o[1]) if o[0] == :stop
    end
  else
    create_symlink(2, "K", "")
  end
end
enable_service() click to toggle source
# File lib/chef/provider/service/aixinit.rb, line 59
def enable_service
  Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"]).each { |f| ::File.delete(f) }

  if @new_resource.priority.is_a? Integer
    create_symlink(2, "S", @new_resource.priority)

  elsif @new_resource.priority.is_a? Hash
    @new_resource.priority.each do |level, o|
      create_symlink(level, (o[0] == :start ? "S" : "K"), o[1])
    end
  else
    create_symlink(2, "S", "")
  end
end
load_current_resource() click to toggle source
# File lib/chef/provider/service/aixinit.rb, line 32
def load_current_resource
  super
  @priority_success = true
  @rcd_status = nil

  set_current_resource_attributes
  @current_resource
end
set_current_resource_attributes() click to toggle source
# File lib/chef/provider/service/aixinit.rb, line 92
def set_current_resource_attributes
  # assuming run level 2 for aix
  is_enabled = false
  files = Dir.glob(["/etc/rc.d/rc2.d/[SK][0-9][0-9]#{@new_resource.service_name}", "/etc/rc.d/rc2.d/[SK]#{@new_resource.service_name}"])

  priority = {}

  files.each do |file|
    if RC_D_SCRIPT_NAME =~ file
      priority[2] = [($1 == "S" ? :start : :stop), ($2.empty? ? "" : $2.to_i)]
      if $1 == "S"
        is_enabled = true
      end
    end
  end

  if is_enabled && files.length == 1
    priority = priority[2][1]
  end
  @current_resource.enabled(is_enabled)
  @current_resource.priority(priority)
end