]> git.openstreetmap.org Git - chef.git/commitdiff
Only load pony when we need it
authorTom Hughes <tom@compton.nu>
Wed, 25 Mar 2015 08:33:18 +0000 (08:33 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 25 Mar 2015 08:39:57 +0000 (08:39 +0000)
This way we can avoid mucking around with rescue to avoid
exceptions if it isn't installed yet.

cookbooks/chef/templates/default/client.rb.erb
cookbooks/chef/templates/default/report.rb.erb

index 52cbbdf017c08b8ff5308231be6814d2db098a15..dff9d19ed8dbbb9ce1ef3eb9f3f5143b9b698620 100644 (file)
@@ -29,23 +29,15 @@ chef_server_url "https://chef.openstreetmap.org"
 
 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
index 5e788602979eb8cde086f3b469eb2f5ec6c38977..0317f92865d54b69643a8ec7a6234e28109183c9 100644 (file)
@@ -1,34 +1,35 @@
 # 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