aio_elin 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7705e0b0dfd3a615aaaea053cd08f487f6d28a2ff52836a84a53c060db2f32e0
4
- data.tar.gz: 68891b269da5dd3e5718dd561378485ef2af1c48cb1e6f2adab335d3001d45fd
3
+ metadata.gz: d58fe2e4aa1926532b060162295287d8bcb4e21558abc6c076eab95880c2193b
4
+ data.tar.gz: 621981fd2c0f9ff81bca907737fcde468cd569299f26e31d1e5d2ac696f2b1e9
5
5
  SHA512:
6
- metadata.gz: d9ade4e7e071112527b159cdca410b5a3811459e088fa8fe6fccaaa40b048487f06d25c02295fe2c6aae4eeb1747d435ee24e37b539c2cfb525dfaf918251c4c
7
- data.tar.gz: 9c9cf70d64214bbe40677add0bca5bd9895d7f4e3f348581c3366b7ba55e83122dc0b9f6c603240527bc54413461b9f316dcc69b048c8d51ab63c28740e26bca
6
+ metadata.gz: 157a2bf1cf0e15ea4b4bb1fab624f5e0a29b46a59e4c8a541e7702e757da5a10ee6c4e6fe1993af336ff61e9bde4aceaf5d93f13f905e1dcdb2ecacc0ee5d314
7
+ data.tar.gz: 38a0fe68b1f51befcb0d8c13d959678585159ad20f608518aa253b9e81bb40396c22401aca2bce59de9abca10b9e1ed26ac73d52c238186d1c69f218dddcb34f
@@ -1,4 +1,4 @@
1
- require 'byebug'
1
+ #require 'byebug'
2
2
  #
3
3
  # 这个模块用于统一命令方法,方便一起管理
4
4
  #
@@ -18,187 +18,162 @@ module Aio::Device
18
18
 
19
19
  # CPU 利用率百分比
20
20
  def cpu_percent
21
- begin
22
- cmd = CmdSwitch.cpu(klass)
23
- return klass.cmds_useful[cmd][:cpu][:minutes_5] if kind_of?(Cisco, H3C)
24
- return klass.cmds_useful[cmd][:cpu][:used_percent] if klass.kind_of? Maipu
25
- rescue Exception
26
- puts_error
27
- return ""
28
- end
21
+ cmd = CmdSwitch.cpu(klass)
22
+ return klass.cmds_useful[cmd][:cpu][:minutes_5] if kind_of?(Cisco, H3C)
23
+ return klass.cmds_useful[cmd][:cpu][:used_percent] if klass.kind_of? Maipu
24
+ rescue Exception
25
+ puts_error
26
+ return ""
29
27
  end
30
28
 
31
29
  # Memory 利用率百分比
32
30
  def memory_percent
33
- begin
34
- cmd = CmdSwitch.memory(klass)
35
- return klass.cmds_useful[cmd][:memory][:used_rate] if klass.kind_of? H3C
36
- return klass.cmds_useful[cmd][:memory][:proc_ratio] if klass.kind_of? Cisco
37
- return klass.cmds_useful[cmd][:memory][:used_percent] if klass.kind_of? Maipu
38
- rescue Exception
39
- puts_error
40
- return ""
41
- end
31
+ cmd = CmdSwitch.memory(klass)
32
+ return klass.cmds_useful[cmd][:memory][:used_rate] if klass.kind_of? H3C
33
+ return klass.cmds_useful[cmd][:memory][:proc_ratio] if klass.kind_of? Cisco
34
+ return klass.cmds_useful[cmd][:memory][:used_percent] if klass.kind_of? Maipu
35
+ rescue Exception
36
+ puts_error
37
+ return ""
42
38
  end
43
39
 
44
40
  # IOS 版本
45
41
  def ios_version
