class Aio::Module::Cmd::H3C::DisplayPower

Public Class Methods

new() click to toggle source
Calls superclass method Aio::Module::Cmd::new
# 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

Public Instance Methods

parse() click to toggle source
# 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) click to toggle source
# 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) click to toggle source

def parse_def(context)

case context[0]
when /Slot/
  parse_slot(context)
when /Unit/
  parse_unit(context)
end

end

# 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) click to toggle source
# 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