Class: Aio::Module::Cmd::H3C::DisplayFan
- Inherits:
-
Aio::Module::Cmd::H3C
- Object
- Aio::Module::Cmd
- Aio::Module::Cmd::H3C
- Aio::Module::Cmd::H3C::DisplayFan
- Includes:
- Aio::Module
- Defined in:
- lib/modules/cmd/h3c/display_fan.rb
Instance Attribute Summary
Attributes inherited from Aio::Module::Cmd
#cmd_info, #context, #device_info, #ext_info, #useful, #warning_klass
Instance Method Summary collapse
-
#initialize ⇒ DisplayFan
constructor
A new instance of DisplayFan.
- #parse ⇒ Object
-
#parse_slot(context) ⇒ Object
遇到的有两种情况,开头是Slot 或者是 Unit.
- #parse_slot_2(context, fan) ⇒ Object
- #parse_unit(context) ⇒ Object
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
#initialize ⇒ DisplayFan
Returns a new instance of DisplayFan.
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/modules/cmd/h3c/display_fan.rb', line 8 def initialize super({ :cmd_full => "display fan", :cmd_short => "dis fan", :author => "Elin", :description => "This is H3C Command# display fan", :ranking => Ranking_1, :platform => "all", :benchmark => { :fan_status => ["=~", /Normal/], }, }) end |
Instance Method Details
#parse ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/modules/cmd/h3c/display_fan.rb', line 22 def parse cont = self.context.dup useful[:fan] = {} case device_template when Template_1 cont.readline_range_loop(/Slot/, /Slot/) do |cont_layer| parse_slot(cont_layer) end when Template_2 cont.readline_range_loop(/Unit/, /Unit/) do |cont_layer| parse_unit(cont_layer) end end end |
#parse_slot(context) ⇒ Object
遇到的有两种情况,开头是Slot 或者是 Unit
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/modules/cmd/h3c/display_fan.rb', line 39 def parse_slot(context) fan = {} context.readline_match_block(/Slot (?<slot_id>\d+)/) do |block| useful[:fan] = {} useful[:fan]["slot_#{block[:slot_id]}"] = fan block.update(fan, :slot_id) end context.readline_range_loop(/FAN \d+/, reg_blank) do |cont_layer| parse_slot_2(cont_layer, fan) end end |
#parse_slot_2(context, fan) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/modules/cmd/h3c/display_fan.rb', line 51 def parse_slot_2(context, fan) fan_id = nil context.readline_match_block(/FAN (?<fan_id>\d+)/) do |block| fan_id = block[:fan_id] fan["fan_#{fan_id}"] = {} block.update(fan["fan_#{fan_id}"], :fan_id) end context.readline_match_block(/State : (?<fan_status>.*)/) do |block| block.warning_serious(fan["fan_#{fan_id}"], :fan_status, self) end end |
#parse_unit(context) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/modules/cmd/h3c/display_fan.rb', line 63 def parse_unit(context) fan = {} context.readline_match_block(/Unit (?<slot_id>\d+)/) do |block| useful[:fan]["slot_#{block[:slot_id]}"] = fan block.update(fan, :slot_id) end context.readline_match_block_loop(/Fan (?<fan_id>\d+) State: (?<fan_status>.*)/, reg_blank) do |block| fan_id = block[:fan_id] fan["fan_#{fan_id}"] = {} block.update(fan["fan_#{fan_id}"], :fan_id) block.warning_serious(fan["fan_#{fan_id}"], :fan_status, self) end end |