class Aio::Module::Cmd::Cisco::ShowVersion
Public Class Methods
new()
click to toggle source
Calls superclass method
Aio::Module::Cmd::new
# File lib/modules/cmd/cisco/show_version.rb, line 8 def initialize super({ :cmd_full => "show version", :cmd_short => "sh ver", :author => "Elin", :description => "This is Cisco Command# show version", :ranking => Ranking_1, :key_stand => true, :platform => "all", :benchmark => { :register => ["==", "0x2102", "0xF", "0x1", "0x10F"], }, :license => Aio::AIO_LICENSE}) end
Public Instance Methods
parse()
click to toggle source
# File lib/modules/cmd/cisco/show_version.rb, line 23 def parse cont = self.context.dup soft_info = {} useful[:software] = soft_info cont.readline_match_block(/Cisco (?<info>.*)/) do |block| key_stand_cisco case block[:info] when /Adaptive Security Appliance/ ver = /Software Version (?<version>.*)/.match(block[:info]) block.update(soft_info, :version, ver[:version]) key_stand_version(ver[:version]) parse_asa(cont, soft_info) else parse_def(cont, soft_info) end end end
parse_asa(cont, soft_info)
click to toggle source
ASA 系列
# File lib/modules/cmd/cisco/show_version.rb, line 43 def parse_asa(cont, soft_info) cont.readline_match_block(/System image file is "(?<soft_image>)"/) do |block| block.update(soft_info, :soft_image) end cont.readline_match_block(/up (?<uptime>.*)/) do |block| block.update(soft_info, :uptime) end cont.readline_match_block(/failover cluster up (?<uptime_failover>.*)/) do |block| block.update(soft_info, :uptime_failover) end cont.readline_match_block(/Hardware: (?<device_model>.[^,]+),/) do |block| block.update(soft_info, :device_model) key_stand_model(block[:device_model]) key_stand_template Template_3 # 当是asa时使用模板3 end cont.readline_match_block(/Serial Number: (?<sn>.*)/) do |block| block.update(soft_info, :sn) end end
parse_def(cont, soft_info)
click to toggle source
包括了一般的以及 7600 系列
# File lib/modules/cmd/cisco/show_version.rb, line 64 def parse_def(cont, soft_info) cont.readline_match_block(/Version (?<version>.*),/) do |block| block.update(soft_info, :version) key_stand_version(block[:version]) end cont.readline_match_block(/(?<device_name>.*) uptime is (?<uptime>.*)/) do |block| block.update(soft_info, :device_name) block.update(soft_info, :uptime) end cont.readline_match_block(/System image file is "(?<soft_image>.*)"/) do |block| block.update(soft_info, :soft_image) end cont.readline_match_block(//) cont.readline_match_block(/^[Cc]isco (?<device_model>[^\s]+)/) do |block| block.update(soft_info, :device_model) key_stand_model(block[:device_model]) case block[:device_model] when /76|65/ # 当是7600的时候,使用模板2 key_stand_template Template_2 when /28/ # 当是2800的时候,使用模板4 key_stand_template Template_4 else key_stand_template Template_1 end end cont.readline_match_block(/Processor board ID (?<board_id>.*)/) do |block| block.update(soft_info, :board_id) end cont.readline_match_block(/Configuration register is (?<register>.*)/) do |block| block.warning_serious(soft_info, :register, self) end end