class Aio::Module::Cmd::Cisco::ShowProcessMemory

Public Class Methods

new() click to toggle source
Calls superclass method Aio::Module::Cmd::new
# File lib/modules/cmd/cisco/show_process_memory.rb, line 8
def initialize
        super({
                :cmd_full    => "show process memory",
                :cmd_short   => "sh pro m",
                :author                      => "Elin",
                :description => "This is Cisco Command# show process memory",
                :ranking             => Ranking_1,
                :platform            => "all",
                :benchmark   => {
                        :proc_ratio => ["<", 70.0],
                        :io_ratio           => ["<", 70.0]
                        }
        })
end

Public Instance Methods

parse() click to toggle source
# File lib/modules/cmd/cisco/show_process_memory.rb, line 23
def parse
        cont = self.context.dup
        useful[:memory] = {}

        case device_template
        when Template_1
                parse_def(cont)
        when Template_2
                if device_version =~ /12.2\(33\)/ # 当是Cisco7606 的时候,即使是12.2(17r)S4,Memory的模板也是默认模板
                        parse_def(cont)
                else
                        parse_tmp_2(cont)
                end
        end
end
parse_def(cont) click to toggle source
# File lib/modules/cmd/cisco/show_process_memory.rb, line 46
def parse_def(cont)
        cont.readline_match_block(/Processor Pool Total: (?<proc_total>\d+) Used: (?<proc_used>\d+)/) do |block|
                proc_ratio = ratio(block[:proc_used], block[:proc_total])
                block.warning_serious(useful[:memory], :proc_ratio, self, {:string => proc_ratio})
        end
        cont.readline_match_block(/I\/O Pool Total: (?<io_total>\d+) Used: (?<io_used>\d+)/) do |block|
                io_ratio = ratio(block[:io_used], block[:io_total])
                #block.warning_serious(useful[:memory], :io_ratio, self, io_ratio)
                block.update(useful[:memory], :io_ratio, io_ratio)
        end
end
parse_tmp_2(cont) click to toggle source
# File lib/modules/cmd/cisco/show_process_memory.rb, line 39
def parse_tmp_2(cont)
        cont.readline_match_block(/System Memory : (?<proc_total>\d+)K total, (?<proc_used>\d+)K used/) do |block|
                proc_ratio = ratio(block[:proc_used], block[:proc_total])
                block.warning_serious(useful[:memory], :proc_ratio, self, {:string => proc_ratio})
        end
end
ratio(fir, sec) click to toggle source

返回为String

# File lib/modules/cmd/cisco/show_process_memory.rb, line 59
def ratio(fir, sec)
        format("%.2f", ((fir.to_f / sec.to_f) * 100))
end