lib/modules/cmd/h3c/display_fan.rb in aio_elin-1.0.4 vs lib/modules/cmd/h3c/display_fan.rb in aio_elin-1.0.5
- old
+ new
@@ -1,91 +1,80 @@
#coding=utf-8
require "aio/core"
class Aio::Module::Cmd::H3C::DisplayFan < Aio::Module::Cmd::H3C
- include Aio::Module
+ include Aio::Module
- 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
+ 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
- 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
+ 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
- end
+ # 遇到的有两种情况,开头是Slot 或者是 Unit
-=begin
- # 遇到的有两种情况,开头是Slot 或者是 Unit
- def parse_def(context)
- case context[0]
- when /Slot/
- parse_slot(context)
- when /Unit/
- parse_unit(context)
- end
- end
-=end
+ 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
- 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
+ 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
- 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
+ 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
- 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
-
end