46
- begin
47
- cmd = CmdSwitch.version(klass)
48
- return klass.cmds_useful[cmd][:software][:version] if kind_of?(Cisco, H3C, Maipu)
49
- rescue Exception
50
- puts_error
51
- return ""
52
- end
42
+ cmd = CmdSwitch.version(klass)
43
+ return klass.cmds_useful[cmd][:software][:version] if kind_of?(Cisco, H3C, Maipu)
44
+ rescue Exception
45
+ puts_error
46
+ return ""
53
47
  end
54
48
 
55
49
  # IOS 特性集
56
50
  def soft_image
57
- begin
58
- cmd = CmdSwitch.version(klass)
59
- return klass.cmds_useful[cmd][:software][:soft_image] if kind_of?(Cisco, Maipu)
60
-
61
- # H3C 不是在version中查看
62
- rescue Exception
63
- puts_error
64
- return ""
65
- ensure
66
- end
51
+ cmd = CmdSwitch.version(klass)
52
+ return klass.cmds_useful[cmd][:software][:soft_image] if kind_of?(Cisco, Maipu)
53
+
54
+ # H3C 不是在version中查看
55
+ rescue Exception
56
+ puts_error
57
+ return ""
67
58
  end
68
59
 
69
60
  # 运行时间
70
61
  def uptime
71
- begin
72
- cmd = CmdSwitch.version(klass)
73
- return klass.cmds_useful[cmd][:software][:uptime] if kind_of?(Cisco, H3C, Maipu)
74
- rescue Exception
75
- puts_error
76
- return ""
77
- end
62
+ cmd = CmdSwitch.version(klass)
63
+ return klass.cmds_useful[cmd][:software][:uptime] if kind_of?(Cisco, H3C, Maipu)
64
+ rescue Exception
65
+ puts_error
66
+ return ""
78
67
  end
79
68
 
80
69
  # 判断温度是否有警告
81
70
  def warning_env?
82
- begin
83
- if klass.kind_of? Maipu
84
- return (klass.include_warning?(:mainboard_temperature) and klass.include_warning?(:cpu_temperature))
85
- end
86
- return klass.include_warning?(:cpu_status) if klass.kind_of? Cisco
87
- rescue Exception
88
- puts_error
71
+ if klass.kind_of? Maipu
72
+ return (klass.include_warning?(:mainboard_temperature) and klass.include_warning?(:cpu_temperature))
89
73
  end
74
+ return klass.include_warning?(:cpu_status) if klass.kind_of? Cisco
75
+ rescue Exception
76
+ puts_error
90
77
  end
91
78
 
92
79
 
93
80
  # 判断电源是否有警告
94
81
  def warning_power?
95
- begin
96
- return klass.include_warning?(:power_status) if kind_of?(Cisco, H3C, Maipu)
97
- rescue Exception
98
- puts_error
99
- end
82
+ return klass.include_warning?(:power_status) if kind_of?(Cisco, H3C, Maipu)
83
+ rescue Exception
84
+ puts_error
100
85
  end
101
86
 
102
87
  # 判断风扇是否有警告
103
88
  def warning_fan?
104
- begin
105
- return klass.include_warning?(:fan_status) if kind_of?(Cisco, H3C, Maipu)
106
- rescue Exception
107
- puts_error
108
- end
89
+ return klass.include_warning?(:fan_status) if kind_of?(Cisco, H3C, Maipu)
90
+ rescue Exception
91
+ puts_error
109
92
  end
110
93
 
111
94
  # 只判断最关键的三个信息
112
95
  def warning_interface?
113
- begin
114
- if kind_of?(Cisco, Maipu, H3C)
115
- tmp = klass.include_warning?(:input_errors)
116
- tmp = tmp or klass.include_warning(:crc)
117
- tmp = tmp or klass.include_warning(:output_errors)
118
- return tmp
119
- end
120
- rescue Exception
121
- puts_error
96
+ if kind_of?(Cisco, Maipu, H3C)
97
+ tmp = klass.include_warning?(:input_errors)
98
+ tmp = tmp or klass.include_warning(:crc)
99
+ tmp = tmp or klass.include_warning(:output_errors)
100
+ return tmp
122
101
  end
