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.
Files changed (179) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +2 -0
  3. data/document/acl-M6000-16E.md +27 -0
  4. data/document/acl-M6000-18S.md +27 -0
  5. data/document/acl-M6000-8.md +27 -0
  6. data/document/acl-M6000-8E.md +27 -0
  7. data/document/acl-MA5200G-8.md +204 -0
  8. data/document/acl-ME60-16.md +177 -0
  9. data/document/acl-ME60-X16.md +177 -0
  10. data/document/acl-NE40E-X16.md +204 -0
  11. data/document/acl-NE40E-X16A.md +204 -0
  12. data/document/acl-NE40E-X8.md +204 -0
  13. data/document/acl-NE40E.md +204 -0
  14. data/document/acl-NE5000E-20.md +25 -0
  15. data/document/acl-NE5000E-X16.md +25 -0
  16. data/document/acl-NE5000E-X16A.md +25 -0
  17. data/document/acl-NE80E.md +204 -0
  18. data/document/bgp-CR16010H-F.md +25 -0
  19. data/document/bgp-CR16018-F.md +25 -0
  20. data/document/bgp-CR19000-20.md +25 -0
  21. data/document/bgp-M6000-16E.md +25 -0
  22. data/document/bgp-M6000-18S.md +25 -0
  23. data/document/bgp-M6000-8.md +25 -0
  24. data/document/bgp-M6000-8E.md +25 -0
  25. data/document/bgp-MA5200G-8.md +25 -0
  26. data/document/bgp-ME60-16.md +25 -0
  27. data/document/bgp-ME60-X16.md +25 -0
  28. data/document/bgp-NE40E-X16.md +25 -0
  29. data/document/bgp-NE40E-X16A.md +25 -0
  30. data/document/bgp-NE40E-X8.md +25 -0
  31. data/document/bgp-NE40E.md +25 -0
  32. data/document/bgp-NE5000E-20.md +25 -0
  33. data/document/bgp-NE5000E-X16.md +25 -0
  34. data/document/bgp-NE5000E-X16A.md +25 -0
  35. data/document/bgp-NE80E.md +25 -0
  36. data/document/config.md +1153 -0
  37. data/document/document.rb +27 -0
  38. data/document/if-ALCATEL7750.md +48 -0
  39. data/document/if-C7609.md +47 -0
  40. data/document/if-CR16010H-F.md +300 -0
  41. data/document/if-CR16018-F.md +300 -0
  42. data/document/if-CR19000-20.md +300 -0
  43. data/document/if-CRS-16.md +47 -0
  44. data/document/if-CX600-X16A.md +349 -0
  45. data/document/if-CX600-X8A.md +349 -0
  46. data/document/if-M6000-16E.md +652 -0
  47. data/document/if-M6000-18S.md +846 -0
  48. data/document/if-M6000-8.md +653 -0
  49. data/document/if-M6000-8E.md +653 -0
  50. data/document/if-MA5200G-8.md +357 -0
  51. data/document/if-ME60-16.md +357 -0
  52. data/document/if-ME60-X16.md +357 -0
  53. data/document/if-NE40E-X16.md +357 -0
  54. data/document/if-NE40E-X16A.md +357 -0
  55. data/document/if-NE40E-X8.md +357 -0
  56. data/document/if-NE40E.md +357 -0
  57. data/document/if-NE5000E-20.md +357 -0
  58. data/document/if-NE5000E-X16.md +357 -0
  59. data/document/if-NE5000E-X16A.md +357 -0
  60. data/document/if-NE8000E-X8.md +357 -0
  61. data/document/if-NE80E.md +357 -0
  62. data/document/if-NE8100-X8.md +357 -0
  63. data/document/if-Nokia7750.md +48 -0
  64. data/document/if-T8000-18.md +653 -0
  65. data/document/if-V6000.md +663 -0
  66. data/document/if-VNE9000.md +357 -0
  67. data/document/if-ZXCTN9000-18EA.md +762 -0
  68. data/document/if-ZXCTN9000-8EA.md +762 -0
  69. data/document/lic-M6000-16E.md +28 -0
  70. data/document/lic-M6000-18S.md +28 -0
  71. data/document/lic-M6000-8.md +28 -0
  72. data/document/lic-M6000-8E.md +28 -0
  73. data/document/lic-MA5200G-8.md +27 -0
  74. data/document/lic-ME60-16.md +27 -0
  75. data/document/lic-ME60-X16.md +27 -0
  76. data/document/lic-NE40E-X16.md +27 -0
  77. data/document/lic-NE40E-X16A.md +27 -0
  78. data/document/lic-NE40E-X8.md +27 -0
  79. data/document/log-M6000-16E.md +36 -0
  80. data/document/log-M6000-18S.md +36 -0
  81. data/document/log-M6000-8.md +36 -0
  82. data/document/log-M6000-8E.md +36 -0
  83. data/document/log-MA5200G-8.md +61 -0
  84. data/document/log-ME60-16.md +61 -0
  85. data/document/log-ME60-X16.md +61 -0
  86. data/document/log-NE40E-X16.md +61 -0
  87. data/document/log-NE40E-X16A.md +61 -0
  88. data/document/log-NE40E-X8.md +61 -0
  89. data/document/log-NE40E.md +61 -0
  90. data/document/log-NE5000E-20.md +61 -0
  91. data/document/log-NE5000E-X16.md +61 -0
  92. data/document/log-NE5000E-X16A.md +61 -0
  93. data/document/log-NE80E.md +61 -0
  94. data/document/nat-CR16010H-F.md +27 -0
  95. data/document/nat-CR16018-F.md +27 -0
  96. data/document/nat-M6000-16E.md +27 -0
  97. data/document/nat-M6000-18S.md +27 -0
  98. data/document/nat-M6000-8.md +27 -0
  99. data/document/nat-M6000-8E.md +27 -0
  100. data/document/nat-ME60-16.md +44 -0
  101. data/document/nat-ME60-X16.md +44 -0
  102. data/document/nat-NE40E-X16.md +44 -0
  103. data/document/nat-NE40E-X16A.md +44 -0
  104. data/document/policy-M6000-16E.md +13 -0
  105. data/document/policy-M6000-18S.md +13 -0
  106. data/document/policy-M6000-8.md +13 -0
  107. data/document/policy-M6000-8E.md +13 -0
  108. data/document/policy-MA5200G-8.md +87 -0
  109. data/document/policy-ME60-16.md +87 -0
  110. data/document/policy-ME60-X16.md +87 -0
  111. data/document/policy-NE40E-X16.md +87 -0
  112. data/document/policy-NE40E-X16A.md +87 -0
  113. data/document/policy-NE40E-X8.md +87 -0
  114. data/document/policy-NE40E.md +87 -0
  115. data/document/policy-NE5000E-20.md +87 -0
  116. data/document/policy-NE5000E-X16.md +87 -0
  117. data/document/policy-NE5000E-X16A.md +87 -0
  118. data/document/policy-NE80E.md +87 -0
  119. data/document/pool-M6000-16E.md +126 -0
  120. data/document/pool-M6000-18S.md +126 -0
  121. data/document/pool-M6000-8.md +126 -0
  122. data/document/pool-M6000-8E.md +126 -0
  123. data/document/pool-MA5200G-8.md +138 -0
  124. data/document/pool-ME60-16.md +138 -0
  125. data/document/pool-ME60-X16.md +138 -0
  126. data/document/pool-NE40E-X16.md +138 -0
  127. data/document/pool-NE40E-X16A.md +138 -0
  128. data/document/pool-NE40E-X8.md +138 -0
  129. data/document/pool-NE40E.md +138 -0
  130. data/document/pool-NE80E.md +138 -0
  131. data/document/static-CR16010H-F.md +60 -0
  132. data/document/static-CR16018-F.md +60 -0
  133. data/document/static-CR19000-20.md +60 -0
  134. data/document/static-CX600-X16A.md +26 -0
  135. data/document/static-CX600-X8A.md +26 -0
  136. data/document/static-M6000-16E.md +104 -0
  137. data/document/static-M6000-18S.md +104 -0
  138. data/document/static-M6000-8.md +104 -0
  139. data/document/static-M6000-8E.md +104 -0
  140. data/document/static-MA5200G-8.md +82 -0
  141. data/document/static-ME60-16.md +82 -0
  142. data/document/static-ME60-X16.md +82 -0
  143. data/document/static-NE40E-X16.md +82 -0
  144. data/document/static-NE40E-X16A.md +81 -0
  145. data/document/static-NE40E-X8.md +82 -0
  146. data/document/static-NE40E.md +67 -0
  147. data/document/static-NE5000E-20.md +67 -0
  148. data/document/static-NE5000E-X16.md +67 -0
  149. data/document/static-NE5000E-X16A.md +67 -0
  150. data/document/static-NE8000E-X8.md +26 -0
  151. data/document/static-NE80E.md +67 -0
  152. data/document/static-NE8100-X8.md +26 -0
  153. data/document/static-T8000-18.md +34 -0
  154. data/document/static-ZXCTN9000-18EA.md +34 -0
  155. data/document/static-ZXCTN9000-8EA.md +34 -0
  156. data/document/system-M6000-16E.md +75 -0
  157. data/document/system-M6000-18S.md +76 -0
  158. data/document/system-M6000-8.md +75 -0
  159. data/document/system-M6000-8E.md +75 -0
  160. data/document/system-MA5200G-8.md +51 -0
  161. data/document/system-ME60-16.md +51 -0
  162. data/document/system-ME60-X16.md +51 -0
  163. data/document/system-NE40E-X16.md +51 -0
  164. data/document/system-NE40E-X16A.md +51 -0
  165. data/document/system-NE40E-X8.md +51 -0
  166. data/document/system-NE40E.md +51 -0
  167. data/document/system-NE5000E-20.md +51 -0
  168. data/document/system-NE5000E-X16.md +51 -0
  169. data/document/system-NE5000E-X16A.md +51 -0
  170. data/document/system-NE80E.md +51 -0
  171. data/document/telnet.md +332 -0
  172. data/network.rb +24 -0
  173. data/utility/ipv4_address.rb +266 -0
  174. data/utility/ipv6_address.rb +201 -0
  175. data/utility/mac_address.rb +77 -0
  176. data/utility/netmerge.rb +46 -0
  177. data/utility/route.rb +79 -0
  178. data/utility/whitelist.rb +21 -0
  179. 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
+ ```