diff options
Diffstat (limited to 'lib/oxidized/model')
-rw-r--r-- | lib/oxidized/model/ios.rb | 42 |
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 |