102
+ rescue Exception
103
+ puts_error
123
104
  end
124
105
 
125
106
  # 板卡序列号信息
126
107
  # 返回数组: [{:name, :pid, :sn, :description}]
127
108
  def inventory
128
109
  cmd = CmdSwitch.inventory(klass)
129
- begin
130
- if kind_of?(Cisco, H3C)
131
- keys = klass.cmds_useful[cmd][:inventory].keys
132
- res = []
133
- keys.each do |sn|
134
- res << klass.cmds_useful[cmd][:inventory][sn.to_sym]
135
- end
136
- return res
137
- else
138
- return [{:name => "", :pid => "", :sn => "", :description => ""}]
110
+ if kind_of?(Cisco, H3C)
111
+ keys = klass.cmds_useful[cmd][:inventory].keys
112
+ res = []
113
+ keys.each do |sn|
114
+ res << klass.cmds_useful[cmd][:inventory][sn.to_sym]
139
115
  end
140
-
141
- rescue Exception
142
- puts_error
116
+ return res
117
+ else
143
118
  return [{:name => "", :pid => "", :sn => "", :description => ""}]
144
119
  end
120
+
121
+ rescue Exception
122
+ puts_error
123
+ return [{:name => "", :pid => "", :sn => "", :description => ""}]
145
124
  end
146
125
 
147
126
  def clock
148
- begin
149
- cmd = CmdSwitch.clock(klass)
150
- pool = ["time", "zone", "week", "year", "month", "day"]
151
- res = []
152
- pool.each do |key|
153
- res << klass.cmds_useful[cmd][:clock][key.to_sym]
154
- end
155
- return res
156
- rescue Exception
157
- puts_error
158
- return ["", "", "", "", "", ""]
127
+ cmd = CmdSwitch.clock(klass)
128
+ pool = ["time", "zone", "week", "year", "month", "day"]
129
+ res = []
130
+ pool.each do |key|
131
+ res << klass.cmds_useful[cmd][:clock][key.to_sym]
159
132
  end
133
+ return res
134
+ rescue Exception
135
+ puts_error
136
+ return ["", "", "", "", "", ""]
160
137
  end
161
138
 
162
139
  def get_manager_ip
163
140
  return klass.manager_ip unless klass.manager_ip.nil?
164
141
 
165
- begin
166
- cmd = []
167
- cmd[0] = CmdSwitch.interface(klass)
168
- cmd[1] = CmdSwitch.interface_brief(klass)
142
+ cmd = []
143
+ cmd[0] = CmdSwitch.interface(klass)
144
+ cmd[1] = CmdSwitch.interface_brief(klass)
169
145
 
170
- total = []
171
- manager = ""
146
+ total = []
147
+ manager = ""
172
148
 
173
- return unless kind_of?(Cisco, H3C, Maipu)
149
+ return unless kind_of?(Cisco, H3C, Maipu)
174
150
 
175
- # 如果是 show interfaces
176
- if klass.has_cmd?(cmd[0])
177
- total = klass.cmds_useful[cmd[0]][:interface]
151
+ # 如果是 show interfaces
152
+ if klass.has_cmd?(cmd[0])
153
+ total = klass.cmds_useful[cmd[0]][:interface]
178
154
 
179
- total.each_value do |info|
180
- if (info[:iface_id] == (klass.interface[:loopback] + "0")) and info[:state] =~ /(?i)up/
181
- manager = info[:addr]
182
- end
155
+ total.each_value do |info|
156
+ if (info[:iface_id] == (klass.interface[:loopback] + "0")) and info[:state] =~ /(?i)up/
157
+ manager = info[:addr]
183
158
  end
159
+ end
184
160
 
185
- # 如果是 show ip interface brief
186
- elsif klass.has_cmd?(cmd[1])
187
- total = klass.cmds_useful[cmd[1]][:interface_brief]
161
+ # 如果是 show ip interface brief
162
+ elsif klass.has_cmd?(cmd[1])
163
+ total = klass.cmds_useful[cmd[1]][:interface_brief]
188
164
 
