Class: Aio::Module::Cmd::H3C::DisplayOspfPeer

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

#initializeDisplayOspfPeer

Returns a new instance of DisplayOspfPeer.



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

def initialize
  super({
    :cmd_full     => "display ospf peer",
    :cmd_short    => "dis ospf p",
    :author       => "Elin",
    :description  => "This is H3C Command# display ospf peer",
    :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
# File 'lib/modules/cmd/h3c/display_ospf_peer.rb', line 19

def parse
  context = self.context.dup
  useful[:ospf_neighbor] = {}
  count = 0
  context.readline_range_loop(/Route/, reg_blank) do |cont|
    cont.readline_match_block(/Route/) {|b|b}
    cont.readline_match_block_loop(/(?<neighbor_id>[^\s]+) (?<address>[^\s]+) (?<pri>\d+) (.*) (?<interface>.*) (?<state>.*)/, reg_blank) do |block|
      nei = {}
      nei_id = block[:neighbor_id]
      useful[:ospf_neighbor][nei_id.to_sym] = nei
      block.update(nei, :neighbor_id)
      block.update(nei, :pri)
      block.update(nei, :state)
      block.update(nei, :address)
      block.update(nei, :interface)
      count += 1
    end
  end
end