summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2016-11-10 23:38:37 +0200
committerGitHub <noreply@github.com>2016-11-10 23:38:37 +0200
commit212214592b59c184cfed451e9529e9c7bb366b99 (patch)
tree57916a1426b88d91511cbbc55c0d28e1a42d9d62
parentc3514dc1402973162ecf5b4ce8cc88826191b0fb (diff)
parenteaaef17151017210bb20a936c89b43584914f92c (diff)
Merge pull request #614 from flokli/planet
add support for PLANET SG switches
-rw-r--r--README.md3
-rw-r--r--lib/oxidized/model/planet.rb (renamed from lib/oxidized/model/planetsgs.rb)30
2 files changed, 26 insertions, 7 deletions
diff --git a/README.md b/README.md
index 5595685..9ca6854 100644
--- a/README.md
+++ b/README.md
@@ -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:/