diff options
Diffstat (limited to 'lib/oxidized')
-rw-r--r-- | lib/oxidized/node.rb | 9 | ||||
-rw-r--r-- | lib/oxidized/nodes.rb | 8 |
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index 6c7b3aa..3027ccd 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -53,6 +53,15 @@ module Oxidized end Log.send(level, '%s raised %s%s with msg "%s"' % [self.ip, err.class, resc, err.message]) return false + rescue => err + file = Oxidized::Config::Crash + '.' + self.ip.to_s + open file, 'w' do |fh| + fh.puts Time.now.utc + fh.puts err.message + ' [' + err.class.to_s + ']' + fh.puts '-' * 50 + fh.puts err.backtrace + end + Log.error '%s raised %s with msg "%s", %s saved' % [self.ip, err.class, err.message, file] end end diff --git a/lib/oxidized/nodes.rb b/lib/oxidized/nodes.rb index a6aa2f9..4cdbfbb 100644 --- a/lib/oxidized/nodes.rb +++ b/lib/oxidized/nodes.rb @@ -11,7 +11,13 @@ module Oxidized @source = CFG.source[:default] Oxidized.mgr.source = @source Oxidized.mgr.source[@source].new.load.each do |node| - new.push Node.new node + n = nil + begin + n = Node.new node + rescue LoadError => err + Log.warn 'load error %s with node %s' % [err.message, node] + end + new.push n if n end replace new end |