]> git.openstreetmap.org Git - chef.git/blob - cookbooks/chef/templates/default/report.rb.erb
518ec13837734ef1d5ea998876479cda9b46e9e3
[chef.git] / cookbooks / chef / templates / default / report.rb.erb
1 # DO NOT EDIT - This file is being maintained by Chef
2
3 require "rubygems"
4
5 class Chef
6   class Handler
7     class Email < Chef::Handler
8       attr_reader :config
9
10       def initialize(config = {})
11         @config = config
12         @config[:from] ||= "root@openstreetmap.org"
13         @config
14       end
15
16       def report
17         if failed? && !exception.is_a?(SystemExit)
18           subject = "Chef run failed on #{node.name}"
19           message = "#{run_status.formatted_exception}\n"
20         elsif elapsed_time > 600
21           subject = "Chef run took #{elapsed_time} on #{node.name}"
22           message = ""
23         end
24
25         return unless subject
26
27         message << Array(backtrace).join("\n")
28
29         require "mail"
30
31         Mail.deliver do
32           to @config[:to]
33           from @config[:from]
34           subject subject
35           body message
36         end
37       end
38     end
39   end
40 end