X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/7b9ec4b60ee39614d1d083d7220e76b07d2b275f..b7c12630cb9de017d76fe60ff296534d6d061399:/cookbooks/chef/templates/default/report.rb.erb diff --git a/cookbooks/chef/templates/default/report.rb.erb b/cookbooks/chef/templates/default/report.rb.erb index 5e7886029..4265d0660 100644 --- a/cookbooks/chef/templates/default/report.rb.erb +++ b/cookbooks/chef/templates/default/report.rb.erb @@ -1,33 +1,45 @@ # 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 - 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 = "" + from_address = @config[:from] + to_address = @config[:to] + + if failed? && !exception.is_a?(SystemExit) + message_subject = "Chef run failed on #{node.name}" + message_body = "#{run_status.formatted_exception}\n" + elsif elapsed_time > 600 + message_subject = "Chef run took #{elapsed_time} on #{node.name}" + message_body = "" + end + + return unless message_subject + + message_body << Array(backtrace).join("\n") + + require "mail" + + Mail.defaults do + delivery_method :exim, :location => "/usr/sbin/exim" end - - if subject - message << Array(backtrace).join("\n") - Pony.mail(:to => @config[:to], :from => @config[:from], - :subject => subject, :body => message, :via => :smtp) + Mail.deliver do + to to_address + from from_address + subject message_subject + body message_body end end end