From 8a63ff7e333457de9f6145e83c0ed3f1ebdba136 Mon Sep 17 00:00:00 2001 From: Reinier Schoof Date: Fri, 25 Sep 2015 14:34:33 +0200 Subject: added model for older Foundry/Brocade model switches Oxidized model for Foundry/Brocade switch models that run IronWare but require carriage return instead of newline on enable command and require different filters for temperature/uptime lines --- lib/oxidized/model/foundry.rb | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 lib/oxidized/model/foundry.rb (limited to 'lib/oxidized/model') diff --git a/lib/oxidized/model/foundry.rb b/lib/oxidized/model/foundry.rb new file mode 100644 index 0000000..beaf49d --- /dev/null +++ b/lib/oxidized/model/foundry.rb @@ -0,0 +1,58 @@ +# Oxidized model for Foundry/Brocade switch models that run IronWare +# but require carriage return instead of newline on enable command +# and require different filters for temperature/uptime lines +class Foundry < Oxidized::Model + + prompt /^.*(telnet|ssh)\@.+[>#]\s?$/i + comment '! ' + + cmd :all do |cfg| + cfg.each_line.to_a[1..-2].join + end + + cmd 'show running-config' do |cfg| + arr = cfg.each_line.to_a + arr[3..-1].join unless arr.length <= 3 + end + + cmd 'show version' do |cfg| + cfg.gsub! /(^((.*)[Ss]ystem uptime(.*))$)/, '' #remove unwanted line system uptime + + comment cfg + end + + cmd 'show chassis' do |cfg| + cfg.encode!("UTF-8", :invalid => :replace) #sometimes ironware returns broken encoding + cfg.gsub! /\d{2}\.\d deg-C$/, 'XX.X deg-C' + + comment cfg + end + + cmd 'show flash' do |cfg| + comment cfg + end + + cmd 'show module' do |cfg| + comment cfg + end + + cfg :telnet do + username /^Please Enter Login Name:/ + password /^Please Enter Password:/ + end + + #handle pager with enable + cfg :telnet, :ssh do + if vars :enable + post_login do + send "enable\r" + send vars(:enable) + "\r" + end + end + post_login 'skip-page-display' + pre_logout 'logout' + pre_logout 'exit' + pre_logout 'exit' + end + +end -- cgit v1.2.1