summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2017-04-27 08:45:37 -0700
committerGitHub <noreply@github.com>2017-04-27 08:45:37 -0700
commit23d55da7338c96158f009252f1bd522da88a36b2 (patch)
tree4d9385d3407a978eaf948cc22d04ddeaba98966f
parentccb28d79b5cdc1d57f75ab156ad360161974b927 (diff)
parent17b458de0333076c07a215c65d7596b9f3eda7d1 (diff)
Merge pull request #702 from aschaber1/feature/netgear
add support for netgear switch
-rw-r--r--README.md2
-rw-r--r--lib/oxidized/model/netgear.rb32
2 files changed, 34 insertions, 0 deletions
diff --git a/README.md b/README.md
index 298404d..11231d0 100644
--- a/README.md
+++ b/README.md
@@ -136,6 +136,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)
diff --git a/lib/oxidized/model/netgear.rb b/lib/oxidized/model/netgear.rb
new file mode 100644
index 0000000..08c64d3
--- /dev/null
+++ b/lib/oxidized/model/netgear.rb
@@ -0,0 +1,32 @@
+class Netgear < Oxidized::Model
+
+ comment '!'
+ prompt /^(\([\w-]+\)\s[#>])$/
+
+ cmd :secret do |cfg|
+ cfg.gsub!(/password (\S+)/, 'password <hidden>')
+ cfg
+ end
+
+ cfg :telnet, :ssh do
+ if vars :enable
+ post_login do
+ 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?$/
+ cmd vars(:enable) + "\n"
+ end
+ expect /^.+[#]$/
+ end
+ end
+ post_login 'terminal length 0'
+ pre_logout 'exit'
+ pre_logout 'quit'
+ end
+
+ cmd 'show running-config' do |cfg|
+ cfg.gsub! /^(!.*Time).*$/, '\1'
+ end
+
+end