189
- total.each_value do |info|
190
- # 如果有环回口,那么就直接输出
191
- if (info[:interface_id].downcase == klass.interface[:loopback].downcase + "0") and (info[:status] =~ /(?i)up/)
192
- manager = info[:ip]
193
- end
165
+ total.each_value do |info|
166
+ # 如果有环回口,那么就直接输出
167
+ if (info[:interface_id].downcase == klass.interface[:loopback].downcase + "0") and (info[:status] =~ /(?i)up/)
168
+ manager = info[:ip]
194
169
  end
195
170
  end
196
- return manager
197
-
198
- rescue Exception
199
- puts_error
200
- return ""
201
171
  end
172
+ return manager
173
+
174
+ rescue Exception
175
+ puts_error
176
+ return ""
202
177
  end
203
178
 
204
179
  private
@@ -49,7 +49,7 @@ module Aio::Text
49
49
  when "=="
50
50
  var == ben
51
51
  when "=~"
52
- var =~ Regexp.new(ben) ? true : false
52
+ var.match(Regexp.new(ben)) ? true : false
53
53
  when "!="
54
54
  var != ben
55
55
  when ">"
@@ -25,19 +25,25 @@ class Aio::Module::Cmd::H3C::DisplayCpu < Aio::Module::Cmd::H3C
25
25
  cont = self.context.dup
26
26
  useful[:cpu] = {}
27
27
  loop do
28
- cont.readline_range(/Slot \d+ (CPU \d+\s+){0,1}CPU usage/, reg_blank) do |cont_layer|
28
+ cont.readline_range(/(Slot|Unit) \d?\s?(CPU \d+\s+)?CPU usage/, reg_blank) do |cont_layer|
29
29
  parse_cpu(cont_layer)
30
30
  end
31
31
  end
32
+ useful[:cpu]
32
33
  end
33
34
 
34
35
  def parse_cpu(context)
35
36
  cpu = {}
36
37
  useful[:cpu] = cpu
37
- context.readline_match_block(/Slot (?<slot_id>\d+) (CPU \d+\s+){0,1}CPU/) do |block|
38
+ context.readline_match_block(/(Slot|Unit) (?<slot_id>\d?)\s?(CPU \d+\s+)?CPU/) do |block|
38
39
  # 目前只保留 slot 0 的CPU使用率
39
40
  #return if block[:slot_id].to_s != '0'
40
- block.update(cpu, :slot_id)
41
+ # 有可能没有 slot 项
42
+ if block[:slot_id].empty?
43
+ block.update(cpu, :slot_id, '0')
44
+ else
45
+ block.update(cpu, :slot_id)
46
+ end
41
47
  end
42
48
  context.readline_match_block(/(?<seconds_5>\d+)% in last 5 seconds/) do |block|
43
49
  block.warning_serious(cpu, :seconds_5, self)
@@ -3,87 +3,87 @@
3
3
  require "aio/core"
4
4
 
5
5
  class Aio::Module::Cmd::H3C::DisplayPower < Aio::Module::Cmd::H3C
6
- include Aio::Module
6
+ include Aio::Module
7
7
 
8
- def initialize
9
- super({
10
- :cmd_full => "display power",
11
- :cmd_short => "dis pow",
12
- :author => "Elin",
13
- :description => "This is H3C Command# display power",
14
- :ranking => Ranking_1,
15
- :platform => "all",
16
- :benchmark => {
17
- :power_status => ["=~", /Normal/, /Absent/],
18
- },
19
- })
20
- end
8
+ def initialize
9
+ super({
10
+ :cmd_full => "display power",
11
+ :cmd_short => "dis pow",
12
+ :author => "Elin",
13
+ :description => "This is H3C Command# display power",
14
+ :ranking => Ranking_1,
15
+ :platform => "all",
16
+ :benchmark => {
17
+ :power_status => ["=~", /Normal/, /Absent/],
18
+ },
19
+ })
20
+ end
21
21
 
