diff options
| author | Danilo Sousa <danilopopeye@users.noreply.github.com> | 2017-09-12 11:04:59 -0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-12 11:04:59 -0300 | 
| commit | 1ec63b1bf1d3f6034665af7afe0a0a9df3928ec5 (patch) | |
| tree | 98ada3521f86a6c24fa63d0d3d6aae4efcb7bac3 /lib/oxidized | |
| parent | 0293d1f584005789bce95bf0bfce7ba97cf6e80b (diff) | |
| parent | 38faaed59a9c13f40177420cdda7958e53a69e36 (diff) | |
Merge pull request #993 from sfini/patch-3
Create acsw.rb for Cisco Ace
Diffstat (limited to 'lib/oxidized')
| -rw-r--r-- | lib/oxidized/model/acsw.rb | 67 | 
1 files changed, 67 insertions, 0 deletions
| diff --git a/lib/oxidized/model/acsw.rb b/lib/oxidized/model/acsw.rb new file mode 100644 index 0000000..1aee2b6 --- /dev/null +++ b/lib/oxidized/model/acsw.rb @@ -0,0 +1,67 @@ +class ACSW < Oxidized::Model + +  prompt /([\w.@()\/\\-]+[#>]\s?)/ +  comment  '! ' + +  cmd :all do |cfg| +    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) (.*)/, '\\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! /^(.*key 1 md5) (\d.+)/, '\\1 <secret hidden>' +    cfg.gsub! /^(.*standby \d.+authentication).*/, '\\1 <secret hidden>' +    cfg.gsub! /^(.*version 2c).*/, '\\1 <secret hidden>' +    cfg +  end + + +  cmd 'show version' do |cfg| +    comment cfg +  end + + + cmd 'show inventory' do |cfg| +   comment cfg + 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.gsub! /^([\s\t\!]*Last configuration change ).*/, '' +    cfg.gsub! /^([\s\t\!]*NVRAM config last ).*/, '' +    cfg +  end + +  cfg :telnet do +    username /.*login:/ +    password /^Password:/ +  end + +  cfg :telnet, :ssh do +    if vars :enable +      post_login do +        send "enable\n" +        cmd vars(:enable) +      end +    end +    post_login 'terminal length 0' +    pre_logout 'exit' +  end + +end | 
