summaryrefslogtreecommitdiff
path: root/lib/oxidized/model
diff options
context:
space:
mode:
authorElvin Efendi <elvin.efendiyev@gmail.com>2016-01-04 11:00:14 -0500
committerElvin Efendi <elvin.efendiyev@gmail.com>2016-01-04 11:00:14 -0500
commite41f7b429901eb38ad785ad1fc2527dd41f35959 (patch)
tree02ba46c4f7d43b5721f3eb7de38599e0e019e5cf /lib/oxidized/model
parentef1a59d2b29df5b00246ee34eba96b0cf4927fa2 (diff)
parentf339170c877ca296987d66c0c44223a8cad1d338 (diff)
Merge pull request #17 from Shopify/merge-upstream
Merge upstream
Diffstat (limited to 'lib/oxidized/model')
-rw-r--r--lib/oxidized/model/fortios.rb2
-rw-r--r--lib/oxidized/model/nos.rb2
-rw-r--r--lib/oxidized/model/powerconnect.rb17
-rw-r--r--lib/oxidized/model/saos.rb24
4 files changed, 37 insertions, 8 deletions
diff --git a/lib/oxidized/model/fortios.rb b/lib/oxidized/model/fortios.rb
index 2c796cb..a9d219c 100644
--- a/lib/oxidized/model/fortios.rb
+++ b/lib/oxidized/model/fortios.rb
@@ -2,7 +2,7 @@ class FortiOS < Oxidized::Model
comment '# '
- prompt /^([-\w\.]+(\s[\(\w\-\.\)]+)?\s?[#>]\s?)$/
+ prompt /^([-\w\.]+(\s[\(\w\-\.\)]+)?\~?\s?[#>]\s?)$/
cmd :all do |cfg, cmdstring|
new_cfg = comment "COMMAND: #{cmdstring}\n"
diff --git a/lib/oxidized/model/nos.rb b/lib/oxidized/model/nos.rb
index c2f4319..18ca6a2 100644
--- a/lib/oxidized/model/nos.rb
+++ b/lib/oxidized/model/nos.rb
@@ -26,7 +26,7 @@ class NOS < Oxidized::Model
end
cfg 'show system' do |cfg|
- commen cfg.each_line.reject { |line| line.match /Time/ or line.match /speed/ }
+ comment cfg.each_line.reject { |line| line.match /Time/ or line.match /speed/ }
end
cmd 'show running-config'
diff --git a/lib/oxidized/model/powerconnect.rb b/lib/oxidized/model/powerconnect.rb
index ec15402..cd04766 100644
--- a/lib/oxidized/model/powerconnect.rb
+++ b/lib/oxidized/model/powerconnect.rb
@@ -14,6 +14,9 @@ class PowerConnect < Oxidized::Model
end
cmd 'show version' do |cfg|
+ if (@stackable.nil?)
+ @stackable = true if cfg.match /(U|u)nit\s/
+ end
cfg = cfg.split("\n").select { |line| not line[/Up\sTime/] }
comment cfg.join("\n") + "\n"
end
@@ -47,15 +50,17 @@ class PowerConnect < Oxidized::Model
def clean cfg
out = []
- skip_block = false
+ skip_blocks = 0
cfg.each_line do |line|
- if line.match /Up\sTime|Temperature|Power Supplies/i
- # For 34xx, 35xx, 54xx, 55xx, 62xx and 8024F we should skip this block (terminated by a blank line)
- skip_block = true if @model =~ /^(34|35)(24|48)$|^(54|55)(24|48)$|^(62)(24|48)$|^8024$/
+ # If this is a stackable switch we should skip this block of information
+ if (line.match /Up\sTime|Temperature|Power Suppl(ies|y)|Fans/i and @stackable == true)
+ skip_blocks = 1
+ # Some switches have another empty line. This is identified by this line having a colon
+ skip_blocks = 2 if line.match /:/
end
# If we have lines to skip do this until we reach and empty line
- if skip_block
- skip_block = false if /\S/ !~ line
+ if skip_blocks > 0
+ skip_blocks -= 1 if /\S/ !~ line
next
end
out << line.strip
diff --git a/lib/oxidized/model/saos.rb b/lib/oxidized/model/saos.rb
new file mode 100644
index 0000000..cada35b
--- /dev/null
+++ b/lib/oxidized/model/saos.rb
@@ -0,0 +1,24 @@
+class SAOS < Oxidized::Model
+
+ # Ciena SAOS switch
+ # used for 6.x devices
+
+ comment '! '
+
+ cmd :all do |cfg|
+ cfg.each_line.to_a[1..-2].join
+ end
+
+ cmd 'configuration show' do |cfg|
+ cfg
+ end
+
+ cfg :telnet do
+ username /login:/
+ password /assword:/
+ end
+ cfg :telnet do
+ post_login 'system shell session set more off'
+ pre_logout 'exit'
+ end
+end \ No newline at end of file