network-utility 1.1.25 → 1.1.27
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.
- checksums.yaml +4 -4
- data/document/config.md +1 -0
- data/document/if-CX600-X16A.md +9 -1
- data/document/if-CX600-X8A.md +9 -1
- data/document/if-MA5200G-8.md +1 -0
- data/document/if-ME60-16.md +2 -1
- data/document/if-ME60-X16.md +2 -1
- data/document/if-NE40E-X16.md +2 -1
- data/document/if-NE40E-X16A.md +2 -1
- data/document/if-NE40E-X8.md +1 -0
- data/document/if-NE40E.md +2 -1
- data/document/if-NE5000E-20.md +5 -4
- data/document/if-NE5000E-X16.md +6 -5
- data/document/if-NE5000E-X16A.md +6 -5
- data/document/if-NE8000E-X8.md +2 -1
- data/document/if-NE80E.md +1 -0
- data/document/if-NE8100-X8.md +2 -1
- data/document/if-VNE9000.md +1 -0
- data/network.rb +1 -1
- metadata +1 -2
- data/document/config.rb +0 -1294
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0e6f1d7aafa0167c2dcb6c4e5911d6ca806450ca2401c29a60503ec53d13a81a
|
|
4
|
+
data.tar.gz: 901cf7b0978de5d65c6a9cfe6fd29c8889988310ad725244a0fb26d04cde72ad
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99d6fe33e020343533be16c3042a32c57d87497aa8c1a35d1703bb6723b05dee56b9d68bfeb414db81eea32e4abb02dd5c136ee0674c65588a8d7dbe094df3a6
|
|
7
|
+
data.tar.gz: 192d269a113d96980cbc4f08c2ac58f3d57684a4d244b03aaba7e823adb3705b46f4bb46001ffc72f8246f1c8743eb250c9bf4bb367032b629de3401e5ca098d
|
data/document/config.md
CHANGED
|
@@ -999,6 +999,7 @@ module M6000_18S
|
|
|
999
999
|
raw = newraw.join("\n")
|
|
1000
1000
|
hostname = guards[0] || self.preprocess(raw).split("\n").find{|line|line.include?("hostname ")}.to_s.split("hostname ")[1]
|
|
1001
1001
|
prepart = self.preprocess(raw).split(/#{hostname}#( )*show running-config( )*\n/)[1]
|
|
1002
|
+
prepart = self.preprocess(raw).split("show running-config\n")[1].split("<<<<")[0] unless prepart # ssh >>>>
|
|
1002
1003
|
return cfg unless prepart
|
|
1003
1004
|
content = prepart.split(/#{hostname}#( )*\n/)[0]
|
|
1004
1005
|
|
data/document/if-CX600-X16A.md
CHANGED
|
@@ -67,7 +67,7 @@ module CX600_X16A
|
|
|
67
67
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
68
68
|
def 端口识别 描述
|
|
69
69
|
连接符 = ''
|
|
70
|
-
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Aux/.match(描述)
|
|
70
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
71
71
|
类型 = type ? type.to_s : '未知类型'
|
|
72
72
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
73
73
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -241,6 +241,13 @@ module CX600_X16A
|
|
|
241
241
|
return nil
|
|
242
242
|
end
|
|
243
243
|
|
|
244
|
+
# func: 给出聚合接口查询命令的返回结果,提取接口对应的物理接口,若无返回空
|
|
245
|
+
def 聚合接口查询 查询报文
|
|
246
|
+
return [] if 查询报文.include?("not exist")
|
|
247
|
+
parts = 查询报文.split("--------------------------------------------------------------------------------")
|
|
248
|
+
return parts[1].split("\n").map{|s|s.split(" ")}.select{|s|s.size>7}.map{|s|s.first.split('(').first}.select{|s|!s.include?('Actor')}
|
|
249
|
+
end
|
|
250
|
+
|
|
244
251
|
#####################################################################################################
|
|
245
252
|
# 接口VLAN相关
|
|
246
253
|
# 对接口vlan配置的解析
|
|
@@ -307,6 +314,7 @@ module CX600_X16A
|
|
|
307
314
|
|
|
308
315
|
子接口名称 = self.端口识别(接口配置)
|
|
309
316
|
bas子接口数据库[name] ||= {}
|
|
317
|
+
子接口索引 = []
|
|
310
318
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
311
319
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
312
320
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-CX600-X8A.md
CHANGED
|
@@ -67,7 +67,7 @@ module CX600_X8A
|
|
|
67
67
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
68
68
|
def 端口识别 描述
|
|
69
69
|
连接符 = ''
|
|
70
|
-
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Aux/.match(描述)
|
|
70
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
71
71
|
类型 = type ? type.to_s : '未知类型'
|
|
72
72
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
73
73
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -241,6 +241,13 @@ module CX600_X8A
|
|
|
241
241
|
return nil
|
|
242
242
|
end
|
|
243
243
|
|
|
244
|
+
# func: 给出聚合接口查询命令的返回结果,提取接口对应的物理接口,若无返回空
|
|
245
|
+
def 聚合接口查询 查询报文
|
|
246
|
+
return [] if 查询报文.include?("not exist")
|
|
247
|
+
parts = 查询报文.split("--------------------------------------------------------------------------------")
|
|
248
|
+
return parts[1].split("\n").map{|s|s.split(" ")}.select{|s|s.size>7}.map{|s|s.first.split('(').first}.select{|s|!s.include?('Actor')}
|
|
249
|
+
end
|
|
250
|
+
|
|
244
251
|
#####################################################################################################
|
|
245
252
|
# 接口VLAN相关
|
|
246
253
|
# 对接口vlan配置的解析
|
|
@@ -307,6 +314,7 @@ module CX600_X8A
|
|
|
307
314
|
|
|
308
315
|
子接口名称 = self.端口识别(接口配置)
|
|
309
316
|
bas子接口数据库[name] ||= {}
|
|
317
|
+
子接口索引 = []
|
|
310
318
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
311
319
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
312
320
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-MA5200G-8.md
CHANGED
|
@@ -315,6 +315,7 @@ module MA5200G_8
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-ME60-16.md
CHANGED
|
@@ -315,6 +315,7 @@ module ME60_16
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
@@ -336,7 +337,7 @@ module ME60_16
|
|
|
336
337
|
bas子接口数据库[name][索引][pv] += cv
|
|
337
338
|
bas子接口数据库[name][索引][pv].uniq!
|
|
338
339
|
end
|
|
339
|
-
end
|
|
340
|
+
end
|
|
340
341
|
end
|
|
341
342
|
return bas子接口数据库
|
|
342
343
|
end
|
data/document/if-ME60-X16.md
CHANGED
|
@@ -315,6 +315,7 @@ module ME60_X16
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
@@ -336,7 +337,7 @@ module ME60_X16
|
|
|
336
337
|
bas子接口数据库[name][索引][pv] += cv
|
|
337
338
|
bas子接口数据库[name][索引][pv].uniq!
|
|
338
339
|
end
|
|
339
|
-
end
|
|
340
|
+
end
|
|
340
341
|
end
|
|
341
342
|
return bas子接口数据库
|
|
342
343
|
end
|
data/document/if-NE40E-X16.md
CHANGED
|
@@ -315,7 +315,8 @@ module NE40E_X16
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
-
|
|
318
|
+
子接口索引 = []
|
|
319
|
+
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
321
322
|
end
|
data/document/if-NE40E-X16A.md
CHANGED
|
@@ -315,7 +315,8 @@ module NE40E_X16A
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
-
|
|
318
|
+
子接口索引 = []
|
|
319
|
+
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
321
322
|
end
|
data/document/if-NE40E-X8.md
CHANGED
|
@@ -315,6 +315,7 @@ module NE40E_X8
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-NE40E.md
CHANGED
|
@@ -68,7 +68,7 @@ module NE40E
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Aux/.match(描述)
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -315,6 +315,7 @@ module NE40E
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-NE5000E-20.md
CHANGED
|
@@ -39,7 +39,7 @@ module NE5000E_20
|
|
|
39
39
|
|
|
40
40
|
def 特殊接口配置 接口集合
|
|
41
41
|
接口集合.collect{|接口|
|
|
42
|
-
接口 if /Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
42
|
+
接口 if /Virtual\-Ethernet|Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
43
43
|
}.compact.sort_by{|接口|接口.split("\n")[0]}
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -68,7 +68,7 @@ module NE5000E_20
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /100GE|
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -315,7 +315,8 @@ module NE5000E_20
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
-
|
|
318
|
+
子接口索引 = []
|
|
319
|
+
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
321
322
|
end
|
|
@@ -349,7 +350,7 @@ module NE5000E_20
|
|
|
349
350
|
# 针对display interface brief main
|
|
350
351
|
def 统计接口 文本
|
|
351
352
|
文本.split("\n").inject([]) do|表格, 行|
|
|
352
|
-
表格 << 行.split(" ") if 行.include?("100GE") or 行.include?("
|
|
353
|
+
表格 << 行.split(" ") if 行.include?("GigabitEthernet") or 行.include?("50GE") or 行.include?("50|100GE") or 行.include?("100GE") or 行.include?("Eth-Trunk")
|
|
353
354
|
表格 # [interface, physical, protocol, in-uti, out-uti, in-errors, out-errors]
|
|
354
355
|
end
|
|
355
356
|
end
|
data/document/if-NE5000E-X16.md
CHANGED
|
@@ -39,7 +39,7 @@ module NE5000E_X16
|
|
|
39
39
|
|
|
40
40
|
def 特殊接口配置 接口集合
|
|
41
41
|
接口集合.collect{|接口|
|
|
42
|
-
接口 if /Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
42
|
+
接口 if /Virtual\-Ethernet|Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
43
43
|
}.compact.sort_by{|接口|接口.split("\n")[0]}
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -68,7 +68,7 @@ module NE5000E_X16
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /100GE|
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -205,7 +205,7 @@ module NE5000E_X16
|
|
|
205
205
|
return {'access-type'=>atype, a3dom => dname}
|
|
206
206
|
else
|
|
207
207
|
return {'access-type'=>atype}
|
|
208
|
-
end
|
|
208
|
+
end
|
|
209
209
|
end
|
|
210
210
|
end
|
|
211
211
|
return {}
|
|
@@ -315,7 +315,8 @@ module NE5000E_X16
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
-
|
|
318
|
+
子接口索引 = []
|
|
319
|
+
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
321
322
|
end
|
|
@@ -349,7 +350,7 @@ module NE5000E_X16
|
|
|
349
350
|
# 针对display interface brief main
|
|
350
351
|
def 统计接口 文本
|
|
351
352
|
文本.split("\n").inject([]) do|表格, 行|
|
|
352
|
-
表格 << 行.split(" ") if 行.include?("100GE") or 行.include?("
|
|
353
|
+
表格 << 行.split(" ") if 行.include?("GigabitEthernet") or 行.include?("50GE") or 行.include?("50|100GE") or 行.include?("100GE") or 行.include?("Eth-Trunk")
|
|
353
354
|
表格 # [interface, physical, protocol, in-uti, out-uti, in-errors, out-errors]
|
|
354
355
|
end
|
|
355
356
|
end
|
data/document/if-NE5000E-X16A.md
CHANGED
|
@@ -39,7 +39,7 @@ module NE5000E_X16A
|
|
|
39
39
|
|
|
40
40
|
def 特殊接口配置 接口集合
|
|
41
41
|
接口集合.collect{|接口|
|
|
42
|
-
接口 if /Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
42
|
+
接口 if /Virtual\-Ethernet|Virtual|Aux|NULL|LoopBack|Logic\-Channel/.match(接口.split("\n")[0])
|
|
43
43
|
}.compact.sort_by{|接口|接口.split("\n")[0]}
|
|
44
44
|
end
|
|
45
45
|
|
|
@@ -68,7 +68,7 @@ module NE5000E_X16A
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /100GE|
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -205,7 +205,7 @@ module NE5000E_X16A
|
|
|
205
205
|
return {'access-type'=>atype, a3dom => dname}
|
|
206
206
|
else
|
|
207
207
|
return {'access-type'=>atype}
|
|
208
|
-
end
|
|
208
|
+
end
|
|
209
209
|
end
|
|
210
210
|
end
|
|
211
211
|
return {}
|
|
@@ -315,7 +315,8 @@ module NE5000E_X16A
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
-
|
|
318
|
+
子接口索引 = []
|
|
319
|
+
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
|
321
322
|
end
|
|
@@ -349,7 +350,7 @@ module NE5000E_X16A
|
|
|
349
350
|
# 针对display interface brief main
|
|
350
351
|
def 统计接口 文本
|
|
351
352
|
文本.split("\n").inject([]) do|表格, 行|
|
|
352
|
-
表格 << 行.split(" ") if 行.include?("100GE") or 行.include?("
|
|
353
|
+
表格 << 行.split(" ") if 行.include?("GigabitEthernet") or 行.include?("50GE") or 行.include?("50|100GE") or 行.include?("100GE") or 行.include?("Eth-Trunk")
|
|
353
354
|
表格 # [interface, physical, protocol, in-uti, out-uti, in-errors, out-errors]
|
|
354
355
|
end
|
|
355
356
|
end
|
data/document/if-NE8000E-X8.md
CHANGED
|
@@ -68,7 +68,7 @@ module NE8000E_X8
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Aux/.match(描述)
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -315,6 +315,7 @@ module NE8000E_X8
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-NE80E.md
CHANGED
|
@@ -315,6 +315,7 @@ module NE80E
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-NE8100-X8.md
CHANGED
|
@@ -68,7 +68,7 @@ module NE8100_X8
|
|
|
68
68
|
# func: 根据一个端口的描述信息,给出其格式化的类型、连接符、端口编号
|
|
69
69
|
def 端口识别 描述
|
|
70
70
|
连接符 = ''
|
|
71
|
-
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Aux/.match(描述)
|
|
71
|
+
type = /GE|50\|100GE|50GE|100GE|GigabitEthernet|Pos|Ethernet|Eth\-Trunk|Global\-VE|FlexE\-100G|FlexE\-50\|100G|FlexE|Vlanif|Virtual\-Template|NULL|LoopBack|Logic\-Channel|Aux/.match(描述)
|
|
72
72
|
类型 = type ? type.to_s : '未知类型'
|
|
73
73
|
port = /(\d+|\/|\.)*(\d+)/.match(描述.split(类型).join)
|
|
74
74
|
端口 = port ? port.to_s : '未知端口'
|
|
@@ -315,6 +315,7 @@ module NE8100_X8
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/document/if-VNE9000.md
CHANGED
|
@@ -315,6 +315,7 @@ module VNE9000
|
|
|
315
315
|
|
|
316
316
|
子接口名称 = self.端口识别(接口配置)
|
|
317
317
|
bas子接口数据库[name] ||= {}
|
|
318
|
+
子接口索引 = []
|
|
318
319
|
if 子接口名称[0].include?("GigabitEthernet") or 子接口名称[0].include?("50GE") or 子接口名称[0].include?("50|100GE") or 子接口名称[0].include?("100GE")
|
|
319
320
|
# 子接口索引 = ["eth--"+子接口名称[-1].split(".")[0].split('/')[-3..-1].join(',')] # AIBOS风格
|
|
320
321
|
子接口索引 = [子接口名称.join.split(".")[0]] # 原生风格
|
data/network.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: network-utility
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.27
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt
|
|
@@ -82,7 +82,6 @@ files:
|
|
|
82
82
|
- document/bgp-NE5000E-X16A.md
|
|
83
83
|
- document/bgp-NE80E.md
|
|
84
84
|
- document/config.md
|
|
85
|
-
- document/config.rb
|
|
86
85
|
- document/document.rb
|
|
87
86
|
- document/if-ALCATEL7750.md
|
|
88
87
|
- document/if-C7609.md
|