summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormsil <michael.silas@sohonet.com>2018-09-07 11:13:46 +0100
committerytti <saku@ytti.fi>2018-09-07 13:13:46 +0300
commit921a4a201b6ec12864a24310d669e07ce0a57c4e (patch)
tree79fab26b0eee52afa45a88230bd9cee2782daf84
parent40cd2ec8986d6c2040c725df8f6f84901cef6f2c (diff)
Add configurable crashfile location and option to use hostnames
PR #1506
-rw-r--r--docs/Configuration.md3
-rw-r--r--lib/oxidized/config.rb3
-rw-r--r--lib/oxidized/node.rb7
3 files changed, 11 insertions, 2 deletions
diff --git a/docs/Configuration.md b/docs/Configuration.md
index aebfbc5..57fe4c0 100644
--- a/docs/Configuration.md
+++ b/docs/Configuration.md
@@ -125,6 +125,9 @@ threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
+crash:
+ directory: ~/.config/oxidized/crashes
+ hostnames: false
vars:
enable: S3cr3tx
groups: {}
diff --git a/lib/oxidized/config.rb b/lib/oxidized/config.rb
index 115e035..25c689a 100644
--- a/lib/oxidized/config.rb
+++ b/lib/oxidized/config.rb
@@ -35,6 +35,9 @@ module Oxidized
asetus.default.models = {} # model level configuration
asetus.default.pid = File.join(Oxidized::Config::Root, 'pid')
+ asetus.default.crash.directory = File.join(Oxidized::Config::Root, 'crashes')
+ asetus.default.crash.hostnames = false
+
asetus.default.stats.history_size = 10
asetus.default.input.default = 'ssh, telnet'
asetus.default.input.debug = false # or String for session log file
diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb
index 9dfeb19..e012b23 100644
--- a/lib/oxidized/node.rb
+++ b/lib/oxidized/node.rb
@@ -74,8 +74,11 @@ module Oxidized
Oxidized.logger.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|
+ crashdir = Oxidized.config.crash.directory
+ crashfile = Oxidized.config.crash.hostnames? ? self.name : self.ip.to_s
+ FileUtils.mkdir_p(crashdir) unless File.directory?(crashdir)
+
+ open File.join(crashdir, crashfile), 'w' do |fh|
fh.puts Time.now.utc
fh.puts err.message + ' [' + err.class.to_s + ']'
fh.puts '-' * 50