Class: Aio::Module::Cmd::H3C::DisplayPower
- Inherits:
-
Aio::Module::Cmd::H3C
- Object
- Aio::Module::Cmd
- Aio::Module::Cmd::H3C
- Aio::Module::Cmd::H3C::DisplayPower
- Includes:
- Aio::Module
- Defined in:
- lib/modules/cmd/h3c/display_power.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 ⇒ DisplayPower
constructor
A new instance of DisplayPower.
- #parse ⇒ Object
- #parse_power(context, power) ⇒ Object
-
#parse_slot(context) ⇒ Object
def parse_def(context) case context when /Slot/ parse_slot(context) when /Unit/ parse_unit(context) end end.
- #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 ⇒ DisplayPower
Returns a new instance of DisplayPower.
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/modules/cmd/h3c/display_power.rb', line 8 def initialize super({ :cmd_full => "display power", :cmd_short => "dis pow", :author => "Elin", :description => "This is H3C Command# display power", :ranking => Ranking_1, :platform => "all", :benchmark => { :power_status => ["=~", /Normal/, /Absent/], }, }) 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_power.rb', line 22 def parse cont = self.context.dup useful[:power] = {} 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_power(context, power) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/modules/cmd/h3c/display_power.rb', line 72 def parse_power(context, power) power_id_info = {} context.readline_match_block(/[Pp]ower (?<power_id>\d+)/) do |block| power_id = block[:power_id] power["power_#{power_id}"] = power_id_info block.update(power_id_info, :power_id) end context.readline_match_block(/State : (?<power_status>.*)/) do |block| block.warning_serious(power_id_info, :power_status, self) end context.readline_match_block(/Type : (?<type>.*)/) do |block| block.update(power_id_info, :type) end end |
#parse_slot(context) ⇒ Object
def parse_def(context)
case context[0]
when /Slot/
parse_slot(context)
when /Unit/
parse_unit(context)
end
end
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/modules/cmd/h3c/display_power.rb', line 48 def parse_slot(context) power = {} context.readline_match_block(/Slot (?<slot_id>\d+)/) do |block| useful[:power] = {} useful[:power]["slot_#{block[:slot_id]}"] = power block.update(power, :slot_id) end context.readline_range_loop(/Power/, reg_blank) do |cont_layer| parse_power(cont_layer, power) end end |
#parse_unit(context) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/modules/cmd/h3c/display_power.rb', line 60 def parse_unit(context) power = {} context.readline_match_block(/Unit (?<slot_id>\d+)/) do |block| useful[:power] = {} useful[:power]["slot_#{block[:slot_id]}"] = power block.update(power, :slot_id) end context.readline_range_loop(/power/, /power/, {:before=>true}) do |cont_layer| parse_power(cont_layer, power) end end |