lib/deputy.rb in deputy-0.1.46 vs lib/deputy.rb in deputy-0.1.47

- old
+ new

@@ -102,21 +102,30 @@ def self.run_plugins sleep_random_interval content = get("/plugins.rb") + exceptions = [] Scout.plugins(content).each do |interval, plugin| run_every_n_minutes = interval/60 minutes_to_wait = run_every_n_minutes - (START_MINUTE % run_every_n_minutes) if minutes_to_wait == run_every_n_minutes puts "#{plugin.clean_class_name}: running" - plugin.new.build_report + begin + plugin.new.build_report + rescue Object => e # catch and report plugin-specific errors + e.message[0..0] = plugin.to_s.split('::')[1..-1].join + puts e + exceptions << e + end else puts "#{plugin.clean_class_name}: waiting another #{minutes_to_wait} minutes" end end - send_report 'Deputies.finished', DEFAULT_VALUE - rescue Exception => e + send_report 'Deputies.finished', (exceptions.empty? ? DEFAULT_VALUE : 'Error') + + raise exceptions.first unless exceptions.empty? + rescue Object => e # catch and report neta errors send_report "Deputies.Error", e.message raise e end def self.send_report(group, value, options = {}) \ No newline at end of file