Class: Aio::Module::Cmd::H3C::DisplayPower

Inherits:
Aio::Module::Cmd::H3C show all
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

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

#initializeDisplayPower

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

#parseObject



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