Method: Chef::Provider::Service::Windows#load_current_resource

Defined in:
lib/chef/provider/service/windows.rb

#load_current_resourceObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/chef/provider/service/windows.rb', line 52

def load_current_resource
  @current_resource = Chef::Resource::WindowsService.new(new_resource.name)
  current_resource.service_name(new_resource.service_name)

  if Win32::Service.exists?(current_resource.service_name)
    current_resource.running(current_state == RUNNING)
    logger.trace "#{new_resource} running: #{current_resource.running}"
    case current_startup_type
    when :automatic
      current_resource.enabled(true)
    when :disabled
      current_resource.enabled(false)
    end
    logger.trace "#{new_resource} enabled: #{current_resource.enabled}"

    config_info = Win32::Service.config_info(current_resource.service_name)
    current_resource.service_type(get_service_type(config_info.service_type))    if config_info.service_type
    current_resource.startup_type(start_type_to_sym(config_info.start_type))     if config_info.start_type
    current_resource.error_control(get_error_control(config_info.error_control)) if config_info.error_control
    current_resource.binary_path_name(config_info.binary_path_name) if config_info.binary_path_name
    current_resource.load_order_group(config_info.load_order_group) if config_info.load_order_group
    current_resource.dependencies(config_info.dependencies)         if config_info.dependencies
    current_resource.run_as_user(config_info.service_start_name)    if config_info.service_start_name
    current_resource.display_name(config_info.display_name)         if config_info.display_name
    current_resource.delayed_start(current_delayed_start)           if current_delayed_start
  end

  current_resource
end