diff options
Diffstat (limited to 'lib')
| -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 | 
