@@ -231,201 +231,231 @@ Here's a small demo that creates a project, creates an instance, and attaches a
231
231
----
232
232
$ ./tools/oxapi_demo
233
233
oxapi_demo: command not specified
234
+ usage: oxapi_demo [-A] [cmd] [args]
235
+
236
+ GENERAL OPTIONS
237
+
238
+ -A do not attempt to authenticate
239
+ (default behavior: use "spoof" authentication for endpoints
240
+ that require it)
241
+
242
+ ORGANIZATIONS
243
+
244
+ organizations_list
245
+ organization_create_demo ORGANIZATION_NAME
246
+ organization_delete ORGANIZATION_NAME
247
+ organization_get ORGANIZATION_NAME
234
248
235
249
PROJECTS
236
250
237
- projects_list
238
- project_create_demo PROJECT_NAME
239
- project_delete PROJECT_NAME
240
- project_get PROJECT_NAME
241
- project_list_instances PROJECT_NAME
242
- project_list_disks PROJECT_NAME
251
+ projects_list ORGANIZATION_NAME
252
+ project_create_demo ORGANIZATION_NAME PROJECT_NAME
253
+ project_delete ORGANIZATION_NAME PROJECT_NAME
254
+ project_get ORGANIZATION_NAME PROJECT_NAME
255
+ project_list_instances ORGANIZATION_NAME PROJECT_NAME
256
+ project_list_disks ORGANIZATION_NAME PROJECT_NAME
257
+ project_list_vpcs ORGANIZATION_NAME PROJECT_NAME
243
258
244
259
INSTANCES
245
260
246
- instance_create_demo PROJECT_NAME INSTANCE_NAME
247
- instance_get PROJECT_NAME INSTANCE_NAME
248
- instance_delete PROJECT_NAME INSTANCE_NAME
261
+ instance_create_demo ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
262
+ instance_get ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
263
+ instance_delete ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
249
264
250
- instance_stop PROJECT_NAME INSTANCE_NAME
251
- instance_start PROJECT_NAME INSTANCE_NAME
252
- instance_reboot PROJECT_NAME INSTANCE_NAME
265
+ instance_stop ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
266
+ instance_start ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
267
+ instance_reboot ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
253
268
254
- instance_attach_disk PROJECT_NAME INSTANCE_NAME DISK_NAME
255
- instance_detach_disk PROJECT_NAME INSTANCE_NAME DISK_NAME
256
- instance_list_disks PROJECT_NAME INSTANCE_NAME
257
- instance_get_disk PROJECT_NAME INSTANCE_NAME DISK_NAME
269
+ instance_attach_disk ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME DISK_NAME
270
+ instance_detach_disk ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME DISK_NAME
271
+ instance_list_disks ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME
272
+ instance_get_disk ORGANIZATION_NAME PROJECT_NAME INSTANCE_NAME DISK_NAME
258
273
259
274
DISKS
260
275
261
- disk_create_demo PROJECT_NAME DISK_NAME
262
- disk_get PROJECT_NAME DISK_NAME
276
+ disk_create_demo ORGANIZATION_NAME PROJECT_NAME DISK_NAME
277
+ disk_get ORGANIZATION_NAME PROJECT_NAME DISK_NAME
278
+ disk_delete ORGANIZATION_NAME PROJECT_NAME DISK_NAME
279
+
280
+ VPCS
281
+
282
+ vpc_create_demo ORGANIZATION_NAME PROJECT_NAME VPC_NAME DNS_NAME
283
+ vpc_get ORGANIZATION_NAME PROJECT_NAME VPC_NAME
284
+ vpc_delete ORGANIZATION_NAME PROJECT_NAME VPC_NAME
263
285
264
286
HARDWARE
265
287
266
288
racks_list
267
289
rack_get RACK_ID
268
290
269
291
sleds_list
270
- sled_get SERVER_ID
292
+ sled_get SLED_ID
293
+ $ ./tools/oxapi_demo organization_create_demo myorg
294
+ ++ curl -sSi http://127.0.0.1:12220/organizations -X POST -T - -H 'oxide-authn-spoof: 001de000-05e4-0000-0000-000000004007'
295
+ ++ json -ga
296
+ HTTP/1.1 100 Continue
271
297
298
+ HTTP/1.1 201 Created
299
+ content-type: application/json
300
+ x-request-id: 60ffbc0b-212a-4ffd-84f0-39aeb4b3b772
301
+ content-length: 194
302
+ date: Wed, 17 Nov 2021 01:43:52 GMT
272
303
273
- $ ./tools/oxapi_demo project_create_demo myproject
274
- ++ curl -sSi http://127.0.0.1:12220/projects -X POST -T -
304
+ {
305
+ "id": "dbaf046f-1c05-4b6a-a749-5111a8cd9aa1",
306
+ "name": "myorg",
307
+ "description": "an organization called myorg",
308
+ "timeCreated": "2021-11-17T01:43:52.322629Z",
309
+ "timeModified": "2021-11-17T01:43:52.322629Z"
310
+ }
311
+ $ ./tools/oxapi_demo project_create_demo myorg myproject
312
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects -X POST -T -
275
313
++ json -ga
276
314
HTTP/1.1 100 Continue
277
315
278
316
HTTP/1.1 201 Created
279
317
content-type: application/json
280
- x-request-id: 6e357d79-dc11-4418-8f9d-3c50fce13027
281
- content-length: 196
282
- date: Wed, 27 May 2020 00:45:03 GMT
318
+ x-request-id: bea0ba10-2916-473c-b3e4-461984b85c6b
319
+ content-length: 252
320
+ date: Wed, 17 Nov 2021 01:44:01 GMT
283
321
284
322
{
285
- "id": "9c159daa-fdd1-402b-bc98-e1bebaeb578c ",
323
+ "id": "c197b9d2-285c-4e9f-9461-1815ef093c8d ",
286
324
"name": "myproject",
287
325
"description": "a project called myproject",
288
- "timeCreated": "2020-05-27T00:45:03.563996Z",
289
- "timeModified": "2020-05-27T00:45:03.563996Z"
326
+ "timeCreated": "2021-11-17T01:44:01.933615Z",
327
+ "timeModified": "2021-11-17T01:44:01.933615Z",
328
+ "organizationId": "dbaf046f-1c05-4b6a-a749-5111a8cd9aa1"
290
329
}
291
-
292
-
293
- $ ./tools/oxapi_demo instance_create_demo myproject myinstance
294
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/instances -X POST -T -
330
+ $ ./tools/oxapi_demo instance_create_demo myorg myproject myinstance
331
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/instances -X POST -T -
295
332
++ json -ga
296
333
HTTP/1.1 100 Continue
297
334
298
335
HTTP/1.1 201 Created
299
336
content-type: application/json
300
- x-request-id: ec65473d-7c0f-462d-a0cb-2e35fabb6533
301
- content-length: 388
302
- date: Wed, 27 May 2020 00 :45:24 GMT
337
+ x-request-id: 3d07dfa2-efda-4085-ac9f-9e6bd3040997
338
+ content-length: 377
339
+ date: Wed, 17 Nov 2021 01 :45:07 GMT
303
340
304
341
{
305
- "id": "d58039dc-4ed3-44de-a5d4-cd4696246799 ",
342
+ "id": "99ad2514-050c-4493-9cb9-d9ceba980a98 ",
306
343
"name": "myinstance",
307
344
"description": "an instance called myinstance",
308
- "timeCreated": "2020-05-27T00 :45:24.784729Z ",
309
- "timeModified": "2020-05-27T00 :45:24.784729Z ",
310
- "projectId": "9c159daa-fdd1-402b-bc98-e1bebaeb578c ",
345
+ "timeCreated": "2021-11-17T01 :45:07.606749Z ",
346
+ "timeModified": "2021-11-17T01 :45:07.606749Z ",
347
+ "projectId": "c197b9d2-285c-4e9f-9461-1815ef093c8d ",
311
348
"ncpus": 1,
312
- "memory": 256,
313
- "bootDiskSize": 1,
349
+ "memory": 268435456,
314
350
"hostname": "myproject",
315
351
"runState": "starting",
316
- "timeRunStateUpdated": "2020-05-27T00 :45:24.785445Z "
352
+ "timeRunStateUpdated": "2021-11-17T01 :45:07.618960Z "
317
353
}
318
-
319
-
320
- $ ./tools/oxapi_demo instance_get myproject myinstance
321
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/instances/myinstance
354
+ $ ./tools/oxapi_demo instance_get myorg myproject myinstance
355
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/instances/myinstance
322
356
++ json -ga
323
357
HTTP/1.1 200 OK
324
358
content-type: application/json
325
- x-request-id: c228154b-ddd1-4758-b51c-e5c0547727ba
326
- content-length: 387
327
- date: Wed, 27 May 2020 00:45:42 GMT
359
+ x-request-id: 5870f965-06a8-41fc-967f-9021ec640ad4
360
+ content-length: 376
361
+ date: Wed, 17 Nov 2021 01:46:41 GMT
328
362
329
363
{
330
- "id": "d58039dc-4ed3-44de-a5d4-cd4696246799 ",
364
+ "id": "99ad2514-050c-4493-9cb9-d9ceba980a98 ",
331
365
"name": "myinstance",
332
366
"description": "an instance called myinstance",
333
- "timeCreated": "2020-05-27T00 :45:24.784729Z ",
334
- "timeModified": "2020-05-27T00 :45:24.784729Z ",
335
- "projectId": "9c159daa-fdd1-402b-bc98-e1bebaeb578c ",
367
+ "timeCreated": "2021-11-17T01 :45:07.606749Z ",
368
+ "timeModified": "2021-11-17T01 :45:07.606749Z ",
369
+ "projectId": "c197b9d2-285c-4e9f-9461-1815ef093c8d ",
336
370
"ncpus": 1,
337
- "memory": 256,
338
- "bootDiskSize": 1,
371
+ "memory": 268435456,
339
372
"hostname": "myproject",
340
373
"runState": "running",
341
- "timeRunStateUpdated": "2020-05-27T00 :45:26.291810Z "
374
+ "timeRunStateUpdated": "2021-11-17T01 :45:09.120652Z "
342
375
}
343
-
344
-
345
- $ ./tools/oxapi_demo disk_create_demo myproject mydisk
346
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/disks -X POST -T -
376
+ $ ./tools/oxapi_demo disk_create_demo myorg myproject mydisk
377
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/disks -X POST -T -
347
378
++ json -ga
348
379
HTTP/1.1 100 Continue
349
380
350
381
HTTP/1.1 201 Created
351
382
content-type: application/json
352
- x-request-id: e004d88f-d8cc-4721-8000-583b504a5372
353
- content-length: 314
354
- date: Wed, 27 May 2020 00:45:34 GMT
383
+ x-request-id: f6073b9d-4b07-4eba-b8cf-55d8158785eb
384
+ content-length: 324
385
+ date: Wed, 17 Nov 2021 01:47:36 GMT
355
386
356
387
{
357
- "id": "bb225f2a-bba3-4d5c-9161-117b8a5b678d ",
388
+ "id": "551bbe67-3640-41c9-b968-249a136e5e31 ",
358
389
"name": "mydisk",
359
390
"description": "a disk called mydisk",
360
- "timeCreated": "2020-05-27T00:45:34.119234Z ",
361
- "timeModified": "2020-05-27T00:45:34.119234Z ",
362
- "projectId": "9c159daa-fdd1-402b-bc98-e1bebaeb578c ",
391
+ "timeCreated": "2021-11-17T01:47:36.524136Z ",
392
+ "timeModified": "2021-11-17T01:47:36.524136Z ",
393
+ "projectId": "c197b9d2-285c-4e9f-9461-1815ef093c8d ",
363
394
"snapshotId": null,
364
395
"size": 1024,
365
- "state": "creating",
396
+ "state": {
397
+ "state": "creating"
398
+ },
366
399
"devicePath": "/mnt/mydisk"
367
400
}
368
-
369
-
370
- $ ./tools/oxapi_demo disk_get myproject mydisk
371
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/disks/mydisk
401
+ $ ./tools/oxapi_demo disk_get myorg myproject mydisk
402
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/disks/mydisk
372
403
++ json -ga
373
404
HTTP/1.1 200 OK
374
405
content-type: application/json
375
- x-request-id: 09608040-f645-4f1e-941f-2f4629cdedd0
376
- content-length: 314
377
- date: Wed, 27 May 2020 00:45:50 GMT
406
+ x-request-id: bd1083a8-67f2-407a-8d33-068906e9f2f1
407
+ content-length: 324
408
+ date: Wed, 17 Nov 2021 01:48:17 GMT
378
409
379
410
{
380
- "id": "bb225f2a-bba3-4d5c-9161-117b8a5b678d ",
411
+ "id": "551bbe67-3640-41c9-b968-249a136e5e31 ",
381
412
"name": "mydisk",
382
413
"description": "a disk called mydisk",
383
- "timeCreated": "2020-05-27T00:45:34.119234Z ",
384
- "timeModified": "2020-05-27T00:45:34.119234Z ",
385
- "projectId": "9c159daa-fdd1-402b-bc98-e1bebaeb578c ",
414
+ "timeCreated": "2021-11-17T01:47:36.524136Z ",
415
+ "timeModified": "2021-11-17T01:47:36.524136Z ",
416
+ "projectId": "c197b9d2-285c-4e9f-9461-1815ef093c8d ",
386
417
"snapshotId": null,
387
418
"size": 1024,
388
- "state": "detached",
419
+ "state": {
420
+ "state": "detached"
421
+ },
389
422
"devicePath": "/mnt/mydisk"
390
423
}
391
-
392
-
393
- $ ./tools/oxapi_demo instance_attach_disk myproject myinstance mydisk
394
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/instances/myinstance/disks/mydisk -X PUT -T /dev/null
424
+ $ ./tools/oxapi_demo instance_attach_disk myorg myproject myinstance mydisk
425
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/instances/myinstance/disks
426
+ /mydisk -X PUT -T /dev/null
395
427
++ json -ga
396
428
HTTP/1.1 201 Created
397
429
content-type: application/json
398
- x-request-id: 933cecce-d356-4cd4-b1b2-728cecf29a45
399
- content-length: 214
400
- date: Wed, 27 May 2020 00:46:04 GMT
430
+ x-request-id: da298038-28fc-4eb2-a283-4182859d6f33
431
+ content-length: 205
432
+ date: Wed, 17 Nov 2021 01:48:41 GMT
401
433
402
434
{
403
- "instanceName ": "myinstance ",
404
- "instanceId ": "d58039dc-4ed3-44de-a5d4-cd4696246799 ",
435
+ "instanceId ": "99ad2514-050c-4493-9cb9-d9ceba980a98 ",
436
+ "diskId ": "551bbe67-3640-41c9-b968-249a136e5e31 ",
405
437
"diskName": "mydisk",
406
- "diskId": "bb225f2a-bba3-4d5c-9161-117b8a5b678d",
407
438
"diskState": {
408
- "attaching": "d58039dc-4ed3-44de-a5d4-cd4696246799"
439
+ "state": "attaching",
440
+ "instance": "99ad2514-050c-4493-9cb9-d9ceba980a98"
409
441
}
410
442
}
411
-
412
-
413
- $ ./tools/oxapi_demo instance_list_disks myproject myinstance
414
- ++ curl -sSi http://127.0.0.1:12220/projects/myproject/instances/myinstance/disks
443
+ $ ./tools/oxapi_demo instance_list_disks myorg myproject myinstance
444
+ ++ curl -sSi http://127.0.0.1:12220/organizations/myorg/projects/myproject/instances/myinstance/disks
415
445
++ json -ga
416
446
HTTP/1.1 200 OK
417
- content-type: application/x-ndjson
418
- x-request-id: fb3f4d2a-4992-4816-94df-1aa2c461777c
419
- content-length: 214
420
- date: Wed, 27 May 2020 00:46:11 GMT
447
+ content-type: application/json
448
+ x-request-id: 9f0490d5-e09e-4831-900c-d39f5f07d2c8
449
+ content-length: 206
450
+ date: Wed, 17 Nov 2021 01:49:10 GMT
421
451
422
452
{
423
- "instanceName ": "myinstance ",
424
- "instanceId ": "d58039dc-4ed3-44de-a5d4-cd4696246799 ",
453
+ "instanceId ": "99ad2514-050c-4493-9cb9-d9ceba980a98 ",
454
+ "diskId ": "551bbe67-3640-41c9-b968-249a136e5e31 ",
425
455
"diskName": "mydisk",
426
- "diskId": "bb225f2a-bba3-4d5c-9161-117b8a5b678d",
427
456
"diskState": {
428
- "attached": "d58039dc-4ed3-44de-a5d4-cd4696246799"
457
+ "state": "attached",
458
+ "instance": "99ad2514-050c-4493-9cb9-d9ceba980a98"
429
459
}
430
460
}
431
461
----
0 commit comments