raidcom-mcp 0.0.0-stage → 0.1.3
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.
- package/CHANGELOG.md +64 -0
- package/INSTALL.md +169 -0
- package/LICENSE +21 -0
- package/README.docker.md +50 -0
- package/README.md +119 -2
- package/README.plugin.md +56 -0
- package/dist/builder.js +409 -0
- package/dist/catalog.js +79 -0
- package/dist/cmdline.js +145 -0
- package/dist/config.js +128 -0
- package/dist/http.js +215 -0
- package/dist/index.js +307 -0
- package/dist/recipes.js +307 -0
- package/dist/search.js +157 -0
- package/dist/tools.js +179 -0
- package/package.json +54 -4
- package/spec/examples.json +390 -0
- package/spec/limits.json +236 -0
- package/spec/notes/conventions.md +56 -0
- package/spec/notes/horcm-setup.md +27 -0
- package/spec/raidcom-catalog.json +1 -0
- package/spec/recipes.json +1106 -0
package/package.json
CHANGED
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "raidcom-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
6
|
-
|
|
3
|
+
"version": "0.1.3",
|
|
4
|
+
"mcpName": "io.github.visubramaniam/raidcom-mcp",
|
|
5
|
+
"description": "MCP server that builds and checks Hitachi raidcom commands from structured requests. Build-only: it never connects to a storage system. Not an official Hitachi Vantara product.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"raidcom-mcp": "dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"spec",
|
|
14
|
+
"INSTALL.md",
|
|
15
|
+
"CHANGELOG.md"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc",
|
|
19
|
+
"start": "node dist/index.js",
|
|
20
|
+
"inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
|
|
21
|
+
"eval": "npm run build && node tests/search-eval.mjs",
|
|
22
|
+
"generate-catalog": "node scripts/generate-catalog.mjs",
|
|
23
|
+
"test": "npm run build && node --test \"tests/unit/*.test.mjs\" && node tests/search-eval.mjs",
|
|
24
|
+
"prepublishOnly": "npm test",
|
|
25
|
+
"package": "npm run build && node scripts/package.mjs",
|
|
26
|
+
"smoke": "node tests/smoke/package-smoke.mjs release/raidcom-mcp-$npm_package_version.tgz $npm_package_version"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=22.19.0"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@modelcontextprotocol/sdk": "1.32.2"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "22.20.5",
|
|
36
|
+
"typescript": "7.0.2"
|
|
37
|
+
},
|
|
38
|
+
"author": "Vinod Subramaniam",
|
|
39
|
+
"homepage": "https://github.com/visubramaniam/raidcom-mcp#readme",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "git+https://github.com/visubramaniam/raidcom-mcp.git"
|
|
43
|
+
},
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/visubramaniam/raidcom-mcp/issues"
|
|
46
|
+
},
|
|
47
|
+
"keywords": [
|
|
48
|
+
"mcp",
|
|
49
|
+
"mcp-server",
|
|
50
|
+
"model-context-protocol",
|
|
51
|
+
"hitachi",
|
|
52
|
+
"raidcom",
|
|
53
|
+
"cci",
|
|
54
|
+
"storage"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Questions an operator might ask, per command. They bridge everyday wording and the manual's wording in search. Keys are command names; keys starting with _ are ignored.",
|
|
3
|
+
"add ldev": [
|
|
4
|
+
"create a volume",
|
|
5
|
+
"create a new ldev in a pool",
|
|
6
|
+
"create a dp volume",
|
|
7
|
+
"make a 100GB volume",
|
|
8
|
+
"provision a lun of 500 GB",
|
|
9
|
+
"carve a volume out of a parity group",
|
|
10
|
+
"create 10 volumes"
|
|
11
|
+
],
|
|
12
|
+
"delete ldev": [
|
|
13
|
+
"delete a volume",
|
|
14
|
+
"remove an ldev",
|
|
15
|
+
"destroy a volume",
|
|
16
|
+
"free up an ldev id"
|
|
17
|
+
],
|
|
18
|
+
"extend ldev": [
|
|
19
|
+
"grow a volume",
|
|
20
|
+
"make a volume bigger",
|
|
21
|
+
"expand a dp volume",
|
|
22
|
+
"increase the size of an ldev",
|
|
23
|
+
"resize a lun"
|
|
24
|
+
],
|
|
25
|
+
"get ldev": [
|
|
26
|
+
"show a volume",
|
|
27
|
+
"show ldev details",
|
|
28
|
+
"list volumes",
|
|
29
|
+
"which volumes are in pool 0",
|
|
30
|
+
"show free ldev ids",
|
|
31
|
+
"list unmapped volumes",
|
|
32
|
+
"find undefined ldev numbers",
|
|
33
|
+
"how big is ldev 100",
|
|
34
|
+
"show ldev capacity"
|
|
35
|
+
],
|
|
36
|
+
"initialize ldev": [
|
|
37
|
+
"format a volume",
|
|
38
|
+
"quick format an ldev",
|
|
39
|
+
"wipe a volume",
|
|
40
|
+
"stop formatting"
|
|
41
|
+
],
|
|
42
|
+
"modify ldev": [
|
|
43
|
+
"rename a volume",
|
|
44
|
+
"set an ldev nickname",
|
|
45
|
+
"block an ldev",
|
|
46
|
+
"restore a blocked volume",
|
|
47
|
+
"make a volume a command device",
|
|
48
|
+
"reclaim zero pages",
|
|
49
|
+
"turn on capacity saving for a volume",
|
|
50
|
+
"change the mp blade of a volume",
|
|
51
|
+
"set the tiering policy of a volume",
|
|
52
|
+
"set qos on a volume",
|
|
53
|
+
"turn a volume into a command device",
|
|
54
|
+
"set the command device attribute on an ldev"
|
|
55
|
+
],
|
|
56
|
+
"add lun": [
|
|
57
|
+
"map a volume to a host group",
|
|
58
|
+
"present a volume to a host",
|
|
59
|
+
"create an lu path",
|
|
60
|
+
"assign a lun to a host",
|
|
61
|
+
"give the server access to a volume",
|
|
62
|
+
"add a path to a volume",
|
|
63
|
+
"map ldev to a port"
|
|
64
|
+
],
|
|
65
|
+
"delete lun": [
|
|
66
|
+
"unmap a volume from a host group",
|
|
67
|
+
"remove an lu path",
|
|
68
|
+
"take a volume away from a host",
|
|
69
|
+
"delete a lun path"
|
|
70
|
+
],
|
|
71
|
+
"get lun": [
|
|
72
|
+
"show luns on a port",
|
|
73
|
+
"list volumes mapped to a host group",
|
|
74
|
+
"which volumes does the host see",
|
|
75
|
+
"show lu paths"
|
|
76
|
+
],
|
|
77
|
+
"add host_grp": [
|
|
78
|
+
"create a host group",
|
|
79
|
+
"add a host group to a port",
|
|
80
|
+
"make a host group for a new server",
|
|
81
|
+
"create an iscsi target",
|
|
82
|
+
"rename a host group"
|
|
83
|
+
],
|
|
84
|
+
"delete host_grp": [
|
|
85
|
+
"delete a host group",
|
|
86
|
+
"remove a host group from a port",
|
|
87
|
+
"remove an iscsi target"
|
|
88
|
+
],
|
|
89
|
+
"get host_grp": [
|
|
90
|
+
"list host groups",
|
|
91
|
+
"show host groups on a port",
|
|
92
|
+
"show all host groups",
|
|
93
|
+
"find the host group id",
|
|
94
|
+
"which host groups exist"
|
|
95
|
+
],
|
|
96
|
+
"modify host_grp": [
|
|
97
|
+
"set the host mode",
|
|
98
|
+
"change host mode options",
|
|
99
|
+
"set host mode for vmware",
|
|
100
|
+
"set host mode for linux",
|
|
101
|
+
"enable chap on a target"
|
|
102
|
+
],
|
|
103
|
+
"add hba_wwn": [
|
|
104
|
+
"register a wwn",
|
|
105
|
+
"add a host wwpn to a host group",
|
|
106
|
+
"add an hba to a host group",
|
|
107
|
+
"register the server's wwpn"
|
|
108
|
+
],
|
|
109
|
+
"delete hba_wwn": [
|
|
110
|
+
"remove a wwn from a host group",
|
|
111
|
+
"delete a host wwpn"
|
|
112
|
+
],
|
|
113
|
+
"get hba_wwn": [
|
|
114
|
+
"show wwns in a host group",
|
|
115
|
+
"list the hbas registered to a host group",
|
|
116
|
+
"which wwpns are registered"
|
|
117
|
+
],
|
|
118
|
+
"set hba_wwn": [
|
|
119
|
+
"give a wwn a nickname",
|
|
120
|
+
"name a wwpn"
|
|
121
|
+
],
|
|
122
|
+
"add hba_iscsi": [
|
|
123
|
+
"register an iscsi initiator",
|
|
124
|
+
"add an iqn to a target",
|
|
125
|
+
"add an initiator name"
|
|
126
|
+
],
|
|
127
|
+
"get hba_iscsi": [
|
|
128
|
+
"show iscsi initiators",
|
|
129
|
+
"list iqns in a target"
|
|
130
|
+
],
|
|
131
|
+
"get port": [
|
|
132
|
+
"list ports",
|
|
133
|
+
"show port settings",
|
|
134
|
+
"show the fibre channel ports",
|
|
135
|
+
"which ports are online",
|
|
136
|
+
"show port wwn",
|
|
137
|
+
"show port attributes"
|
|
138
|
+
],
|
|
139
|
+
"modify port": [
|
|
140
|
+
"change port speed",
|
|
141
|
+
"set port topology",
|
|
142
|
+
"set the port attribute",
|
|
143
|
+
"configure iscsi port ip address",
|
|
144
|
+
"set an mtu on a port",
|
|
145
|
+
"set the vlan on a port",
|
|
146
|
+
"switch a port to nvme",
|
|
147
|
+
"set port security",
|
|
148
|
+
"enable lun security on a port"
|
|
149
|
+
],
|
|
150
|
+
"get pool": [
|
|
151
|
+
"show pools",
|
|
152
|
+
"list pool capacity",
|
|
153
|
+
"how full is pool 0",
|
|
154
|
+
"show pool usage",
|
|
155
|
+
"find a free pool id",
|
|
156
|
+
"show pool subscription",
|
|
157
|
+
"pool thresholds"
|
|
158
|
+
],
|
|
159
|
+
"add dp_pool": [
|
|
160
|
+
"create a pool",
|
|
161
|
+
"create a dynamic provisioning pool",
|
|
162
|
+
"add a volume to a pool",
|
|
163
|
+
"grow a pool",
|
|
164
|
+
"expand a pool",
|
|
165
|
+
"add pool volumes",
|
|
166
|
+
"make a new pool",
|
|
167
|
+
"add capacity to a pool"
|
|
168
|
+
],
|
|
169
|
+
"get dp_pool": [
|
|
170
|
+
"show dp pool details",
|
|
171
|
+
"show tiering information of a pool"
|
|
172
|
+
],
|
|
173
|
+
"modify pool": [
|
|
174
|
+
"change pool thresholds",
|
|
175
|
+
"set the pool warning threshold",
|
|
176
|
+
"change pool subscription limit",
|
|
177
|
+
"turn a pool into a tiered pool",
|
|
178
|
+
"set the pool tier policy",
|
|
179
|
+
"start pool monitoring"
|
|
180
|
+
],
|
|
181
|
+
"delete pool": [
|
|
182
|
+
"delete a pool",
|
|
183
|
+
"remove a pool"
|
|
184
|
+
],
|
|
185
|
+
"rename pool": [
|
|
186
|
+
"rename a pool",
|
|
187
|
+
"change the name of a pool"
|
|
188
|
+
],
|
|
189
|
+
"get parity_grp": [
|
|
190
|
+
"list parity groups",
|
|
191
|
+
"show raid groups",
|
|
192
|
+
"show parity group capacity",
|
|
193
|
+
"which drives are in parity group 1-1"
|
|
194
|
+
],
|
|
195
|
+
"add parity_grp": [
|
|
196
|
+
"create a parity group",
|
|
197
|
+
"create a raid group",
|
|
198
|
+
"build a raid 6 group from drives"
|
|
199
|
+
],
|
|
200
|
+
"get command_status": [
|
|
201
|
+
"did the command finish",
|
|
202
|
+
"check an asynchronous command",
|
|
203
|
+
"show command status",
|
|
204
|
+
"what is the status of my request id",
|
|
205
|
+
"check progress of the last command"
|
|
206
|
+
],
|
|
207
|
+
"get error_message": [
|
|
208
|
+
"what does this error mean",
|
|
209
|
+
"look up an error code",
|
|
210
|
+
"explain ssb codes",
|
|
211
|
+
"decode an error"
|
|
212
|
+
],
|
|
213
|
+
"lock resource": [
|
|
214
|
+
"lock the resource group",
|
|
215
|
+
"lock the array before changing",
|
|
216
|
+
"prevent others from changing the configuration"
|
|
217
|
+
],
|
|
218
|
+
"unlock resource": [
|
|
219
|
+
"unlock the resource group",
|
|
220
|
+
"release the lock",
|
|
221
|
+
"unlock the array"
|
|
222
|
+
],
|
|
223
|
+
"add device_grp": [
|
|
224
|
+
"create a device group",
|
|
225
|
+
"add ldevs to a device group",
|
|
226
|
+
"group volumes for replication"
|
|
227
|
+
],
|
|
228
|
+
"get device_grp": [
|
|
229
|
+
"list device groups",
|
|
230
|
+
"show device group members"
|
|
231
|
+
],
|
|
232
|
+
"delete device_grp": [
|
|
233
|
+
"delete a device group",
|
|
234
|
+
"remove an ldev from a device group"
|
|
235
|
+
],
|
|
236
|
+
"add copy_grp": [
|
|
237
|
+
"create a copy group",
|
|
238
|
+
"make a copy group for replication",
|
|
239
|
+
"set up a copy group for gad",
|
|
240
|
+
"pair up two device groups"
|
|
241
|
+
],
|
|
242
|
+
"get copy_grp": [
|
|
243
|
+
"list copy groups",
|
|
244
|
+
"show copy groups"
|
|
245
|
+
],
|
|
246
|
+
"delete copy_grp": [
|
|
247
|
+
"delete a copy group"
|
|
248
|
+
],
|
|
249
|
+
"add journal": [
|
|
250
|
+
"create a journal",
|
|
251
|
+
"create a journal group for universal replicator",
|
|
252
|
+
"add a journal volume"
|
|
253
|
+
],
|
|
254
|
+
"get journal": [
|
|
255
|
+
"show journals",
|
|
256
|
+
"list journal groups"
|
|
257
|
+
],
|
|
258
|
+
"add quorum": [
|
|
259
|
+
"set up a quorum disk",
|
|
260
|
+
"create a quorum for global-active device",
|
|
261
|
+
"register a quorum"
|
|
262
|
+
],
|
|
263
|
+
"get quorum": [
|
|
264
|
+
"show quorum disks",
|
|
265
|
+
"list quorum settings"
|
|
266
|
+
],
|
|
267
|
+
"add resource": [
|
|
268
|
+
"create a resource group",
|
|
269
|
+
"make a resource group"
|
|
270
|
+
],
|
|
271
|
+
"get resource": [
|
|
272
|
+
"list resource groups",
|
|
273
|
+
"show resource groups"
|
|
274
|
+
],
|
|
275
|
+
"map resource": [
|
|
276
|
+
"add a volume to a resource group",
|
|
277
|
+
"move an ldev into a resource group",
|
|
278
|
+
"assign resources to a virtual storage machine"
|
|
279
|
+
],
|
|
280
|
+
"add snapshot": [
|
|
281
|
+
"create a thin image snapshot",
|
|
282
|
+
"take a snapshot of a volume"
|
|
283
|
+
],
|
|
284
|
+
"get snapshot": [
|
|
285
|
+
"list snapshots",
|
|
286
|
+
"show thin image pairs"
|
|
287
|
+
],
|
|
288
|
+
"add snap_pool": [
|
|
289
|
+
"create a thin image pool",
|
|
290
|
+
"create a snapshot pool"
|
|
291
|
+
],
|
|
292
|
+
"add external_grp": [
|
|
293
|
+
"map an external volume",
|
|
294
|
+
"virtualize external storage",
|
|
295
|
+
"create an external volume group"
|
|
296
|
+
],
|
|
297
|
+
"discover external_storage": [
|
|
298
|
+
"find external storage",
|
|
299
|
+
"discover external storage ports",
|
|
300
|
+
"scan for external storage"
|
|
301
|
+
],
|
|
302
|
+
"add path": [
|
|
303
|
+
"add a path to external storage",
|
|
304
|
+
"add an external path"
|
|
305
|
+
],
|
|
306
|
+
"get path": [
|
|
307
|
+
"show external paths",
|
|
308
|
+
"list external storage paths"
|
|
309
|
+
],
|
|
310
|
+
"add nvm_subsystem": [
|
|
311
|
+
"create an nvm subsystem",
|
|
312
|
+
"create an nvme subsystem",
|
|
313
|
+
"create an nvme over tcp subsystem"
|
|
314
|
+
],
|
|
315
|
+
"get nvm_subsystem": [
|
|
316
|
+
"show nvm subsystems",
|
|
317
|
+
"list nvme subsystems"
|
|
318
|
+
],
|
|
319
|
+
"add nvm_subsystem_port": [
|
|
320
|
+
"add a port to an nvm subsystem",
|
|
321
|
+
"attach an nvme tcp port to a subsystem"
|
|
322
|
+
],
|
|
323
|
+
"add host_nqn": [
|
|
324
|
+
"register a host nqn",
|
|
325
|
+
"add an nvme host",
|
|
326
|
+
"add the host nqn to a subsystem"
|
|
327
|
+
],
|
|
328
|
+
"get host_nqn": [
|
|
329
|
+
"show host nqns",
|
|
330
|
+
"list nvme hosts"
|
|
331
|
+
],
|
|
332
|
+
"add namespace": [
|
|
333
|
+
"create a namespace",
|
|
334
|
+
"add a namespace to a subsystem",
|
|
335
|
+
"present a volume over nvme",
|
|
336
|
+
"map an ldev to a namespace"
|
|
337
|
+
],
|
|
338
|
+
"get namespace": [
|
|
339
|
+
"list namespaces",
|
|
340
|
+
"show namespaces in a subsystem"
|
|
341
|
+
],
|
|
342
|
+
"add namespace_path": [
|
|
343
|
+
"give a host access to a namespace",
|
|
344
|
+
"add a host namespace path",
|
|
345
|
+
"map a namespace to a host nqn"
|
|
346
|
+
],
|
|
347
|
+
"get system": [
|
|
348
|
+
"show storage system information",
|
|
349
|
+
"show the array model and serial number",
|
|
350
|
+
"what firmware is the array running"
|
|
351
|
+
],
|
|
352
|
+
"get license": [
|
|
353
|
+
"show licenses",
|
|
354
|
+
"list installed license keys"
|
|
355
|
+
],
|
|
356
|
+
"get clpr": [
|
|
357
|
+
"show cache partitions",
|
|
358
|
+
"list clprs"
|
|
359
|
+
],
|
|
360
|
+
"get chap_user": [
|
|
361
|
+
"list chap users",
|
|
362
|
+
"show chap users on a port"
|
|
363
|
+
],
|
|
364
|
+
"add chap_user": [
|
|
365
|
+
"create a chap user"
|
|
366
|
+
],
|
|
367
|
+
"get drive": [
|
|
368
|
+
"list drives",
|
|
369
|
+
"show drive status",
|
|
370
|
+
"show spare drives"
|
|
371
|
+
],
|
|
372
|
+
"get qos_grp": [
|
|
373
|
+
"list qos groups"
|
|
374
|
+
],
|
|
375
|
+
"add qos_grp": [
|
|
376
|
+
"create a qos group"
|
|
377
|
+
],
|
|
378
|
+
"send ping": [
|
|
379
|
+
"ping from a port",
|
|
380
|
+
"test connectivity from a storage port to an ip address"
|
|
381
|
+
],
|
|
382
|
+
"add server": [
|
|
383
|
+
"register a server",
|
|
384
|
+
"add a server for nvme or iscsi"
|
|
385
|
+
],
|
|
386
|
+
"get ctg": [
|
|
387
|
+
"show consistency groups",
|
|
388
|
+
"list ctg usage"
|
|
389
|
+
]
|
|
390
|
+
}
|
package/spec/limits.json
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_source": "Valid parameter ranges from the appendices of the CCI Command Reference (VSP One Block, VSP 5000 series, VSP E series). Only what the appendices state is encoded.",
|
|
3
|
+
"models": {
|
|
4
|
+
"generic": {
|
|
5
|
+
"label": "Any model (the widest range of any supported model)",
|
|
6
|
+
"serial": [
|
|
7
|
+
100000,
|
|
8
|
+
899999
|
|
9
|
+
],
|
|
10
|
+
"ldev": [
|
|
11
|
+
0,
|
|
12
|
+
65279
|
|
13
|
+
],
|
|
14
|
+
"pool": [
|
|
15
|
+
0,
|
|
16
|
+
127
|
|
17
|
+
],
|
|
18
|
+
"lun": [
|
|
19
|
+
0,
|
|
20
|
+
4095
|
|
21
|
+
],
|
|
22
|
+
"portColumns": "123456789ABC",
|
|
23
|
+
"portLetters": "ABCDEFGHJKLMNPQR"
|
|
24
|
+
},
|
|
25
|
+
"vsp-one-b24": {
|
|
26
|
+
"label": "VSP One Block 24",
|
|
27
|
+
"aliases": [
|
|
28
|
+
"b24",
|
|
29
|
+
"vsp one b24",
|
|
30
|
+
"vsp one block 24"
|
|
31
|
+
],
|
|
32
|
+
"serial": [
|
|
33
|
+
800000,
|
|
34
|
+
899999
|
|
35
|
+
],
|
|
36
|
+
"ldev": [
|
|
37
|
+
0,
|
|
38
|
+
16383
|
|
39
|
+
],
|
|
40
|
+
"pool": [
|
|
41
|
+
0,
|
|
42
|
+
63
|
|
43
|
+
],
|
|
44
|
+
"lun": [
|
|
45
|
+
0,
|
|
46
|
+
2047
|
|
47
|
+
],
|
|
48
|
+
"portColumns": "12345678",
|
|
49
|
+
"portLetters": "AD"
|
|
50
|
+
},
|
|
51
|
+
"vsp-one-b26": {
|
|
52
|
+
"label": "VSP One Block 26",
|
|
53
|
+
"aliases": [
|
|
54
|
+
"b26",
|
|
55
|
+
"vsp one b26",
|
|
56
|
+
"vsp one block 26"
|
|
57
|
+
],
|
|
58
|
+
"serial": [
|
|
59
|
+
800000,
|
|
60
|
+
899999
|
|
61
|
+
],
|
|
62
|
+
"ldev": [
|
|
63
|
+
0,
|
|
64
|
+
32767
|
|
65
|
+
],
|
|
66
|
+
"pool": [
|
|
67
|
+
0,
|
|
68
|
+
63
|
|
69
|
+
],
|
|
70
|
+
"lun": [
|
|
71
|
+
0,
|
|
72
|
+
2047
|
|
73
|
+
],
|
|
74
|
+
"portColumns": "12345678",
|
|
75
|
+
"portLetters": "ABCD"
|
|
76
|
+
},
|
|
77
|
+
"vsp-one-b28": {
|
|
78
|
+
"label": "VSP One Block 28",
|
|
79
|
+
"aliases": [
|
|
80
|
+
"b28",
|
|
81
|
+
"vsp one b28",
|
|
82
|
+
"vsp one block 28"
|
|
83
|
+
],
|
|
84
|
+
"serial": [
|
|
85
|
+
800000,
|
|
86
|
+
899999
|
|
87
|
+
],
|
|
88
|
+
"ldev": [
|
|
89
|
+
0,
|
|
90
|
+
49151
|
|
91
|
+
],
|
|
92
|
+
"pool": [
|
|
93
|
+
0,
|
|
94
|
+
63
|
|
95
|
+
],
|
|
96
|
+
"lun": [
|
|
97
|
+
0,
|
|
98
|
+
2047
|
|
99
|
+
],
|
|
100
|
+
"portColumns": "12345678",
|
|
101
|
+
"portLetters": "ABCD"
|
|
102
|
+
},
|
|
103
|
+
"vsp-5000": {
|
|
104
|
+
"label": "VSP 5000 series",
|
|
105
|
+
"aliases": [
|
|
106
|
+
"5000",
|
|
107
|
+
"5100",
|
|
108
|
+
"5200",
|
|
109
|
+
"5500",
|
|
110
|
+
"5600",
|
|
111
|
+
"vsp 5100",
|
|
112
|
+
"vsp 5200",
|
|
113
|
+
"vsp 5500",
|
|
114
|
+
"vsp 5600"
|
|
115
|
+
],
|
|
116
|
+
"serial": [
|
|
117
|
+
500000,
|
|
118
|
+
599999
|
|
119
|
+
],
|
|
120
|
+
"ldev": [
|
|
121
|
+
0,
|
|
122
|
+
65279
|
|
123
|
+
],
|
|
124
|
+
"pool": [
|
|
125
|
+
0,
|
|
126
|
+
127
|
|
127
|
+
],
|
|
128
|
+
"lun": [
|
|
129
|
+
0,
|
|
130
|
+
4095
|
|
131
|
+
],
|
|
132
|
+
"portColumns": "123456789ABC",
|
|
133
|
+
"portLetters": "ABCDEFGHJKLMNPQR",
|
|
134
|
+
"portColumnsLimited": {
|
|
135
|
+
"cols": "9ABC",
|
|
136
|
+
"letters": "ABCDJKLM"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"vsp-e590": {
|
|
140
|
+
"label": "VSP E590",
|
|
141
|
+
"aliases": [
|
|
142
|
+
"e590"
|
|
143
|
+
],
|
|
144
|
+
"serial": [
|
|
145
|
+
600000,
|
|
146
|
+
699999
|
|
147
|
+
],
|
|
148
|
+
"ldev": [
|
|
149
|
+
0,
|
|
150
|
+
32767
|
|
151
|
+
],
|
|
152
|
+
"pool": [
|
|
153
|
+
0,
|
|
154
|
+
63
|
|
155
|
+
],
|
|
156
|
+
"lun": [
|
|
157
|
+
0,
|
|
158
|
+
2047
|
|
159
|
+
],
|
|
160
|
+
"portColumns": "12345678",
|
|
161
|
+
"portLetters": "ABC"
|
|
162
|
+
},
|
|
163
|
+
"vsp-e790": {
|
|
164
|
+
"label": "VSP E790",
|
|
165
|
+
"aliases": [
|
|
166
|
+
"e790"
|
|
167
|
+
],
|
|
168
|
+
"serial": [
|
|
169
|
+
600000,
|
|
170
|
+
699999
|
|
171
|
+
],
|
|
172
|
+
"ldev": [
|
|
173
|
+
0,
|
|
174
|
+
49151
|
|
175
|
+
],
|
|
176
|
+
"pool": [
|
|
177
|
+
0,
|
|
178
|
+
63
|
|
179
|
+
],
|
|
180
|
+
"lun": [
|
|
181
|
+
0,
|
|
182
|
+
2047
|
|
183
|
+
],
|
|
184
|
+
"portColumns": "12345678",
|
|
185
|
+
"portLetters": "ABC"
|
|
186
|
+
},
|
|
187
|
+
"vsp-e990": {
|
|
188
|
+
"label": "VSP E990",
|
|
189
|
+
"aliases": [
|
|
190
|
+
"e990"
|
|
191
|
+
],
|
|
192
|
+
"serial": [
|
|
193
|
+
400000,
|
|
194
|
+
499999
|
|
195
|
+
],
|
|
196
|
+
"ldev": [
|
|
197
|
+
0,
|
|
198
|
+
65279
|
|
199
|
+
],
|
|
200
|
+
"pool": [
|
|
201
|
+
0,
|
|
202
|
+
127
|
|
203
|
+
],
|
|
204
|
+
"lun": [
|
|
205
|
+
0,
|
|
206
|
+
2047
|
|
207
|
+
],
|
|
208
|
+
"portColumns": "12345678",
|
|
209
|
+
"portLetters": "ABCDEFGHJKLM"
|
|
210
|
+
},
|
|
211
|
+
"vsp-e1090": {
|
|
212
|
+
"label": "VSP E1090",
|
|
213
|
+
"aliases": [
|
|
214
|
+
"e1090"
|
|
215
|
+
],
|
|
216
|
+
"serial": [
|
|
217
|
+
700000,
|
|
218
|
+
799999
|
|
219
|
+
],
|
|
220
|
+
"ldev": [
|
|
221
|
+
0,
|
|
222
|
+
65279
|
|
223
|
+
],
|
|
224
|
+
"pool": [
|
|
225
|
+
0,
|
|
226
|
+
127
|
|
227
|
+
],
|
|
228
|
+
"lun": [
|
|
229
|
+
0,
|
|
230
|
+
2047
|
|
231
|
+
],
|
|
232
|
+
"portColumns": "12345678",
|
|
233
|
+
"portLetters": "ABCDEFGHJKLM"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|