diff options
Diffstat (limited to 'lib/oxidized/model/slxos.rb')
-rw-r--r-- | lib/oxidized/model/slxos.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/oxidized/model/slxos.rb b/lib/oxidized/model/slxos.rb new file mode 100644 index 0000000..1afc8b1 --- /dev/null +++ b/lib/oxidized/model/slxos.rb @@ -0,0 +1,59 @@ +class SLXOS < Oxidized::Model + prompt /^.*[>#]\s?$/i + comment '! ' + + cmd 'show version' do |cfg| + cfg.gsub! /(^((.*)[Ss]ystem [Uu]ptime(.*))$)/, '' # remove unwanted line system uptime + cfg.gsub! /[Uu]p\s?[Tt]ime is .*/, '' + + comment cfg + end + + cmd 'show chassis' do |cfg| + cfg.encode!("UTF-8", :invalid => :replace, :undef => :replace) # sometimes ironware returns broken encoding + cfg.gsub! /.*Power Usage.*/, '' # remove unwanted lines power usage + cfg.gsub! /Time A(live|wake).*/, '' # remove unwanted lines time alive/awake + cfg.gsub! /([\[]*)1([\]]*)<->([\[]*)2([\]]*)(<->([\[]*)3([\]]*))*/, '' + + comment cfg + end + + cmd 'show system' do |cfg| + cfg.gsub! /Up Time.*/, '' # removes uptime line + cfg.gsub! /Current Time.*/, '' # remove current time line + cfg.gsub! /.*speed is.*/, '' # removes fan speed lines + + comment cfg + end + + cmd 'show slots' do |cfg| + cfg.gsub! /^-*^$/, '' # some slx devices are fixed config + cfg.gsub! /syntax error: element does not exist/, '' # same as above + + comment cfg + end + + cmd 'show running-config' do |cfg| + arr = cfg.each_line.to_a + arr[2..-1].join unless arr.length < 2 + end + + cfg :telnet do + # match expected prompts + username /^(Please Enter Login Name|Username):/ + password /^(Please Enter Password ?|Password):/ + end + + # handle pager with enable + cfg :telnet, :ssh do + if vars :enable + post_login do + send "enable\n" + cmd vars(:enable) + end + end + post_login '' + post_login 'terminal length 0' + pre_logout 'exit' + end +end |