Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class QTECH_NOS < Oxidized::Model
- prompt /^([\w.@()-]+[#>]\s?)$/
- comment '! '
- # example how to handle pager
- #expect /^\s--More--\s+.*$/ do |data, re|
- # send ' '
- # data.sub re, ''
- #end
- # non-preferred way to handle additional PW prompt
- #expect /^[\w.]+>$/ do |data|
- # send "enable\n"
- # send vars(:enable) + "\n"
- # data
- #end
- cmd :all do |cfg|
- #cfg.gsub! /\cH+\s{8}/, '' # example how to handle pager
- #cfg.gsub! /\cH+/, '' # example how to handle pager
- # get rid of errors for commands that don't work on some devices
- cfg.gsub! /^% Invalid input detected at '\^' marker\.$|^\s+\^$/, ''
- cfg.each_line.to_a[1..-2].join
- end
- cmd :secret do |cfg|
- cfg.gsub! /^(snmp-server community).*/, '\\1 <configuration removed>'
- cfg.gsub! /^(username \S+ privilege \d+) (\S+).*/, '\\1 <secret hidden>'
- cfg.gsub! /^(username \S+ password \d) (\S+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(username \S+ secret \d) (\S+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(enable (password|secret) \d) (\S+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(\s+(?:password|secret)) (?:\d )?\S+/, '\\1 <secret hidden>'
- cfg.gsub! /^(.*wpa-psk ascii \d) (\S+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(.*key 7) (\d.+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(tacacs-server key \d) (\S+)/, '\\1 <secret hidden>'
- cfg.gsub! /^(crypto isakmp key) (\S+) (.*)/, '\\1 <secret hidden> \\3'
- cfg.gsub! /(ip ospf message-digest-key \d md5) (.*)/, '\\1 <secret hidden>'
- cfg.gsub! /^(ntp authentication-key \d md5) (.*)/, '\\1 <secret hidden>'
- cfg
- end
- cmd 'show version' do |cfg|
- out = []
- cfg.each_line do |line|
- next if line.match /^\s+Uptime is/
- out << line
- end
- end
- comment out.join
- end
- cmd 'show running-config' do |cfg|
- cfg = cfg.each_line.to_a[3..-1]
- cfg = cfg.reject { |line| line.match /^ntp clock-period / }.join
- cfg.gsub! /^Current configuration : [^\n]*\n/, ''
- cfg.gsub! /^\ tunnel\ mpls\ traffic-eng\ bandwidth[^\n]*\n*(
- (?:\ [^\n]*\n*)*
- tunnel\ mpls\ traffic-eng\ auto-bw)/mx, '\1'
- cfg
- end
- cfg :telnet do
- username /^Username:/i
- password /^Password:/i
- end
- cfg :telnet, :ssh do
- # preferred way to handle additional passwords
- if vars :enable
- post_login do
- send "enable\n"
- cmd vars(:enable)
- end
- end
- post_login 'terminal length 0'
- pre_logout 'exit'
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement