From 8af82629acea08774b2e5cc6a6148079f04fdfad Mon Sep 17 00:00:00 2001 From: Alexander Schaber Date: Tue, 7 Feb 2017 13:45:32 +0100 Subject: add support for netgear switch --- lib/oxidized/model/netgear.rb | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lib/oxidized/model/netgear.rb diff --git a/lib/oxidized/model/netgear.rb b/lib/oxidized/model/netgear.rb new file mode 100644 index 0000000..59616e2 --- /dev/null +++ b/lib/oxidized/model/netgear.rb @@ -0,0 +1,41 @@ +class Netgear < Oxidized::Model + + comment '!' + prompt /^(\([\w-]+\)\s[#>])$/ + + def telnet + @input.class.to_s.match(/Telnet/) + end + + expect /^--More-- or \(q\)uit/ do |data, re| + send ' ' + data.sub re, '' + end + + cmd :secret do |cfg| + cfg.gsub!(/password (\S+)/, 'password ') + cfg + end + + cfg :telnet, :ssh do + if vars :enable + post_login do + send "enable\n" + # Interpret enable: true as meaning we won't be prompted for a password + unless vars(:enable).is_a? TrueClass + expect /[pP]assword:\s?$/ + send vars(:enable) + "\n" + end + expect /^.+[#]$/ + end + end + pre_logout 'exit' + pre_logout 'quit' + end + + cmd 'show running-config' do |cfg| + cfg.gsub! /^(!.*Time).*$/, '\1' + end + +end + -- cgit v1.2.1 From 7c42c2891e7da0432c805e95678934e5a63770cd Mon Sep 17 00:00:00 2001 From: Alexander Schaber Date: Tue, 7 Feb 2017 13:45:32 +0100 Subject: add support for netgear switch --- lib/oxidized/model/netgear.rb | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 lib/oxidized/model/netgear.rb diff --git a/lib/oxidized/model/netgear.rb b/lib/oxidized/model/netgear.rb new file mode 100644 index 0000000..47e00b1 --- /dev/null +++ b/lib/oxidized/model/netgear.rb @@ -0,0 +1,37 @@ +class Netgear < Oxidized::Model + + comment '!' + prompt /^(\([\w-]+\)\s[#>])$/ + + expect /^--More-- or \(q\)uit/ do |data, re| + send ' ' + data.sub re, '' + end + + cmd :secret do |cfg| + cfg.gsub!(/password (\S+)/, 'password ') + cfg + end + + cfg :ssh do + if vars :enable + post_login do + send "enable\n" + # Interpret enable: true as meaning we won't be prompted for a password + unless vars(:enable).is_a? TrueClass + expect /[pP]assword:\s?$/ + send vars(:enable) + "\n" + end + expect /^.+[#]$/ + end + end + pre_logout 'exit' + pre_logout 'quit' + end + + cmd 'show running-config' do |cfg| + cfg.gsub! /^(!.*Time).*$/, '\1' + end + +end + -- cgit v1.2.1 From 1f2a11069f93a2997dac387e90010eacc20e2375 Mon Sep 17 00:00:00 2001 From: Alexander Schaber Date: Thu, 27 Apr 2017 09:18:00 +0200 Subject: include solution for paging on netgear --- lib/oxidized/model/netgear.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/oxidized/model/netgear.rb b/lib/oxidized/model/netgear.rb index 47e00b1..08c64d3 100644 --- a/lib/oxidized/model/netgear.rb +++ b/lib/oxidized/model/netgear.rb @@ -3,28 +3,24 @@ class Netgear < Oxidized::Model comment '!' prompt /^(\([\w-]+\)\s[#>])$/ - expect /^--More-- or \(q\)uit/ do |data, re| - send ' ' - data.sub re, '' - end - cmd :secret do |cfg| cfg.gsub!(/password (\S+)/, 'password ') cfg end - cfg :ssh do + cfg :telnet, :ssh do if vars :enable post_login do - send "enable\n" + cmd 'enable' # Interpret enable: true as meaning we won't be prompted for a password unless vars(:enable).is_a? TrueClass expect /[pP]assword:\s?$/ - send vars(:enable) + "\n" + cmd vars(:enable) + "\n" end expect /^.+[#]$/ end end + post_login 'terminal length 0' pre_logout 'exit' pre_logout 'quit' end @@ -34,4 +30,3 @@ class Netgear < Oxidized::Model end end - -- cgit v1.2.1 From 17b458de0333076c07a215c65d7596b9f3eda7d1 Mon Sep 17 00:00:00 2001 From: Alexander Schaber Date: Thu, 27 Apr 2017 09:26:11 +0200 Subject: Add netgear support to README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 3149ec9..7f1e917 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,8 @@ Oxidized is a network device configuration backup tool. It's a RANCID replacemen * MRV * [MasterOS](lib/oxidized/model/masteros.rb) * [FiberDriver](lib/oxidized/model/fiberdriver.rb) + * Netgear + * [Netgear](lib/oxidized/model/netgear.rb) * Netonix * [WISP Switch (As Netonix)](lib/oxidized/model/netonix.rb) * Nokia (formerly TiMetra, Alcatel, Alcatel-Lucent) -- cgit v1.2.1