diff options
author | Elvin Efendi <elvin.efendiyev@gmail.com> | 2016-01-04 11:00:14 -0500 |
---|---|---|
committer | Elvin Efendi <elvin.efendiyev@gmail.com> | 2016-01-04 11:00:14 -0500 |
commit | e41f7b429901eb38ad785ad1fc2527dd41f35959 (patch) | |
tree | 02ba46c4f7d43b5721f3eb7de38599e0e019e5cf /lib/oxidized/model | |
parent | ef1a59d2b29df5b00246ee34eba96b0cf4927fa2 (diff) | |
parent | f339170c877ca296987d66c0c44223a8cad1d338 (diff) |
Merge pull request #17 from Shopify/merge-upstream
Merge upstream
Diffstat (limited to 'lib/oxidized/model')
-rw-r--r-- | lib/oxidized/model/fortios.rb | 2 | ||||
-rw-r--r-- | lib/oxidized/model/nos.rb | 2 | ||||
-rw-r--r-- | lib/oxidized/model/powerconnect.rb | 17 | ||||
-rw-r--r-- | lib/oxidized/model/saos.rb | 24 |
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 |