aio_elin 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,399 +3,375 @@
3
3
  require "aio/core"
4
4
 
5
5
  class Aio::Module::OutputStyle::ExcelTableWps < Aio::Module::OutputStyle
6
- include Aio::Module
7
- include Aio::Device
8
- include Aio::Base::Toolkit::ExcelWps
9
- include Aio::Ui::Verbose
10
-
11
- attr_accessor :worksheet
12
-
13
- #TitleBanner = "湖北中行现场巡检报告"
14
- TitleBanner = "现场巡检报告"
15
- [
16
- # 1号网核心
17
- ["A_HBWHA_COR_CS01", "30.48.1.248"],
18
- ["A_HBWHA_COR_CS02", "30.48.1.249"],
19
- ["A_HBA02_WAN_AR01", "30.48.1.253"],
20
- ["A_HBA02_WAN_AR02", "30.48.1.254"],
21
- ["A_HBWHA_PUB_AS01", "30.48.14.21"],
22
- ["A_HBWHA_PUB_AS02", "30.48.14.22"],
23
- ["A_HBWHA_MAN_DR", "30.49.255.254"],
24
- ["A_HBWHA_SVR_AS01", "30.48.255.250"],
25
- ["A_HBWHA_SVR_AS02", "30.48.255.249"],
26
- ["A_HBWHA_WBN_DR", "30.48.255.254"],
27
- ["A_HBWHB_CAM_DS01", "30.48.254.254"],
28
- ["A_HBWHB_CAM_DS02", "30.48.254.253"],
29
- ["A_HBWHC_MAN_DR", "30.49.255.253"],
30
- ["A_HBZ02_WAN_AR02", "30.48.1.251"],
31
- ["A_HBWHC_WBN_DR", "30.48.255.253"],
32
-
33
- # 2号网核心
34
- ["B_HBWHA_COR_CS01", "21.160.127.1"],
35
- ["B_HBWHA_COR_CS02", "21.160.127.2"],
36
- ["B_HBA02_WAN_AR01", "22.160.120.253"],
37
- ["B_HBA02_WAN_AR02", "22.160.120.254"],
38
- ["B_HBWHA_WBN_DR", "21.160.127.195"],
39
- ["B_HBWHA_MAN_DR01", "21.160.127.197"],
40
- ["B_HBWHA_MAN_DR02", "21.160.127.198"],
41
- ["B_HBWHA_CAM_DS01", "21.160.127.199"],
42
- ["B_HBWHA_CAM_DS02", "21.160.127.200"],
43
- ["B_HBWHA_SVR_DS01", "21.160.127.201"],
44
- ["B_HBWHA_SVR_DS02", "21.160.127.202"],
45
- ["B_HBWHA_ATM_DR01", "21.160.223.254"],
46
- ["B_HBWHA_ATM_DR02", "21.160.223.253"],
47
- ["B_HBWHC_WBN_DR", "21.160.128.195"],
48
- ["B_HBWHB_CAM_DS01", "22.160.95.253"],
49
- ["B_HBZ02_WAN_AR03", "22.160.120.251"],
50
- ["B_HBWHB_CAM_DS02", "22.160.95.254"],
51
- ]
52
-
53
- def initialize
54
- super({
55
- :author => "Elin",
56
- :description => "这个模块按照表格输出excel文件, 以WPS运行",
57
- :file_suffix => "xls",
6
+ include Aio::Module
7
+ include Aio::Device
8
+ include Aio::Base::Toolkit::ExcelWps
9
+ include Aio::Ui::Verbose
10
+
11
+ attr_accessor :worksheet
12
+
13
+ #TitleBanner = "湖北中行现场巡检报告"
14
+ TitleBanner = "现场巡检报告"
15
+
16
+ def initialize
17
+ super({
18
+ :author => "Elin",
19
+ :description => "这个模块按照表格输出excel文件, 以WPS运行",
20
+ :file_suffix => "xls",
58
21
  :platform => ['windows']
59
- })
60
- end
61
-
62
- def generate
63
- excel = WorkBook.new
64
- #excel.show
65
- excel.display_alerts = false
66
- @worksheet = excel.add_worksheet("sheet")
67
-
68
- # 设置整体列宽
69
- @worksheet.width("a", 18)
70
- @worksheet.width("b", 10)
71
- @worksheet.width("c", 15)
72
- @worksheet.width("d", 15)
73
- @worksheet.width("e", 17)
74
- @worksheet.width("f", 7)
75
- @worksheet.width("g", 7)
76
-
77
- # 设置整体行高
78
- @worksheet.height(20)
79
-
80
- # DevicePool.size.times do |t|
81
- # device_name = DevicePool[t][0]
82
- device_manager.devices.each_key do |device_name|
83
- device_klass = device_manager[device_name]
84
- device_info = {
85
- :device_klass => device_klass,
86
- :manager_ip => "", #DevicePool[t][1],
87
- #:device_index => t
88
- }
89
- case device_klass
90
- when Cisco, H3C, Maipu
91
- generate_table(device_info)
92
- else
93
- print_error "未生成表格的设备: #{device_name}"
94
- end
95
- end
96
-
97
- # 设置垂直分页符
98
- @worksheet.pagebreak("H") if @worksheet.has_pagebreak?
99
-
100
- # 恢复警告提示
101
- excel.display_alerts = true
102
-
103
- # 保存
104
- begin
105
- excel.save(output_file.to_s)
106
- rescue Exception => e
107
- puts e.message
108
- ensure
109
- excel.close
110
- end
111
-
112
- end
113
-
114
- def generate_table(device_info)
115
- generate_hander
116
- generate_software(device_info)
117
- generate_clock(device_info)
118
- generate_inventory(device_info)
119
- generate_line
120
- generate_cpu_memory(device_info)
121
- generate_environment(device_info)
122
- generate_interface(device_info)
123
- pagebreak
124
- end
125
-
126
- def generate_hander
127
- @worksheet.add_row do |row|
128
- row.merge("a", "g")
129
- row.height = 30
130
- row << TitleBanner
131
- row.style("a", "TitleStyle")
132
- end
133
- @worksheet.add_row do |row|
134
- row.merge("b", "g")
135
- row << ["巡检命令", "1.基本信息"]
136
- row.style("a", "BoldStyle")
137
- row.style("b", "BoldStyle")
138
- end
139
- end
140
-
141
- def generate_software(device_info)
142
- device_klass = device_info[:device_klass]
143
- cmd = CmdSwitch.version(device_klass)
144
- @worksheet.add_row do |row|
145
- row.merge("c", "d")
146
- row.merge("f", "g")
147
- row << [
148
- cmd,
149
- "设备名称", device_klass.device_name,
150
- "设备型号", device_klass.device_info[:device_model]
151
- ]
152
- row.style("a", "BoldStyle")
153
- end
154
- @begin_row = @worksheet.current_row_id
155
- if !device_info[:manager_ip].empty?
156
- manager = device_info[:manager_ip]
157
- else
158
- manager = device_klass.get_manager_ip
159
- end
160
- @worksheet.add_row do |row|
161
- row.merge("c", "d")
162
- row.merge("f", "g")
163
- row.height = 24
164
- row << [
165
- cmd,
166
- #"管理IP", device_info[:manager_ip],
167
- "管理IP", manager,
168
- "IOS版本", device_klass.ios_version
169
- ]
170
- row.wraptext("f")
171
- end
172
- @worksheet.add_row do |row|
173
- row.merge("c", "g")
174
- row << [
175
- cmd,
176
- "IOS特性集", device_klass.soft_image
177
- ]
178
- end
179
- @worksheet.add_row do |row|
180
- row.merge("c", "g")
181
- row << [
182
- cmd,
183
- "运行时间", device_klass.uptime
184
- ]
185
- end
186
- @end_row = @worksheet.current_row_id
187
- @worksheet.merge("a#{@begin_row}", "a#{@end_row}")
188
- end
189
-
190
- def generate_clock(device_info)
191
- device_klass = device_info[:device_klass]
192
- cmd = case device_klass
193
- when Cisco, Maipu
194
- "show clock"
195
- when H3C
196
- "display clock"
197
- end
198
- @worksheet.add_row do |row|
199
- row.merge("c", "g")
200
- tmp = device_klass.clock
201
- time = Aio::Base::Toolkit::Date.time_to_s(tmp)
202
- time.insert(0, "`") if time.size > 5
203
- row << [
204
- cmd,
205
- "巡检时间", time
206
- ]
207
- row.style("a", "BoldStyle")
208
- end
209
- end
210
-
211
- def generate_inventory(device_info)
212
- device_klass = device_info[:device_klass]
213
- cmd = CmdSwitch.inventory(device_klass)
214
-
215
- @worksheet.add_row do |row|
216
- row.merge("b", "c")
217
- row.merge("f", "g")
218
- row << [
219
- cmd,
220
- "硬件信息", "接口卡型号", "序列号", "备注"
221
- ]
222
- row.style("a", "BoldStyle")
223
- row.wraptext("a")
224
- end
225
- @begin_row = @worksheet.current_row_id
226
-
227
- # 循环添加inventory条目
228
- inv = device_klass.inventory
229
- inv.each do |info|
230
- @worksheet.add_row do |row|
231
- row.merge("b", "c")
232
- row.merge("f", "g")
233
- row << [
234
- cmd,
235
- info[:name], info[:pid], info[:sn], ""
236
- ]
237
- row.wraptext("b")
238
- row.wraptext("e")
239
- end
240
- end
241
-
242
- # 当不足10条的时候,填充空白条目至10条
243
- if inv.size < 10
244
- (10 - inv.size).times do |t|
245
- @worksheet.add_row do |row|
246
- row.merge("b", "c")
247
- row.merge("f", "g")
248
- row << [
249
- cmd,
250
- "", "", "", ""
251
- ]
252
- end
253
- end
254
- end
255
- @end_row = @worksheet.current_row_id
256
- @worksheet.merge("a#{@begin_row}", "a#{@end_row}")
257
- end
258
-
259
- def generate_line
260
- @worksheet.add_row do |row|
261
- row.merge("b", "g")
262
- row << [
263
- "", "2.运行状态巡检信息采集"
264
- ]
265
- row.style("b", "BoldStyle")
266
- end
267
- @worksheet.add_row do |row|
268
- row.merge("d", "e")
269
- row.merge("f", "g")
270
- row << [
271
- "", "项目", "内容", "结果", "备注"
272
- ]
273
- row.style("b", "BoldStyle")
274
- row.style("c", "BoldStyle")
275
- row.style("d", "BoldStyle")
276
- row.style("f", "BoldStyle")
277
- end
278
- end
279
-
280
- def generate_cpu_memory(device_info)
281
- device_klass = device_info[:device_klass]
282
- cmd_cpu = CmdSwitch.cpu(device_klass)
283
- cmd_mem = CmdSwitch.memory(device_klass)
284
-
285
- @worksheet.add_row do |row|
286
- row.merge("d", "e")
287
- row.merge("f", "g")
288
- row << [
289
- cmd_cpu, "路由状态",
290
- "cpu 利用率(%)", device_klass.cpu_percent,
291
- ""
292
- ]
293
- row.style("a", "BoldStyle")
294
- end
295
- @begin_row = @worksheet.current_row_id
296
-
297
- @worksheet.add_row do |row|
298
- row.merge("d", "e")
299
- row.merge("f", "g")
300
- row << [
301
- cmd_mem, "路由状态",
302
- "memory 利用率(%)", device_klass.memory_percent,
303
- ""
304
- ]
305
- row.style("a", "BoldStyle")
306
- end
307
- end
308
-
309
- def generate_environment(device_info)
310
- device_klass = device_info[:device_klass]
311
- cmd = case device_klass
312
- when Cisco
313
- ["show environment"] * 3
314
- when H3C
315
- [nil, "display power", "display fan"]
316
- when Maipu
317
- ["show environment", "show system power",
318
- "show system fan" ]
319
- else
320
- ["show environment"] * 3
321
- end
322
-
323
- unless cmd[0].nil?
324
- @worksheet.add_row do |row|
325
- tmp = alarm_text(device_klass.warning_env?)
326
- row.merge("d", "e")
327
- row.merge("f", "g")
328
- row << [
329
- cmd[0], "路由状态",
330
- "温度", tmp,
331
- ""
332
- ]
333
- row.style("a", "BoldStyle")
334
- end
335
- end
336
- beg_row = @worksheet.current_row_id
337
-
338
- @worksheet.add_row do |row|
339
- tmp = alarm_text(device_klass.warning_env?)
340
- row.merge("d", "e")
341
- row.merge("f", "g")
342
- row << [
343
- cmd[1], "路由状态",
344
- "电源", tmp,
345
- ""
346
- ]
347
- row.style("a", "BoldStyle")
348
- end
349
- @worksheet.add_row do |row|
350
- tmp = alarm_text(device_klass.warning_env?)
351
- row.merge("d", "e")
352
- row.merge("f", "g")
353
- row << [
354
- cmd[2], "路由状态",
355
- "风扇", tmp,
356
- ""
357
- ]
358
- row.style("a", "BoldStyle")
359
- end
360
- end_row = @worksheet.current_row_id
361
-
362
- # 如果cmd都是一样的,那么就合并
363
- if cmd[0] == cmd[1] and cmd[1] == cmd[2]
364
- @worksheet.merge("a#{beg_row}", "a#{end_row}")
365
- end
366
- end
367
-
368
- def generate_interface(device_info)
369
- device_klass = device_info[:device_klass]
370
- cmd = CmdSwitch.interface(device_klass)
371
-
372
- @worksheet.add_row do |row|
373
- tmp = alarm_text(device_klass.warning_env?)
374
- row.merge("d", "e")
375
- row.merge("f", "g")
376
- row << [
377
- cmd, "路由状态",
378
- "接口状态", tmp,
379
- ""
380
- ]
381
- row.style("a", "BoldStyle")
382
- end
383
- @end_row = @worksheet.current_row_id
384
-
385
- @worksheet.merge("b#{@begin_row}", "b#{@end_row}")
386
- end
387
-
388
- def pagebreak
389
- @worksheet.current_row.pagebreak
390
- end
391
-
392
- def alarm_text(bool)
393
- if bool == true
394
- return "正常 □ 异常 ■"
395
- else
396
- return "正常 ■ 异常 □"
397
- end
398
- end
22
+ })
23
+ end
24
+
25
+ def generate
26
+ excel = WorkBook.new
27
+ #excel.show
28
+ excel.display_alerts = false
29
+ @worksheet = excel.add_worksheet("sheet")
30
+
31
+ # 设置整体列宽
32
+ @worksheet.width("a", 18)
33
+ @worksheet.width("b", 10)
34
+ @worksheet.width("c", 15)
35
+ @worksheet.width("d", 15)
36
+ @worksheet.width("e", 17)
37
+ @worksheet.width("f", 7)
38
+ @worksheet.width("g", 7)
39
+
40
+ # 设置整体行高
41
+ @worksheet.height(20)
42
+
43
+ # DevicePool.size.times do |t|
44
+ # device_name = DevicePool[t][0]
45
+ device_manager.devices.each_key do |device_name|
46
+ device_klass = device_manager[device_name]
47
+ device_info = {
48
+ :device_klass => device_klass,
49
+ :manager_ip => "", #DevicePool[t][1],
50
+ #:device_index => t
51
+ }
52
+ case device_klass
53
+ when Cisco, H3C, Maipu
54
+ generate_table(device_info)
55
+ else
56
+ print_error "生成为空白表格的设备: #{device_name}"
57
+ generate_white_table(device_name)
58
+ end
59
+ end
60
+
61
+ # 设置垂直分页符
62
+ @worksheet.pagebreak("H") if @worksheet.has_pagebreak?
63
+
64
+ # 恢复警告提示
65
+ excel.display_alerts = true
66
+
67
+ # 保存
68
+ begin
69
+ excel.save(output_file.to_s)
70
+ rescue Exception => e
71
+ puts e.message
72
+ ensure
73
+ excel.close
74
+ end
75
+
76
+ end
77
+
78
+ # 当无法生成表格的时候,自动生成一个空白表格,只有设备名称
79
+ def generate_white_table(device_name)
80
+ device_klass = Aio::Device::Cisco.new
81
+ device_klass.device_name = device_name
82
+ device_info = {
83
+ device_klass: device_klass,
84
+ manager_ip: ""
85
+ }
86
+
87
+ generate_table(device_info)
88
+ end
89
+
90
+ def generate_table(device_info)
91
+ generate_hander
92
+ generate_software(device_info)
93
+ generate_clock(device_info)
94
+ generate_inventory(device_info)
95
+ generate_line
96
+ generate_cpu_memory(device_info)
97
+ generate_environment(device_info)
98
+ generate_interface(device_info)
99
+ pagebreak
100
+ end
101
+
102
+ def generate_hander
103
+ @worksheet.add_row do |row|
104
+ row.merge("a", "g")
105
+ row.height = 30
106
+ row << TitleBanner
107
+ row.style("a", "TitleStyle")
108
+ end
109
+ @worksheet.add_row do |row|
110
+ row.merge("b", "g")
111
+ row << ["巡检命令", "1.基本信息"]
112
+ row.style("a", "BoldStyle")
113
+ row.style("b", "BoldStyle")
114
+ end
115
+ end
116
+
117
+ def generate_software(device_info)
118
+ device_klass = device_info[:device_klass]
119
+ cmd = CmdSwitch.version(device_klass)
120
+ @worksheet.add_row do |row|
121
+ row.merge("c", "d")
122
+ row.merge("f", "g")
123
+ row << [
124
+ cmd,
125
+ "设备名称", device_klass.device_name,
126
+ "设备型号", device_klass.device_info[:device_model]
127
+ ]
128
+ row.style("a", "BoldStyle")
129
+ end
130
+ @begin_row = @worksheet.current_row_id
131
+ if !device_info[:manager_ip].empty?
132
+ manager = device_info[:manager_ip]
133
+ else
134
+ manager = device_klass.get_manager_ip
135
+ end
136
+ @worksheet.add_row do |row|
137
+ row.merge("c", "d")
138
+ row.merge("f", "g")
139
+ row.height = 24
140
+ row << [
141
+ cmd,
142
+ #"管理IP", device_info[:manager_ip],
143
+ "管理IP", manager,
144
+ "IOS版本", device_klass.ios_version
145
+ ]
146
+ row.wraptext("f")
147
+ end
148
+ @worksheet.add_row do |row|
149
+ row.merge("c", "g")
150
+ row << [
151
+ cmd,
152
+ "IOS特性集", device_klass.soft_image
153
+ ]
154
+ end
155
+ @worksheet.add_row do |row|
156
+ row.merge("c", "g")
157
+ row << [
158
+ cmd,
159
+ "运行时间", device_klass.uptime
160
+ ]
161
+ end
162
+ @end_row = @worksheet.current_row_id
163
+ @worksheet.merge("a#{@begin_row}", "a#{@end_row}")
164
+ end
165
+
166
+ def generate_clock(device_info)
167
+ device_klass = device_info[:device_klass]
168
+ cmd = case device_klass
169
+ when Cisco, Maipu
170
+ "show clock"
171
+ when H3C
172
+ "display clock"
173
+ end
174
+ @worksheet.add_row do |row|
175
+ row.merge("c", "g")
176
+ tmp = device_klass.clock
177
+ time = Aio::Base::Toolkit::Date.time_to_s(tmp)
178
+ time.insert(0, "`") if time.size > 5
179
+ row << [
180
+ cmd,
181
+ "巡检时间", time
182
+ ]
183
+ row.style("a", "BoldStyle")
184
+ end
185
+ end
186
+
187
+ def generate_inventory(device_info)
188
+ device_klass = device_info[:device_klass]
189
+ cmd = CmdSwitch.inventory(device_klass)
190
+
191
+ @worksheet.add_row do |row|
192
+ row.merge("b", "c")
193
+ row.merge("f", "g")
194
+ row << [
195
+ cmd,
196
+ "硬件信息", "接口卡型号", "序列号", "备注"
197
+ ]
198
+ row.style("a", "BoldStyle")
199
+ row.wraptext("a")
200
+ end
201
+ @begin_row = @worksheet.current_row_id
202
+
203
+ # 循环添加inventory条目
204
+ inv = device_klass.inventory
205
+ inv.each do |info|
206
+ @worksheet.add_row do |row|
207
+ row.merge("b", "c")
208
+ row.merge("f", "g")
209
+ row << [
210
+ cmd,
211
+ info[:name], info[:pid], info[:sn], ""
212
+ ]
213
+ row.wraptext("b")
214
+ row.wraptext("e")
215
+ end
216
+ end
217
+
218
+ # 当不足10条的时候,填充空白条目至10条
219
+ if inv.size < 10
220
+ (10 - inv.size).times do |t|
221
+ @worksheet.add_row do |row|
222
+ row.merge("b", "c")
223
+ row.merge("f", "g")
224
+ row << [
225
+ cmd,
226
+ "", "", "", ""
227
+ ]
228
+ end
229
+ end
230
+ end
231
+ @end_row = @worksheet.current_row_id
232
+ @worksheet.merge("a#{@begin_row}", "a#{@end_row}")
233
+ end
234
+
235
+ def generate_line
236
+ @worksheet.add_row do |row|
237
+ row.merge("b", "g")
238
+ row << [
239
+ "", "2.运行状态巡检信息采集"
240
+ ]
241
+ row.style("b", "BoldStyle")
242
+ end
243
+ @worksheet.add_row do |row|
244
+ row.merge("d", "e")
245
+ row.merge("f", "g")
246
+ row << [
247
+ "", "项目", "内容", "结果", "备注"
248
+ ]
249
+ row.style("b", "BoldStyle")
250
+ row.style("c", "BoldStyle")
251
+ row.style("d", "BoldStyle")
252
+ row.style("f", "BoldStyle")
253
+ end
254
+ end
255
+
256
+ def generate_cpu_memory(device_info)
257
+ device_klass = device_info[:device_klass]
258
+ cmd_cpu = CmdSwitch.cpu(device_klass)
259
+ cmd_mem = CmdSwitch.memory(device_klass)
260
+
261
+ @worksheet.add_row do |row|
262
+ row.merge("d", "e")
263
+ row.merge("f", "g")
264
+ row << [
265
+ cmd_cpu, "路由状态",
266
+ "cpu 利用率(%)", device_klass.cpu_percent,
267
+ ""
268
+ ]
269
+ row.style("a", "BoldStyle")
270
+ end
271
+ @begin_row = @worksheet.current_row_id
272
+
273
+ @worksheet.add_row do |row|
274
+ row.merge("d", "e")
275
+ row.merge("f", "g")
276
+ row << [
277
+ cmd_mem, "路由状态",
278
+ "memory 利用率(%)", device_klass.memory_percent,
279
+ ""
280
+ ]
281
+ row.style("a", "BoldStyle")
282
+ end
283
+ end
284
+
285
+ def generate_environment(device_info)
286
+ device_klass = device_info[:device_klass]
287
+ cmd = case device_klass
288
+ when Cisco
289
+ ["show environment"] * 3
290
+ when H3C
291
+ [nil, "display power", "display fan"]
292
+ when Maipu
293
+ ["show environment", "show system power",
294
+ "show system fan" ]
295
+ else
296
+ ["show environment"] * 3
297
+ end
298
+
299
+ unless cmd[0].nil?
300
+ @worksheet.add_row do |row|
301
+ tmp = alarm_text(device_klass.warning_env?)
302
+ row.merge("d", "e")
303
+ row.merge("f", "g")
304
+ row << [
305
+ cmd[0], "路由状态",
306
+ "温度", tmp,
307
+ ""
308
+ ]
309
+ row.style("a", "BoldStyle")
310
+ end
311
+ end
312
+ beg_row = @worksheet.current_row_id
313
+
314
+ @worksheet.add_row do |row|
315
+ tmp = alarm_text(device_klass.warning_env?)
316
+ row.merge("d", "e")
317
+ row.merge("f", "g")
318
+ row << [
319
+ cmd[1], "路由状态",
320
+ "电源", tmp,
321
+ ""
322
+ ]
323
+ row.style("a", "BoldStyle")
324
+ end
325
+ @worksheet.add_row do |row|
326
+ tmp = alarm_text(device_klass.warning_env?)
327
+ row.merge("d", "e")
328
+ row.merge("f", "g")
329
+ row << [
330
+ cmd[2], "路由状态",
331
+ "风扇", tmp,
332
+ ""
333
+ ]
334
+ row.style("a", "BoldStyle")
335
+ end
336
+ end_row = @worksheet.current_row_id
337
+
338
+ # 如果cmd都是一样的,那么就合并
339
+ if cmd[0] == cmd[1] and cmd[1] == cmd[2]
340
+ @worksheet.merge("a#{beg_row}", "a#{end_row}")
341
+ end
342
+ end
343
+
344
+ def generate_interface(device_info)
345
+ device_klass = device_info[:device_klass]
346
+ cmd = CmdSwitch.interface(device_klass)
347
+
348
+ @worksheet.add_row do |row|
349
+ tmp = alarm_text(device_klass.warning_env?)
350
+ row.merge("d", "e")
351
+ row.merge("f", "g")
352
+ row << [
353
+ cmd, "路由状态",
354
+ "接口状态", tmp,
355
+ ""
356
+ ]
357
+ row.style("a", "BoldStyle")
358
+ end
359
+ @end_row = @worksheet.current_row_id
360
+
361
+ @worksheet.merge("b#{@begin_row}", "b#{@end_row}")
362
+ end
363
+
364
+ def pagebreak
365
+ @worksheet.current_row.pagebreak
366
+ end
367
+
368
+ def alarm_text(bool)
369
+ if bool == true
370
+ return "正常 □ 异常 ■"
371
+ else
372
+ return "正常 ■ 异常 □"
373
+ end
374
+ end
399
375
 
400
376
  end
401
377