22
- def parse
23
- cont = self.context.dup
24
- useful[:power] = {}
25
- case device_template
26
- when Template_1
27
- cont.readline_range_loop(/Slot/, /Slot/) do |cont_layer|
28
- parse_slot(cont_layer)
29
- end
30
- when Template_2
31
- cont.readline_range_loop(/Unit/, /Unit/) do |cont_layer|
32
- parse_unit(cont_layer)
33
- end
34
- end
35
- end
22
+ def parse
23
+ cont = self.context.dup
24
+ useful[:power] = {}
25
+ case device_template
26
+ when Template_1
27
+ cont.readline_range_loop(/Slot/, /Slot/) do |cont_layer|
28
+ parse_slot(cont_layer)
29
+ end
30
+ when Template_2
31
+ cont.readline_range_loop(/Unit/, /Unit/) do |cont_layer|
32
+ parse_unit(cont_layer)
33
+ end
34
+ end
35
+ end
36
36
 
37
37
  =begin
38
- def parse_def(context)
39
- case context[0]
40
- when /Slot/
41
- parse_slot(context)
42
- when /Unit/
43
- parse_unit(context)
44
- end
45
- end
38
+ def parse_def(context)
39
+ case context[0]
40
+ when /Slot/
41
+ parse_slot(context)
42
+ when /Unit/
43
+ parse_unit(context)
44
+ end
45
+ end
46
46
  =end
47
47
 
48
- def parse_slot(context)
49
- power = {}
50
- context.readline_match_block(/Slot (?<slot_id>\d+)/) do |block|
51
- useful[:power] = {}
52
- useful[:power]["slot_#{block[:slot_id]}"] = power
53
- block.update(power, :slot_id)
54
- end
55
- context.readline_range_loop(/Power/, reg_blank) do |cont_layer|
56
- parse_power(cont_layer, power)
57
- end
58
- end
48
+ def parse_slot(context)
49
+ power = {}
50
+ context.readline_match_block(/Slot (?<slot_id>\d+)/) do |block|
51
+ useful[:power] = {}
52
+ useful[:power]["slot_#{block[:slot_id]}"] = power
53
+ block.update(power, :slot_id)
54
+ end
55
+ context.readline_range_loop(/Power/, reg_blank) do |cont_layer|
56
+ parse_power(cont_layer, power)
57
+ end
58
+ end
59
59
 
60
- def parse_unit(context)
61
- power = {}
62
- context.readline_match_block(/Unit (?<slot_id>\d+)/) do |block|
63
- useful[:power] = {}
64
- useful[:power]["slot_#{block[:slot_id]}"] = power
65
- block.update(power, :slot_id)
66
- end
67
- context.readline_range_loop(/power/, /power/, {:before=>true}) do |cont_layer|
68
- parse_power(cont_layer, power)
69
- end
70
- end
60
+ def parse_unit(context)
61
+ power = {}
62
+ context.readline_match_block(/Unit (?<slot_id>\d+)/) do |block|
63
+ useful[:power] = {}
64
+ useful[:power]["slot_#{block[:slot_id]}"] = power
65
+ block.update(power, :slot_id)
66
+ end
67
+ context.readline_range_loop(/power/, /power/, {:before=>true}) do |cont_layer|
68
+ parse_power(cont_layer, power)
69
+ end
70
+ end
71
71
 
72
- def parse_power(context, power)
73
- power_id_info = {}
74
- context.readline_match_block(/[Pp]ower (?<power_id>\d+)/) do |block|
75
- power_id = block[:power_id]
76
- power["power_#{power_id}"] = power_id_info
77
- block.update(power_id_info, :power_id)
78
- end
79
- context.readline_match_block(/State : (?<power_status>.*)/) do |block|
80
- block.warning_serious(power_id_info, :power_status, self)
81
- end
72
+ def parse_power(context, power)
73
+ power_id_info = {}
74
+ context.readline_match_block(/[Pp]ower (?<power_id>\d+)/) do |block|
75
+ power_id = block[:power_id]
76
+ power["power_#{power_id}"] = power_id_info
77
+ block.update(power_id_info, :power_id)
78
+ end
79
+ context.readline_match_block(/State : (?<power_status>.*)/) do |block|
80
+ block.warning_serious(power_id_info, :power_status, self)
81
+ end
82
82
 
