network-utility 1.1.4
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 +7 -0
- data/README.md +2 -0
- data/document/acl-M6000-16E.md +27 -0
- data/document/acl-M6000-18S.md +27 -0
- data/document/acl-M6000-8.md +27 -0
- data/document/acl-M6000-8E.md +27 -0
- data/document/acl-MA5200G-8.md +204 -0
- data/document/acl-ME60-16.md +177 -0
- data/document/acl-ME60-X16.md +177 -0
- data/document/acl-NE40E-X16.md +204 -0
- data/document/acl-NE40E-X16A.md +204 -0
- data/document/acl-NE40E-X8.md +204 -0
- data/document/acl-NE40E.md +204 -0
- data/document/acl-NE5000E-20.md +25 -0
- data/document/acl-NE5000E-X16.md +25 -0
- data/document/acl-NE5000E-X16A.md +25 -0
- data/document/acl-NE80E.md +204 -0
- data/document/bgp-CR16010H-F.md +25 -0
- data/document/bgp-CR16018-F.md +25 -0
- data/document/bgp-CR19000-20.md +25 -0
- data/document/bgp-M6000-16E.md +25 -0
- data/document/bgp-M6000-18S.md +25 -0
- data/document/bgp-M6000-8.md +25 -0
- data/document/bgp-M6000-8E.md +25 -0
- data/document/bgp-MA5200G-8.md +25 -0
- data/document/bgp-ME60-16.md +25 -0
- data/document/bgp-ME60-X16.md +25 -0
- data/document/bgp-NE40E-X16.md +25 -0
- data/document/bgp-NE40E-X16A.md +25 -0
- data/document/bgp-NE40E-X8.md +25 -0
- data/document/bgp-NE40E.md +25 -0
- data/document/bgp-NE5000E-20.md +25 -0
- data/document/bgp-NE5000E-X16.md +25 -0
- data/document/bgp-NE5000E-X16A.md +25 -0
- data/document/bgp-NE80E.md +25 -0
- data/document/config.md +1153 -0
- data/document/document.rb +27 -0
- data/document/if-ALCATEL7750.md +48 -0
- data/document/if-C7609.md +47 -0
- data/document/if-CR16010H-F.md +300 -0
- data/document/if-CR16018-F.md +300 -0
- data/document/if-CR19000-20.md +300 -0
- data/document/if-CRS-16.md +47 -0
- data/document/if-CX600-X16A.md +349 -0
- data/document/if-CX600-X8A.md +349 -0
- data/document/if-M6000-16E.md +652 -0
- data/document/if-M6000-18S.md +846 -0
- data/document/if-M6000-8.md +653 -0
- data/document/if-M6000-8E.md +653 -0
- data/document/if-MA5200G-8.md +357 -0
- data/document/if-ME60-16.md +357 -0
- data/document/if-ME60-X16.md +357 -0
- data/document/if-NE40E-X16.md +357 -0
- data/document/if-NE40E-X16A.md +357 -0
- data/document/if-NE40E-X8.md +357 -0
- data/document/if-NE40E.md +357 -0
- data/document/if-NE5000E-20.md +357 -0
- data/document/if-NE5000E-X16.md +357 -0
- data/document/if-NE5000E-X16A.md +357 -0
- data/document/if-NE8000E-X8.md +357 -0
- data/document/if-NE80E.md +357 -0
- data/document/if-NE8100-X8.md +357 -0
- data/document/if-Nokia7750.md +48 -0
- data/document/if-T8000-18.md +653 -0
- data/document/if-V6000.md +663 -0
- data/document/if-VNE9000.md +357 -0
- data/document/if-ZXCTN9000-18EA.md +762 -0
- data/document/if-ZXCTN9000-8EA.md +762 -0
- data/document/lic-M6000-16E.md +28 -0
- data/document/lic-M6000-18S.md +28 -0
- data/document/lic-M6000-8.md +28 -0
- data/document/lic-M6000-8E.md +28 -0
- data/document/lic-MA5200G-8.md +27 -0
- data/document/lic-ME60-16.md +27 -0
- data/document/lic-ME60-X16.md +27 -0
- data/document/lic-NE40E-X16.md +27 -0
- data/document/lic-NE40E-X16A.md +27 -0
- data/document/lic-NE40E-X8.md +27 -0
- data/document/log-M6000-16E.md +36 -0
- data/document/log-M6000-18S.md +36 -0
- data/document/log-M6000-8.md +36 -0
- data/document/log-M6000-8E.md +36 -0
- data/document/log-MA5200G-8.md +61 -0
- data/document/log-ME60-16.md +61 -0
- data/document/log-ME60-X16.md +61 -0
- data/document/log-NE40E-X16.md +61 -0
- data/document/log-NE40E-X16A.md +61 -0
- data/document/log-NE40E-X8.md +61 -0
- data/document/log-NE40E.md +61 -0
- data/document/log-NE5000E-20.md +61 -0
- data/document/log-NE5000E-X16.md +61 -0
- data/document/log-NE5000E-X16A.md +61 -0
- data/document/log-NE80E.md +61 -0
- data/document/nat-CR16010H-F.md +27 -0
- data/document/nat-CR16018-F.md +27 -0
- data/document/nat-M6000-16E.md +27 -0
- data/document/nat-M6000-18S.md +27 -0
- data/document/nat-M6000-8.md +27 -0
- data/document/nat-M6000-8E.md +27 -0
- data/document/nat-ME60-16.md +44 -0
- data/document/nat-ME60-X16.md +44 -0
- data/document/nat-NE40E-X16.md +44 -0
- data/document/nat-NE40E-X16A.md +44 -0
- data/document/policy-M6000-16E.md +13 -0
- data/document/policy-M6000-18S.md +13 -0
- data/document/policy-M6000-8.md +13 -0
- data/document/policy-M6000-8E.md +13 -0
- data/document/policy-MA5200G-8.md +87 -0
- data/document/policy-ME60-16.md +87 -0
- data/document/policy-ME60-X16.md +87 -0
- data/document/policy-NE40E-X16.md +87 -0
- data/document/policy-NE40E-X16A.md +87 -0
- data/document/policy-NE40E-X8.md +87 -0
- data/document/policy-NE40E.md +87 -0
- data/document/policy-NE5000E-20.md +87 -0
- data/document/policy-NE5000E-X16.md +87 -0
- data/document/policy-NE5000E-X16A.md +87 -0
- data/document/policy-NE80E.md +87 -0
- data/document/pool-M6000-16E.md +126 -0
- data/document/pool-M6000-18S.md +126 -0
- data/document/pool-M6000-8.md +126 -0
- data/document/pool-M6000-8E.md +126 -0
- data/document/pool-MA5200G-8.md +138 -0
- data/document/pool-ME60-16.md +138 -0
- data/document/pool-ME60-X16.md +138 -0
- data/document/pool-NE40E-X16.md +138 -0
- data/document/pool-NE40E-X16A.md +138 -0
- data/document/pool-NE40E-X8.md +138 -0
- data/document/pool-NE40E.md +138 -0
- data/document/pool-NE80E.md +138 -0
- data/document/static-CR16010H-F.md +60 -0
- data/document/static-CR16018-F.md +60 -0
- data/document/static-CR19000-20.md +60 -0
- data/document/static-CX600-X16A.md +26 -0
- data/document/static-CX600-X8A.md +26 -0
- data/document/static-M6000-16E.md +104 -0
- data/document/static-M6000-18S.md +104 -0
- data/document/static-M6000-8.md +104 -0
- data/document/static-M6000-8E.md +104 -0
- data/document/static-MA5200G-8.md +82 -0
- data/document/static-ME60-16.md +82 -0
- data/document/static-ME60-X16.md +82 -0
- data/document/static-NE40E-X16.md +82 -0
- data/document/static-NE40E-X16A.md +81 -0
- data/document/static-NE40E-X8.md +82 -0
- data/document/static-NE40E.md +67 -0
- data/document/static-NE5000E-20.md +67 -0
- data/document/static-NE5000E-X16.md +67 -0
- data/document/static-NE5000E-X16A.md +67 -0
- data/document/static-NE8000E-X8.md +26 -0
- data/document/static-NE80E.md +67 -0
- data/document/static-NE8100-X8.md +26 -0
- data/document/static-T8000-18.md +34 -0
- data/document/static-ZXCTN9000-18EA.md +34 -0
- data/document/static-ZXCTN9000-8EA.md +34 -0
- data/document/system-M6000-16E.md +75 -0
- data/document/system-M6000-18S.md +76 -0
- data/document/system-M6000-8.md +75 -0
- data/document/system-M6000-8E.md +75 -0
- data/document/system-MA5200G-8.md +51 -0
- data/document/system-ME60-16.md +51 -0
- data/document/system-ME60-X16.md +51 -0
- data/document/system-NE40E-X16.md +51 -0
- data/document/system-NE40E-X16A.md +51 -0
- data/document/system-NE40E-X8.md +51 -0
- data/document/system-NE40E.md +51 -0
- data/document/system-NE5000E-20.md +51 -0
- data/document/system-NE5000E-X16.md +51 -0
- data/document/system-NE5000E-X16A.md +51 -0
- data/document/system-NE80E.md +51 -0
- data/document/telnet.md +332 -0
- data/network.rb +24 -0
- data/utility/ipv4_address.rb +266 -0
- data/utility/ipv6_address.rb +201 -0
- data/utility/mac_address.rb +77 -0
- data/utility/netmerge.rb +46 -0
- data/utility/route.rb +79 -0
- data/utility/whitelist.rb +21 -0
- metadata +258 -0
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
# M6000-16E 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-16E', '系统版本']
|
6
|
+
@sign << ['M6000-16E', '版本']
|
7
|
+
@sign << ['M6000-16E', '板卡']
|
8
|
+
|
9
|
+
module M6000_16E
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def 系统版本 文本
|
13
|
+
info = {}
|
14
|
+
info['version'] = 版本 文本
|
15
|
+
info['board'] = 板卡 文本
|
16
|
+
return info
|
17
|
+
end
|
18
|
+
|
19
|
+
def 版本 文本
|
20
|
+
ver = 文本.split("\n").find{|l|l.include?("Software, Version:")}
|
21
|
+
end
|
22
|
+
|
23
|
+
def 板卡 文本
|
24
|
+
head = ['Slot','BoardName','ModName', 'BootVersion','Card','CardType']
|
25
|
+
tab = [head]
|
26
|
+
raw = 文本.split("System uptime")[-1].split("\nHB-")[0]
|
27
|
+
parts,temp = [],[]
|
28
|
+
raw.split("\n").each do|line|
|
29
|
+
if line[0]=='['
|
30
|
+
parts << temp.join("\n")
|
31
|
+
temp = []
|
32
|
+
end
|
33
|
+
temp << line
|
34
|
+
end
|
35
|
+
parts.delete('')
|
36
|
+
|
37
|
+
parts.each do|part|
|
38
|
+
board_num, board_name, cards = '', '', {}
|
39
|
+
mod_name,boot_version,mod_names,boot_versions = nil,nil,[],[]
|
40
|
+
|
41
|
+
part.split("\n").each do|line|
|
42
|
+
if line.include?("[")
|
43
|
+
type = line.split("[")[1].split("]")[0].split(",")[0]
|
44
|
+
num = line.split("[")[1].split("]")[0].split(",")[1..-1].map{|i|i.split(" ")[1]}.join("/")
|
45
|
+
board_num = "#{type}-#{num}"
|
46
|
+
end
|
47
|
+
board_name = line.split(":")[-1].strip if line.include?("Board Name")
|
48
|
+
|
49
|
+
mod_name = line.split(":")[0].split(",")[0].strip if line[2..3]=='U-'
|
50
|
+
boot_version = line.split(":")[-1].strip if line.include?("Bootrom Version")
|
51
|
+
if mod_name && boot_version
|
52
|
+
mod_names << mod_name
|
53
|
+
boot_versions << boot_version
|
54
|
+
mod_name, boot_version = nil, nil
|
55
|
+
end
|
56
|
+
|
57
|
+
if line.include?("Interface Card") and line.include?(":")
|
58
|
+
rest = line.split("Interface Card")[-1]
|
59
|
+
idx, item = rest.split(":")
|
60
|
+
cards[idx.strip] = item.strip
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
if cards.empty?
|
65
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), '', '']
|
66
|
+
else
|
67
|
+
cards.each do|idx, card|
|
68
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), board_num+"/"+idx, card]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
return tab
|
73
|
+
end
|
74
|
+
end
|
75
|
+
```
|
@@ -0,0 +1,76 @@
|
|
1
|
+
|
2
|
+
# M6000-18S 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-18S', '系统版本']
|
6
|
+
@sign << ['M6000-18S', '版本']
|
7
|
+
@sign << ['M6000-18S', '板卡']
|
8
|
+
|
9
|
+
module M6000_18S
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def 系统版本 文本
|
13
|
+
info = {}
|
14
|
+
info['version'] = 版本 文本
|
15
|
+
info['board'] = 板卡 文本
|
16
|
+
return info
|
17
|
+
end
|
18
|
+
|
19
|
+
def 版本 文本
|
20
|
+
ver = 文本.split("\n").find{|l|l.include?("Software, Version:")}
|
21
|
+
end
|
22
|
+
|
23
|
+
def 板卡 文本
|
24
|
+
head = ['Slot','BoardName','ModName', 'BootVersion','Card','CardType']
|
25
|
+
tab = [head]
|
26
|
+
raw = 文本.split("System uptime")[-1].split("\nHB-")[0]
|
27
|
+
parts,temp = [],[]
|
28
|
+
raw.split("\n").each do|line|
|
29
|
+
if line[0]=='['
|
30
|
+
parts << temp.join("\n")
|
31
|
+
temp = []
|
32
|
+
end
|
33
|
+
temp << line
|
34
|
+
end
|
35
|
+
parts.each do|part|
|
36
|
+
board_num, board_name, mods, cards = '', '', [], []
|
37
|
+
idx,card,mod_name,boot_version,mod_names,boot_versions = nil,nil,nil,nil,[],[]
|
38
|
+
part.split("\n").each do|line|
|
39
|
+
if line.include?("[")
|
40
|
+
type = line.split("[")[1].split("]")[0].split(",")[0]
|
41
|
+
num = line.split("[")[1].split("]")[0].split(",")[1..-1].map{|i|i.split(" ")[1]}.join("/")
|
42
|
+
board_num = "#{type}-#{num}"
|
43
|
+
end
|
44
|
+
board_name = line.split(":")[-1].strip if line.include?("Board Name")
|
45
|
+
|
46
|
+
mod_name = line.split(":")[0].split(",")[0].strip if line[2..3]=='U-'
|
47
|
+
boot_version = line.split(":")[-1].strip if line.include?("Bootrom Version")
|
48
|
+
if mod_name && boot_version
|
49
|
+
mod_names << mod_name
|
50
|
+
boot_versions << boot_version
|
51
|
+
mod_name, boot_version = nil, nil
|
52
|
+
end
|
53
|
+
|
54
|
+
if line.include?("cardID")
|
55
|
+
type = line.split(">")[0].split("<")[1].split(",")[0]
|
56
|
+
num = line.split(">")[0].split("<")[1].split(",")[1..-1].map{|i|i.split(" ")[1]}.join("/")
|
57
|
+
idx = "#{type}-#{num}"
|
58
|
+
end
|
59
|
+
card = line.split(":")[1].strip if line.include?("Card Name")
|
60
|
+
if idx && card
|
61
|
+
cards << [idx,card]
|
62
|
+
idx, card = nil,nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
if cards.size >= 1
|
66
|
+
cards.each do|card|
|
67
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';')] + card
|
68
|
+
end
|
69
|
+
else
|
70
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), '','']
|
71
|
+
end
|
72
|
+
end
|
73
|
+
return tab
|
74
|
+
end
|
75
|
+
end
|
76
|
+
```
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
# M6000-8 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-8', '系统版本']
|
6
|
+
@sign << ['M6000-8', '版本']
|
7
|
+
@sign << ['M6000-8', '板卡']
|
8
|
+
|
9
|
+
module M6000_8
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def 系统版本 文本
|
13
|
+
info = {}
|
14
|
+
info['version'] = 版本 文本
|
15
|
+
info['board'] = 板卡 文本
|
16
|
+
return info
|
17
|
+
end
|
18
|
+
|
19
|
+
def 版本 文本
|
20
|
+
ver = 文本.split("\n").find{|l|l.include?("Software, Version:")}
|
21
|
+
end
|
22
|
+
|
23
|
+
def 板卡 文本
|
24
|
+
head = ['Slot','BoardName','ModName', 'BootVersion','Card','CardType']
|
25
|
+
tab = [head]
|
26
|
+
raw = 文本.split("System uptime")[-1].split("\nHB-")[0]
|
27
|
+
parts,temp = [],[]
|
28
|
+
raw.split("\n").each do|line|
|
29
|
+
if line[0]=='['
|
30
|
+
parts << temp.join("\n")
|
31
|
+
temp = []
|
32
|
+
end
|
33
|
+
temp << line
|
34
|
+
end
|
35
|
+
parts.delete('')
|
36
|
+
|
37
|
+
parts.each do|part|
|
38
|
+
board_num, board_name, cards = '', '', {}
|
39
|
+
mod_name,boot_version,mod_names,boot_versions = nil,nil,[],[]
|
40
|
+
|
41
|
+
part.split("\n").each do|line|
|
42
|
+
if line.include?("[")
|
43
|
+
type = line.split("[")[1].split("]")[0].split(",")[0]
|
44
|
+
num = line.split("[")[1].split("]")[0].split(",")[1..-1].map{|i|i.split(" ")[1]}.join("/")
|
45
|
+
board_num = "#{type}-#{num}"
|
46
|
+
end
|
47
|
+
board_name = line.split(":")[-1].strip if line.include?("Board Name")
|
48
|
+
|
49
|
+
mod_name = line.split(":")[0].split(",")[0].strip if line[2..3]=='U-'
|
50
|
+
boot_version = line.split(":")[-1].strip if line.include?("Bootrom Version")
|
51
|
+
if mod_name && boot_version
|
52
|
+
mod_names << mod_name
|
53
|
+
boot_versions << boot_version
|
54
|
+
mod_name, boot_version = nil, nil
|
55
|
+
end
|
56
|
+
|
57
|
+
if line.include?("Interface Card") and line.include?(":")
|
58
|
+
rest = line.split("Interface Card")[-1]
|
59
|
+
idx, item = rest.split(":")
|
60
|
+
cards[idx.strip] = item.strip
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
if cards.empty?
|
65
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), '', '']
|
66
|
+
else
|
67
|
+
cards.each do|idx, card|
|
68
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), board_num+"/"+idx, card]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
return tab
|
73
|
+
end
|
74
|
+
end
|
75
|
+
```
|
@@ -0,0 +1,75 @@
|
|
1
|
+
|
2
|
+
# M6000-8E 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['M6000-8E', '系统版本']
|
6
|
+
@sign << ['M6000-8E', '版本']
|
7
|
+
@sign << ['M6000-8E', '板卡']
|
8
|
+
|
9
|
+
module M6000_8E
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def 系统版本 文本
|
13
|
+
info = {}
|
14
|
+
info['version'] = 版本 文本
|
15
|
+
info['board'] = 板卡 文本
|
16
|
+
return info
|
17
|
+
end
|
18
|
+
|
19
|
+
def 版本 文本
|
20
|
+
ver = 文本.split("\n").find{|l|l.include?("Software, Version:")}
|
21
|
+
end
|
22
|
+
|
23
|
+
def 板卡 文本
|
24
|
+
head = ['Slot','BoardName','ModName', 'BootVersion','Card','CardType']
|
25
|
+
tab = [head]
|
26
|
+
raw = 文本.split("System uptime")[-1].split("\nHB-")[0]
|
27
|
+
parts,temp = [],[]
|
28
|
+
raw.split("\n").each do|line|
|
29
|
+
if line[0]=='['
|
30
|
+
parts << temp.join("\n")
|
31
|
+
temp = []
|
32
|
+
end
|
33
|
+
temp << line
|
34
|
+
end
|
35
|
+
parts.delete('')
|
36
|
+
|
37
|
+
parts.each do|part|
|
38
|
+
board_num, board_name, cards = '', '', {}
|
39
|
+
mod_name,boot_version,mod_names,boot_versions = nil,nil,[],[]
|
40
|
+
|
41
|
+
part.split("\n").each do|line|
|
42
|
+
if line.include?("[")
|
43
|
+
type = line.split("[")[1].split("]")[0].split(",")[0]
|
44
|
+
num = line.split("[")[1].split("]")[0].split(",")[1..-1].map{|i|i.split(" ")[1]}.join("/")
|
45
|
+
board_num = "#{type}-#{num}"
|
46
|
+
end
|
47
|
+
board_name = line.split(":")[-1].strip if line.include?("Board Name")
|
48
|
+
|
49
|
+
mod_name = line.split(":")[0].split(",")[0].strip if line[2..3]=='U-'
|
50
|
+
boot_version = line.split(":")[-1].strip if line.include?("Bootrom Version")
|
51
|
+
if mod_name && boot_version
|
52
|
+
mod_names << mod_name
|
53
|
+
boot_versions << boot_version
|
54
|
+
mod_name, boot_version = nil, nil
|
55
|
+
end
|
56
|
+
|
57
|
+
if line.include?("Interface Card") and line.include?(":")
|
58
|
+
rest = line.split("Interface Card")[-1]
|
59
|
+
idx, item = rest.split(":")
|
60
|
+
cards[idx.strip] = item.strip
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
if cards.empty?
|
65
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), '', '']
|
66
|
+
else
|
67
|
+
cards.each do|idx, card|
|
68
|
+
tab << [board_num, board_name, mod_names.join(';'), boot_versions.join(';'), board_num+"/"+idx, card]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
return tab
|
73
|
+
end
|
74
|
+
end
|
75
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# MA5200G-8 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['MA5200G-8', '系统版本']
|
6
|
+
@sign << ['MA5200G-8', '版本']
|
7
|
+
@sign << ['MA5200G-8', '补丁']
|
8
|
+
@sign << ['MA5200G-8', '板卡']
|
9
|
+
|
10
|
+
module MA5200G_8
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("NE40E-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# ME60-16 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ME60-16', '系统版本']
|
6
|
+
@sign << ['ME60-16', '版本']
|
7
|
+
@sign << ['ME60-16', '补丁']
|
8
|
+
@sign << ['ME60-16', '板卡']
|
9
|
+
|
10
|
+
module ME60_16
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("MultiserviceEngine 60-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# ME60-X16 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['ME60-X16', '系统版本']
|
6
|
+
@sign << ['ME60-X16', '版本']
|
7
|
+
@sign << ['ME60-X16', '补丁']
|
8
|
+
@sign << ['ME60-X16', '板卡']
|
9
|
+
|
10
|
+
module ME60_X16
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("MultiserviceEngine 60-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# NE40E-X16 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X16', '系统版本']
|
6
|
+
@sign << ['NE40E-X16', '版本']
|
7
|
+
@sign << ['NE40E-X16', '补丁']
|
8
|
+
@sign << ['NE40E-X16', '板卡']
|
9
|
+
|
10
|
+
module NE40E_X16
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("NE40E-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# NE40E-X16A 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X16A', '系统版本']
|
6
|
+
@sign << ['NE40E-X16A', '版本']
|
7
|
+
@sign << ['NE40E-X16A', '补丁']
|
8
|
+
@sign << ['NE40E-X16A', '板卡']
|
9
|
+
|
10
|
+
module NE40E_X16A
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("NE40E-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# NE40E-X8 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E-X8', '系统版本']
|
6
|
+
@sign << ['NE40E-X8', '版本']
|
7
|
+
@sign << ['NE40E-X8', '补丁']
|
8
|
+
@sign << ['NE40E-X8', '板卡']
|
9
|
+
|
10
|
+
module NE40E_X8
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("NE40E-X16's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
# NE40E 系统信息
|
3
|
+
|
4
|
+
```ruby
|
5
|
+
@sign << ['NE40E', '系统版本']
|
6
|
+
@sign << ['NE40E', '版本']
|
7
|
+
@sign << ['NE40E', '补丁']
|
8
|
+
@sign << ['NE40E', '板卡']
|
9
|
+
|
10
|
+
module NE40E
|
11
|
+
module_function
|
12
|
+
|
13
|
+
def 系统版本 文本
|
14
|
+
info = {}
|
15
|
+
info['version'] = 版本 文本
|
16
|
+
info['patch'] = 补丁 文本
|
17
|
+
info['board'] = 板卡 文本
|
18
|
+
return info
|
19
|
+
end
|
20
|
+
|
21
|
+
def 版本 文本
|
22
|
+
vrp = 文本.split("\n").find{|l|l.include?("VRP")}
|
23
|
+
end
|
24
|
+
|
25
|
+
def 补丁 文本
|
26
|
+
patch = 文本.split("\n").find{|l|l.include?("Patch version")}.to_s.split(":")[-1]
|
27
|
+
end
|
28
|
+
|
29
|
+
def 板卡 文本
|
30
|
+
head = ['Slot','Type','Online','Register','Status','Primary'] + ['Pic','Status','Type','Port_count','Init_result','Logic_down']
|
31
|
+
raw1 = 文本.split("NE40E's Device status:")[-1].split("\n<")[0].split("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n")[1]
|
32
|
+
tab1 = raw1.split("\n").map{|l|l.split(" ")}
|
33
|
+
raw2 = 文本.split("Pic-status information in Chassis 1:")[-1].split("\n<")[0].split("\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")[1].strip
|
34
|
+
tab2 = raw2.split("\n").map{|l|l.split(" ")}[1..-1]
|
35
|
+
tab = [head]
|
36
|
+
tab1.each do|rec|
|
37
|
+
ext = tab2.select{|r|r[0]==rec[0]}
|
38
|
+
if ext.size==0
|
39
|
+
tmp = rec + ['','','','','','']
|
40
|
+
tab << tmp
|
41
|
+
else
|
42
|
+
ext.each do|r|
|
43
|
+
tmp = rec + r[1..-1]
|
44
|
+
tab << tmp
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
return tab
|
49
|
+
end
|
50
|
+
end
|
51
|
+
```
|