Class: Aio::Module::Cmd::H3C::DisplayDeviceManuinfo

Inherits:
Aio::Module::Cmd::H3C show all
Includes:
Aio::Module
Defined in:
lib/modules/cmd/h3c/display_device_manuinfo.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

#initializeDisplayDeviceManuinfo

Returns a new instance of DisplayDeviceManuinfo.



8
9
10
11
12
13
14
15
16
17
# File 'lib/modules/cmd/h3c/display_device_manuinfo.rb', line 8

def initialize
  super({
    :cmd_full			=> "display device manuinfo",
    :cmd_short		=> "dis dev m",
    :author				=> "Elin",
    :description	=> "This is H3C Command# display device manuinfo",
    :ranking			=> Ranking_1,
    :platform			=> "all",
  })
end

Instance Method Details

#parseObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/modules/cmd/h3c/display_device_manuinfo.rb', line 19

def parse
  context = self.context.dup
  inv_info = {}
  useful[:inventory] = inv_info

  context.readline_range_loop(/:/, /VENDOR_NAME/) do |cont|
    slot_info = {}
    name = ""
    pid  = ""

    cont.readline_match_block(/(?<name>[^:]+):/) do |block|
      name = block[:name]
    end
    cont.readline_match_block(/DEVICE_NAME : (?<pid>.*)/) do |block|
      pid = block[:pid]
    end
    cont.readline_match_block(/DEVICE_SERIAL_NUMBER : (?<sn>.*)/) do |block|
      sn = block[:sn]
      inv_info[sn.to_sym] = slot_info
      block.update(slot_info, :name, name)
      block.update(slot_info, :description, "H3C")
      block.update(slot_info, :pid, pid)
      block.update(slot_info, :sn)
    end
  end
end