Ohai::Config[:plugin_path] << "<%= node[:ohai][:plugin_dir] %>"
-begin
+# Load supporting code for report handlers
- # Load supporting code for report handlers
+require "/etc/chef/report"
- require "/etc/chef/report"
+# Create report handler
- # Create report handler
+email_handler = Chef::Handler::Email.new(:to => "tom@compton.nu")
- email_handler = Chef::Handler::Email.new(:to => "tom@compton.nu")
+# Configure report handlers
- # Configure report handlers
-
- exception_handlers << email_handler
- report_handlers << email_handler
-
-rescue LoadError
-
- # Ignore errors in case required gems not installed yet
-
-end
+exception_handlers << email_handler
+report_handlers << email_handler
# DO NOT EDIT - This file is being maintained by Chef
require "rubygems"
-require "pony"
-
+
class Chef
class Handler
class Email < Chef::Handler
attr_reader :config
- def initialize(config={})
+ def initialize(config = {})
@config = config
@config[:from] ||= "root@openstreetmap.org"
@config
end
-
+
def report
- if failed? and not exception.is_a? SystemExit
+ if failed? && !exception.is_a?(SystemExit)
subject = "Chef run failed on #{node.name}"
message = "#{run_status.formatted_exception}\n"
elsif elapsed_time > 300
subject = "Chef run took #{elapsed_time} on #{node.name}"
message = ""
end
-
- if subject
- message << Array(backtrace).join("\n")
- Pony.mail(:to => @config[:to], :from => @config[:from],
- :subject => subject, :body => message, :via => :smtp)
- end
+ return unless subject
+
+ message << Array(backtrace).join("\n")
+
+ require "pony"
+
+ Pony.mail(:to => @config[:to], :from => @config[:from],
+ :subject => subject, :body => message, :via => :smtp)
end
end
end