diff options
author | Florian Klink <flokli@flokli.de> | 2016-11-10 22:19:40 +0100 |
---|---|---|
committer | Florian Klink <flokli@flokli.de> | 2016-11-10 22:33:10 +0100 |
commit | eaaef17151017210bb20a936c89b43584914f92c (patch) | |
tree | 57916a1426b88d91511cbbc55c0d28e1a42d9d62 | |
parent | c3514dc1402973162ecf5b4ce8cc88826191b0fb (diff) |
add support for PLANET SG switches
So far, only SGS switches were supported.
Now, we check the model type during the 'show version' command, and only
execute the 'show transceiver details' command in case an SGS switch was
detected (as its not supported on SG models).
We will also strip lines containing the current System Time and Uptime.
These only appear on SG models, but it's a good idea to strip them anyways.
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | lib/oxidized/model/planet.rb (renamed from lib/oxidized/model/planetsgs.rb) | 30 |
2 files changed, 26 insertions, 7 deletions
@@ -140,8 +140,7 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen * [Opengear](lib/oxidized/model/opengear.rb) * Palo Alto * [PANOS](lib/oxidized/model/panos.rb) - * PLANET - * [SGS](lib/oxidized/model/planetsgs.rb) + * [PLANET SG/SGS Switches](lib/oxidized/model/planet.rb) * [pfSense](lib/oxidized/model/pfsense.rb) * Quanta * [Quanta / VxWorks 6.6 (1.1.0.8)](lib/oxidized/model/quantaos.rb) diff --git a/lib/oxidized/model/planetsgs.rb b/lib/oxidized/model/planet.rb index c240237..05a369a 100644 --- a/lib/oxidized/model/planetsgs.rb +++ b/lib/oxidized/model/planet.rb @@ -1,4 +1,4 @@ -class PlanetSGS < Oxidized::Model +class Planet < Oxidized::Model prompt /^\r?([\w.@()-]+[#>]\s?)$/ comment '! ' @@ -33,15 +33,35 @@ class PlanetSGS < Oxidized::Model end cmd 'show version' do |cfg| - comment cfg.each_line.to_a[0..-2].join + cfg.gsub! "\n\r", "\n" + @planetgs = true if cfg.match /^System Name\w*:\w*GS-.*$/ + @planetsgs = true if cfg.match /SGS-(.*) Device, Compiled on .*$/ + + cfg = cfg.each_line.to_a[0...-2] + + # Strip system time and system uptime from planet gs switches + cfg = cfg.reject { |line| line.match /System Time\s*:.*/ } + cfg = cfg.reject { |line| line.match /System Uptime\s*:.*/ } + + comment cfg.join end - cmd 'show running-config' + cmd 'show running-config' do |cfg| + cfg.gsub! "\n\r", "\n" + cfg = cfg.each_line.to_a + + cfg = cfg.reject { |line| line.match "Building configuration..." } - cmd 'show transceiver detail | include transceiver detail information|found|Type|length|Nominal|wavelength|Base information' do |cfg| - comment cfg + if @planetsgs + cfg << cmd('show transceiver detail | include transceiver detail information|found|Type|length|Nominal|wavelength|Base information') do |cfg| + comment cfg + end + end + + cfg.join end + cfg :telnet do username /^Username:/ |