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