20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/modules/cmd/cisco/show_ip_interface_brief.rb', line 20
def parse
context = self.context.dup
useful[:interface_brief] = {}
context.readline_match_block(/Interface IP-Address OK\? Method Status Protocol/) {|b|b}
context.readline_match_block_loop(/(?<interface_id>[^\s]+) (?<ip>[^\s]+) (?<ok>[^\s]+) (?<method>[^\s]+) (?<status>(?:administratively\s)?[^\s]+) (?<protocol>[^\s]+)/, reg_blank) do |block|
iface = {}
iface_id = block[:interface_id]
useful[:interface_brief][iface_id.to_sym] = iface
block.update(iface, :interface_id)
block.update(iface, :ip)
block.update(iface, :ok)
block.update(iface, :method)
block.update(iface, :status)
if (block[:status] =~ /up/) and !(block[:protocol] =~ /up/)
block.warning_serious(iface, :protocol, self, {:force => true})
else
block.warning_serious(iface, :protocol, self, {:force => false})
end
end
end
|