summaryrefslogtreecommitdiff
path: root/lib/oxidized
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized')
-rw-r--r--lib/oxidized/node.rb9
-rw-r--r--lib/oxidized/nodes.rb8
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