Class: Chef::EventLoggers::WindowsEventLogger

Inherits:
Base show all
Defined in:
lib/chef/event_loggers/windows_eventlog.rb

Constant Summary collapse

RUN_START_EVENT_ID =

These must match those that are defined in the manifest file

10000
RUN_STARTED_EVENT_ID =
10001
RUN_COMPLETED_EVENT_ID =
10002
RUN_FAILED_EVENT_ID =
10003
EVENT_CATEGORY_ID =
11000
LOG_CATEGORY_ID =
11001
SOURCE =

Since we must install the event logger, this is not really configurable

'Chef'

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

short_name

Methods inherited from Chef::EventDispatch::Base

#attribute_file_load_failed, #attribute_file_loaded, #attribute_load_complete, #attribute_load_start, #converge_complete, #converge_start, #cookbook_clean_complete, #cookbook_clean_start, #cookbook_resolution_complete, #cookbook_resolution_failed, #cookbook_resolution_start, #cookbook_sync_complete, #cookbook_sync_failed, #cookbook_sync_start, #definition_file_load_failed, #definition_file_loaded, #definition_load_complete, #definition_load_start, #handler_executed, #handlers_completed, #handlers_start, #library_file_load_failed, #library_file_loaded, #library_load_complete, #library_load_start, #lwrp_file_load_failed, #lwrp_file_loaded, #lwrp_load_complete, #lwrp_load_start, #msg, #node_load_completed, #node_load_failed, #node_load_start, #ohai_completed, #provider_requirement_failed, #recipe_file_load_failed, #recipe_file_loaded, #recipe_load_complete, #recipe_load_start, #recipe_not_found, #registration_completed, #registration_failed, #registration_start, #removed_cookbook_file, #resource_action_start, #resource_bypassed, #resource_completed, #resource_current_state_load_bypassed, #resource_current_state_loaded, #resource_failed, #resource_failed_retriable, #resource_skipped, #resource_up_to_date, #resource_update_applied, #resource_updated, #run_list_expand_failed, #skipping_registration, #stream_closed, #stream_opened, #stream_output, #synchronized_cookbook, #updated_cookbook_file, #whyrun_assumption

Constructor Details

#initializeWindowsEventLogger

Returns a new instance of WindowsEventLogger.



52
53
54
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 52

def initialize
  @eventlog = ::Win32::EventLog::open('Application')
end

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 48

def self.available?
  return Chef::Platform::windows?
end

Instance Method Details

#run_completed(node) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 75

def run_completed(node)
  @eventlog.report_event(
    :event_type => ::Win32::EventLog::INFO_TYPE,
    :source => SOURCE,
    :event_id => RUN_COMPLETED_EVENT_ID,
    :data => [@run_status.run_id, @run_status.elapsed_time.to_s]
  )
end

#run_failed(e) ⇒ Object

Failed chef-client run %1 in %2 seconds. Exception type: %3 Exception message: %4 Exception backtrace: %5



88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 88

def run_failed(e)
  @eventlog.report_event(
    :event_type => ::Win32::EventLog::ERROR_TYPE,
    :source => SOURCE,
    :event_id => RUN_FAILED_EVENT_ID,
    :data => [@run_status.run_id,
              @run_status.elapsed_time.to_s,
              e.class.name,
              e.message,
              e.backtrace.join("\n")]
  )
end

#run_start(version) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 56

def run_start(version)
  @eventlog.report_event(
    :event_type => ::Win32::EventLog::INFO_TYPE,
    :source => SOURCE,
    :event_id => RUN_START_EVENT_ID,
    :data => [version]
  )
end

#run_started(run_status) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/chef/event_loggers/windows_eventlog.rb', line 65

def run_started(run_status)
  @run_status = run_status
  @eventlog.report_event(
    :event_type => ::Win32::EventLog::INFO_TYPE,
    :source => SOURCE,
    :event_id => RUN_STARTED_EVENT_ID,
    :data => [run_status.run_id]
  )
end