83
- context.readline_match_block(/Type : (?<type>.*)/) do |block|
84
- block.update(power_id_info, :type)
85
- end
86
- end
83
+ context.readline_match_block(/Type : (?<type>.*)/) do |block|
84
+ block.update(power_id_info, :type)
85
+ end
86
+ end
87
87
  end
88
88
 
89
89
 
@@ -3,84 +3,84 @@
3
3
  require "aio/core"
4
4
 
5
5
  class Aio::Module::Cmd::H3C::DisplayVrrpVerbose < Aio::Module::Cmd::H3C
6
- include Aio::Module
6
+ include Aio::Module
7
7
 
8
- def initialize
9
- super({
10
- :cmd_full => "display vrrp verbose",
11
- :cmd_short => "dis vrrp ver",
12
- :author => "Elin",
13
- :description => "This is H3C Command# display vrrp verbose",
14
- :ranking => Ranking_1,
15
- :platform => "all",
16
- :benchmark => {},
17
- })
18
- end
8
+ def initialize
9
+ super({
10
+ :cmd_full => "display vrrp verbose",
11
+ :cmd_short => "dis vrrp ver",
12
+ :author => "Elin",
13
+ :description => "This is H3C Command# display vrrp verbose",
14
+ :ranking => Ranking_1,
15
+ :platform => "all",
16
+ :benchmark => {},
17
+ })
18
+ end
19
19
 
20
- def parse
21
- cont = self.context.dup
22
- vrrp = {}
23
- useful[:vrrp] = vrrp
24
- cont.readline_match_block(/Run Mode : (?<run_mode>.*)/) do |block|
25
- block.update(vrrp, :run_mode)
26
- end
27
- cont.readline_match_block(/Run Method : (?<run_method>.*)/) do |block|
28
- block.update(vrrp, :run_method)
29
- end
30
- cont.readline_match_block(/Total number of virtual routers : (?<total_number_vrrp>\d+)/) do |block|
31
- block.update(vrrp, :total_number_vrrp)
32
- end
33
- cont.readline_range(/Interface/, /Interface/) do |cont_layer|
34
- parse_vrrp(cont_layer)
35
- end
36
- end
20
+ def parse
21
+ cont = self.context.dup
22
+ vrrp = {}
23
+ useful[:vrrp] = vrrp
24
+ cont.readline_match_block(/Run Mode : (?<run_mode>.*)/) do |block|
25
+ block.update(vrrp, :run_mode)
26
+ end
27
+ cont.readline_match_block(/Run Method : (?<run_method>.*)/) do |block|
28
+ block.update(vrrp, :run_method)
29
+ end
30
+ cont.readline_match_block(/Total number of virtual routers : (?<total_number_vrrp>\d+)/) do |block|
31
+ block.update(vrrp, :total_number_vrrp)
32
+ end
33
+ cont.readline_range(/Interface/, /Interface/) do |cont_layer|
34
+ parse_vrrp(cont_layer)
35
+ end
36
+ end
37
37
 
38
- def parse_vrrp(cont)
39
- vrrp = {}
40
- useful[:vrrp][:vrid] = {}
41
- iface_id = nil
38
+ def parse_vrrp(cont)
39
+ vrrp = {}
40
+ useful[:vrrp][:vrid] = {}
41
+ iface_id = nil
42
42
 
