summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Schaber <alexander@schaber.info>2017-02-07 13:45:32 +0100
committerAlexander Schaber <alexander@schaber.info>2017-02-07 13:45:32 +0100
commit8af82629acea08774b2e5cc6a6148079f04fdfad (patch)
tree1d977e2233f1c46501a89acbb05d3757b0eaac82
parent2920c67dc3555c70c078bf4086b2e46d9f9d8299 (diff)
add support for netgear switch
-rw-r--r--lib/oxidized/model/netgear.rb41
1 files changed, 41 insertions, 0 deletions
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 <hidden>')
+ 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
+