summaryrefslogtreecommitdiff
path: root/lib/oxidized
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2017-04-01 13:48:17 +0300
committerGitHub <noreply@github.com>2017-04-01 13:48:17 +0300
commit339bf606b646f127e7f5a4544613cfafeaa28f8a (patch)
tree3c3b02fb3b41982cf0e9d2972f9ca95f17b237df /lib/oxidized
parent1148b88b9088e98da579e63fc4fae8b7b2894e9f (diff)
parentce3461f0801cdb6829637646eecd4c87e2d9a9a8 (diff)
Merge pull request #787 from rfdrake/master
more changes to ios.rb
Diffstat (limited to 'lib/oxidized')
-rw-r--r--lib/oxidized/model/ios.rb42
1 files changed, 38 insertions, 4 deletions
diff --git a/lib/oxidized/model/ios.rb b/lib/oxidized/model/ios.rb
index d155aa6..0596f90 100644
--- a/lib/oxidized/model/ios.rb
+++ b/lib/oxidized/model/ios.rb
@@ -20,7 +20,7 @@ class IOS < Oxidized::Model
#cfg.gsub! /\cH+\s{8}/, '' # example how to handle pager
#cfg.gsub! /\cH+/, '' # example how to handle pager
# get rid of errors for commands that don't work on some devices
- cfg.gsub! /^ % Invalid input detected at '\^' marker\./, ''
+ cfg.gsub! /^% Invalid input detected at '\^' marker\.$|^\s+\^$/, ''
cfg.each_line.to_a[1..-2].join
end
@@ -50,6 +50,34 @@ class IOS < Oxidized::Model
slaveslot = ", slot #{$1}";
end
+ if line.match /^Compiled (.*)$/
+ comments << "Image:#{slave} Compiled: #{$1}"
+ end
+
+ if line.match /^(?:Cisco )?IOS .* Software,? \(([A-Za-z0-9_-]*)\), .*Version\s+(.*)$/
+ comments << "Image:#{slave} Software: #{$1}, #{$2}"
+ end
+
+ if line.match /^ROM: (IOS \S+ )?(System )?Bootstrap.*(Version.*)$/
+ comments << "ROM Bootstrap: #{$3}"
+ end
+
+ if line.match /^BOOTFLASH: .*(Version.*)$/
+ comments << "BOOTFLASH: #{$1}"
+ end
+
+ if line.match /^(\d+[kK]) bytes of (non-volatile|NVRAM)/
+ comments << "Memory: nvram #{$1}"
+ end
+
+ if line.match /^(\d+[kK]) bytes of (flash memory|flash internal|processor board System flash|ATA CompactFlash)/i
+ comments << "Memory: flash #{$1}"
+ end
+
+ if line.match (/^(\d+[kK]) bytes of (Flash|ATA)?.*PCMCIA .*(slot|disk) ?(\d)/i)
+ comments << "Memory: pcmcia #{$2} #{$3}#{$4} #{$1}";
+ end
+
if line.match /(\S+(?:\sseries)?)\s+(?:\((\S+)\)\s+processor|\(revision[^)]+\)).*\s+with (\S+k) bytes/i
sproc = $1
cpu = $2
@@ -59,11 +87,11 @@ class IOS < Oxidized::Model
comments << "Memory:#{slave} main #{mem}";
# check the next two lines for more CPU info
if cfg.lines[i+1].match /processor board id (\S+)/i
- comments << "Processor ID: #{$1}";
+ comments << "Processor ID: #{$1}";
end
if cfg.lines[i+2].match /(cpu at |processor: |#{cpu} processor,)/i
- # change implementation to impl and prepend comma
- cpuxtra = cfg.lines[i+2].gsub(/implementation/,'impl').gsub(/^/,', ').chomp;
+ # change implementation to impl and prepend comma
+ cpuxtra = cfg.lines[i+2].gsub(/implementation/,'impl').gsub(/^/,', ').chomp;
end
comments << "CPU:#{slave} #{cpu}#{cpuxtra}#{slaveslot}";
end
@@ -76,6 +104,12 @@ class IOS < Oxidized::Model
comment comments.join "\n"
end
+ cmd 'show vtp status' do |cfg|
+ cfg.gsub! /^$\n/, ''
+ cfg.gsub! /^/, 'VTP: ' if (!cfg.empty?)
+ comment "#{cfg}\n"
+ end
+
cmd 'show inventory' do |cfg|
comment cfg
end