43
- case device_template
44
- when Template_1
45
- cont.readline_match_block(/Interface (?<iface_id>.*)/) do |block|
46
- iface_id = block[:iface_id]
47
- end
48
- when Template_2
49
- cont.readline_match_block(/Interface : (?<iface_id>.[^\s]+)/) do |block|
50
- iface_id = block[:iface_id]
51
- end
52
- end
53
-
54
- cont.readline_match_block(/VRID : (?<vrid>\d+)/) do |block|
55
- vrid = block[:vrid]
56
- useful[:vrrp][:vrid][vrid] = vrrp
57
- block.update(vrrp, :interface, iface_id)
58
- block.update(vrrp, :vrid)
59
- end
60
- cont.readline_match_block(/Admin Status : (?<status>.*) State : (?<state>.*)/) do |block|
61
- block.update(vrrp, :status)
62
- block.update(vrrp, :state)
63
- end
64
- cont.readline_match_block(/Config Pri : (?<config_pri>.*) Running Pri : (?<running_pri>.*)/) do |block|
65
- block.update(vrrp, :config_pri)
66
- block.update(vrrp, :running_pri)
67
- end
68
- cont.readline_match_block(/Preempt Mode : (?<preempt_mode>.*) Delay Time : (?<delay_time>\d+)/) do |block|
69
- block.update(vrrp, :preempt_mode)
70
- block.update(vrrp, :delay_time)
71
- end
72
- cont.readline_match_block(/Auth Type : (?<auth_type>.*)/) do |block|
73
- block.update(vrrp, :auth_type)
74
- end
75
- cont.readline_match_block(/Virtual IP : (?<virtual_ip>.*)/) do |block|
76
- block.update(vrrp, :virtual_ip)
77
- end
78
- cont.readline_match_block(/Virtual MAC : (?<virtual_mac>.*)/) do |block|
79
- block.update(vrrp, :virtual_mac)
80
- end
81
- cont.readline_match_block(/Master IP : (?<master_ip>.*)/) do |block|
82
- block.update(vrrp, :master_ip)
83
- end
84
- end
43
+ case device_template
44
+ when Template_2
45
+ cont.readline_match_block(/Interface : (?<iface_id>.[^\s]+)/) do |block|
46
+ iface_id = block[:iface_id]
47
+ end
48
+ else
49
+ cont.readline_match_block(/Interface (?<iface_id>.*)/) do |block|
50
+ iface_id = block[:iface_id]
51
+ end
52
+ end
53
+
54
+ cont.readline_match_block(/VRID : (?<vrid>\d+)/) do |block|
55
+ vrid = block[:vrid]
56
+ useful[:vrrp][:vrid][vrid] = vrrp
57
+ block.update(vrrp, :interface, iface_id)
58
+ block.update(vrrp, :vrid)
59
+ end
60
+ cont.readline_match_block(/Admin Status : (?<status>.*) State : (?<state>.*)/) do |block|
61
+ block.update(vrrp, :status)
62
+ block.update(vrrp, :state)
63
+ end
64
+ cont.readline_match_block(/Config Pri : (?<config_pri>.*) Running Pri : (?<running_pri>.*)/) do |block|
65
+ block.update(vrrp, :config_pri)
66
+ block.update(vrrp, :running_pri)
67
+ end
68
+ cont.readline_match_block(/Preempt Mode : (?<preempt_mode>.*) Delay Time : (?<delay_time>\d+)/) do |block|
69
+ block.update(vrrp, :preempt_mode)
70
+ block.update(vrrp, :delay_time)
71
+ end
72
+ cont.readline_match_block(/Auth Type : (?<auth_type>.*)/) do |block|
73
+ block.update(vrrp, :auth_type)
74
+ end
75
+ cont.readline_match_block(/Virtual IP : (?<virtual_ip>.*)/) do |block|
76
+ block.update(vrrp, :virtual_ip)
77
+ end
78
+ cont.readline_match_block(/Virtual MAC : (?<virtual_mac>.*)/) do |block|
79
+ block.update(vrrp, :virtual_mac)
80
+ end
81
+ cont.readline_match_block(/Master IP : (?<master_ip>.*)/) do |block|
82
+ block.update(vrrp, :master_ip)
83
+ end
84
+ end
85
85
  end
86
86