summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2016-11-10 22:19:40 +0100
committerFlorian Klink <flokli@flokli.de>2016-11-10 22:33:10 +0100
commiteaaef17151017210bb20a936c89b43584914f92c (patch)
tree57916a1426b88d91511cbbc55c0d28e1a42d9d62 /lib
parentc3514dc1402973162ecf5b4ce8cc88826191b0fb (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.
Diffstat (limited to 'lib')
-rw-r--r--lib/oxidized/model/planet.rb (renamed from lib/oxidized/model/planetsgs.rb)30
1 files changed, 25 insertions, 5 deletions
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:/