diff options
Diffstat (limited to 'lib/oxidized/model/netgear.rb')
-rw-r--r-- | lib/oxidized/model/netgear.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/oxidized/model/netgear.rb b/lib/oxidized/model/netgear.rb new file mode 100644 index 0000000..40b0924 --- /dev/null +++ b/lib/oxidized/model/netgear.rb @@ -0,0 +1,39 @@ +class Netgear < Oxidized::Model + comment '!' + prompt /^(\([\w\s\-.]+\)\s[#>])$/ + + cmd :secret do |cfg| + cfg.gsub!(/password (\S+)/, 'password <hidden>') + cfg.gsub!(/encrypted (\S+)/, 'encrypted <hidden>') + cfg + end + + cfg :telnet do + username /^(User:|Applying Interface configuration, please wait ...)/ + 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 + post_login 'terminal length 0' + # quit / logout will sometimes prompt the user: + # + # The system has unsaved changes. + # Would you like to save them now? (y/n) + # + # So it is safer simply to disconnect and not issue a pre_logout command + end + + cmd 'show running-config' do |cfg| + cfg.gsub! /^(!.*Time).*$/, '\1' + end +end |