Class: Aio::Module::Cmd::Cisco::ShowProcessMemory

Inherits:
Aio::Module::Cmd::Cisco show all
Includes:
Aio::Module
Defined in:
lib/modules/cmd/cisco/show_process_memory.rb

Instance Attribute Summary

Attributes inherited from Aio::Module::Cmd

#cmd_info, #context, #device_info, #ext_info, #useful, #warning_klass

Instance Method Summary collapse

Methods inherited from Aio::Module::Cmd

#author, #benchmark, #clear_useful, #cmd_full, #cmd_short, #description, #division, #key_stand, #license, #platform, #ranking, #set_defaults, #type

Methods included from Ui::Verbose

#clear_line, #print_error, #print_good, #progress_bar

Constructor Details

#initializeShowProcessMemory

Returns a new instance of ShowProcessMemory.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

Instance Method Details

#parseObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
# 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) ⇒ Object



39
40
41
42
43
44
# 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) ⇒ Object

返回为String



59
60
61
# 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