Revision 6d81475c doc/rapi.rst

b/doc/rapi.rst
82 82
Resources
83 83
---------
84 84

  
85
.. include:: rapi-resources.gen
85
/
86
+
87

  
88
::
89

  
90
  / resource.
91

  
92
It supports the following commands: GET.
93

  
94
GET
95
~~~
96

  
97
::
98

  
99
  Show the list of mapped resources.
100

  
101
  Returns: a dictionary with 'name' and 'uri' keys for each of them.
102

  
103
/2
104
++
105

  
106
::
107

  
108
  /2 resource, the root of the version 2 API.
109

  
110
It supports the following commands: GET.
111

  
112
GET
113
~~~
114

  
115
::
116

  
117
  Show the list of mapped resources.
118

  
119
  Returns: a dictionary with 'name' and 'uri' keys for each of them.
120

  
121
/2/info
122
+++++++
123

  
124
::
125

  
126
  Cluster info.
127

  
128
It supports the following commands: GET.
129

  
130
GET
131
~~~
132

  
133
::
134

  
135
  Returns cluster information.
136

  
137
  Example::
138

  
139
  {
140
    "config_version": 2000000,
141
    "name": "cluster",
142
    "software_version": "2.0.0~beta2",
143
    "os_api_version": 10,
144
    "export_version": 0,
145
    "candidate_pool_size": 10,
146
    "enabled_hypervisors": [
147
      "fake"
148
    ],
149
    "hvparams": {
150
      "fake": {}
151
     },
152
    "default_hypervisor": "fake",
153
    "master": "node1.example.com",
154
    "architecture": [
155
      "64bit",
156
      "x86_64"
157
    ],
158
    "protocol_version": 20,
159
    "beparams": {
160
      "default": {
161
        "auto_balance": true,
162
        "vcpus": 1,
163
        "memory": 128
164
       }
165
      }
166
    }
167

  
168
/2/instances
169
++++++++++++
170

  
171
::
172

  
173
  /2/instances resource.
174

  
175
It supports the following commands: GET, POST.
176

  
177
GET
178
~~~
179

  
180
::
181

  
182
  Returns a list of all available instances.
183

  
184

  
185
  Example::
186

  
187
    [
188
      {
189
        "name": "web.example.com",
190
        "uri": "\/instances\/web.example.com"
191
      },
192
      {
193
        "name": "mail.example.com",
194
        "uri": "\/instances\/mail.example.com"
195
      }
196
    ]
197

  
198
  If the optional 'bulk' argument is provided and set to 'true'
199
  value (i.e '?bulk=1'), the output contains detailed
200
  information about instances as a list.
201

  
202
  Example::
203

  
204
    [
205
      {
206
         "status": "running",
207
         "disk_usage": 20480,
208
         "nic.bridges": [
209
           "xen-br0"
210
          ],
211
         "name": "web.example.com",
212
         "tags": ["tag1", "tag2"],
213
         "beparams": {
214
           "vcpus": 2,
215
           "memory": 512
216
         },
217
         "disk.sizes": [
218
             20480
219
         ],
220
         "pnode": "node1.example.com",
221
         "nic.macs": ["01:23:45:67:89:01"],
222
         "snodes": ["node2.example.com"],
223
         "disk_template": "drbd",
224
         "admin_state": true,
225
         "os": "debian-etch",
226
         "oper_state": true
227
      },
228
      ...
229
    ]
230

  
231
  Returns: a dictionary with 'name' and 'uri' keys for each of them.
232

  
233
POST
234
~~~~
235

  
236
::
237

  
238
  Create an instance.
239

  
240
  Returns: a job id
241

  
242
/2/instances/[instance_name]
243
++++++++++++++++++++++++++++
244

  
245
::
246

  
247
  /2/instances/[instance_name] resources.
248

  
249
It supports the following commands: GET, DELETE.
250

  
251
GET
252
~~~
253

  
254
::
255

  
256
  Send information about an instance.
257

  
258

  
259

  
260
DELETE
261
~~~~~~
262

  
263
::
264

  
265
  Delete an instance.
266

  
267

  
268

  
269
/2/instances/[instance_name]/reboot
270
+++++++++++++++++++++++++++++++++++
271

  
272
::
273

  
274
  /2/instances/[instance_name]/reboot resource.
275

  
276
  Implements an instance reboot.
277

  
278
It supports the following commands: POST.
279

  
280
POST
281
~~~~
282

  
283
::
284

  
285
  Reboot an instance.
286

  
287
  The URI takes type=[hard|soft|full] and
288
  ignore_secondaries=[False|True] parameters.
289

  
290
/2/instances/[instance_name]/shutdown
291
+++++++++++++++++++++++++++++++++++++
292

  
293
::
294

  
295
  /2/instances/[instance_name]/shutdown resource.
296

  
297
  Implements an instance shutdown.
298

  
299
It supports the following commands: PUT.
300

  
301
PUT
302
~~~
303

  
304
::
305

  
306
  Shutdown an instance.
307

  
308

  
309

  
310
/2/instances/[instance_name]/startup
311
++++++++++++++++++++++++++++++++++++
312

  
313
::
314

  
315
  /2/instances/[instance_name]/startup resource.
316

  
317
  Implements an instance startup.
318

  
319
It supports the following commands: PUT.
320

  
321
PUT
322
~~~
323

  
324
::
325

  
326
  Startup an instance.
327

  
328
  The URI takes force=[False|True] parameter to start the instance
329
  if even if secondary disks are failing.
330

  
331
/2/instances/[instance_name]/tags
332
+++++++++++++++++++++++++++++++++
333

  
334
::
335

  
336
  /2/instances/[instance_name]/tags resource.
337

  
338
  Manages per-instance tags.
339

  
340
It supports the following commands: GET, PUT, DELETE.
341

  
342
GET
343
~~~
344

  
345
::
346

  
347
  Returns a list of tags.
348

  
349
  Example: ["tag1", "tag2", "tag3"]
350

  
351
PUT
352
~~~
353

  
354
::
355

  
356
  Add a set of tags.
357

  
358
  The request as a list of strings should be PUT to this URI. And
359
  you'll have back a job id.
360

  
361
DELETE
362
~~~~~~
363

  
364
::
365

  
366
  Delete a tag.
367

  
368
  In order to delete a set of tags, the DELETE
369
  request should be addressed to URI like:
370
  /tags?tag=[tag]&tag=[tag]
371

  
372
/2/jobs
373
+++++++
374

  
375
::
376

  
377
  /2/jobs resource.
378

  
379
It supports the following commands: GET.
380

  
381
GET
382
~~~
383

  
384
::
385

  
386
  Returns a dictionary of jobs.
387

  
388
  Returns: a dictionary with jobs id and uri.
389

  
390
/2/jobs/[job_id]
391
++++++++++++++++
392

  
393
::
394

  
395
  /2/jobs/[job_id] resource.
396

  
397
It supports the following commands: GET, DELETE.
398

  
399
GET
400
~~~
401

  
402
::
403

  
404
  Returns a job status.
405

  
406
  Returns: a dictionary with job parameters.
407
      The result includes:
408
          - id: job ID as a number
409
          - status: current job status as a string
410
          - ops: involved OpCodes as a list of dictionaries for each
411
            opcodes in the job
412
          - opstatus: OpCodes status as a list
413
          - opresult: OpCodes results as a list of lists
414

  
415
DELETE
416
~~~~~~
417

  
418
::
419

  
420
  Cancel not-yet-started job.
421

  
422

  
423

  
424
/2/nodes
425
++++++++
426

  
427
::
428

  
429
  /2/nodes resource.
430

  
431
It supports the following commands: GET.
432

  
433
GET
434
~~~
435

  
436
::
437

  
438
  Returns a list of all nodes.
439

  
440
  Example::
441

  
442
    [
443
      {
444
        "id": "node1.example.com",
445
        "uri": "\/instances\/node1.example.com"
446
      },
447
      {
448
        "id": "node2.example.com",
449
        "uri": "\/instances\/node2.example.com"
450
      }
451
    ]
452

  
453
  If the optional 'bulk' argument is provided and set to 'true'
454
  value (i.e '?bulk=1'), the output contains detailed
455
  information about nodes as a list.
456

  
457
  Example::
458

  
459
    [
460
      {
461
        "pinst_cnt": 1,
462
        "mfree": 31280,
463
        "mtotal": 32763,
464
        "name": "www.example.com",
465
        "tags": [],
466
        "mnode": 512,
467
        "dtotal": 5246208,
468
        "sinst_cnt": 2,
469
        "dfree": 5171712,
470
        "offline": false
471
      },
472
      ...
473
    ]
474

  
475
  Returns: a dictionary with 'name' and 'uri' keys for each of them
476

  
477
/2/nodes/[node_name]/tags
478
+++++++++++++++++++++++++
479

  
480
::
481

  
482
  /2/nodes/[node_name]/tags resource.
483

  
484
  Manages per-node tags.
485

  
486
It supports the following commands: GET, PUT, DELETE.
487

  
488
GET
489
~~~
490

  
491
::
492

  
493
  Returns a list of tags.
494

  
495
  Example: ["tag1", "tag2", "tag3"]
496

  
497
PUT
498
~~~
499

  
500
::
501

  
502
  Add a set of tags.
503

  
504
  The request as a list of strings should be PUT to this URI. And
505
  you'll have back a job id.
506

  
507
DELETE
508
~~~~~~
509

  
510
::
511

  
512
  Delete a tag.
513

  
514
  In order to delete a set of tags, the DELETE
515
  request should be addressed to URI like:
516
  /tags?tag=[tag]&tag=[tag]
517

  
518
/2/os
519
+++++
520

  
521
::
522

  
523
  /2/os resource.
524

  
525
It supports the following commands: GET.
526

  
527
GET
528
~~~
529

  
530
::
531

  
532
  Return a list of all OSes.
533

  
534
  Can return error 500 in case of a problem.
535

  
536
  Example: ["debian-etch"]
537

  
538
/2/tags
539
+++++++
540

  
541
::
542

  
543
  /2/instances/tags resource.
544

  
545
  Manages cluster tags.
546

  
547
It supports the following commands: GET, PUT, DELETE.
548

  
549
GET
550
~~~
551

  
552
::
553

  
554
  Returns a list of tags.
555

  
556
  Example: ["tag1", "tag2", "tag3"]
557

  
558
PUT
559
~~~
560

  
561
::
562

  
563
  Add a set of tags.
564

  
565
  The request as a list of strings should be PUT to this URI. And
566
  you'll have back a job id.
567

  
568
DELETE
569
~~~~~~
570

  
571
::
572

  
573
  Delete a tag.
574

  
575
  In order to delete a set of tags, the DELETE
576
  request should be addressed to URI like:
577
  /tags?tag=[tag]&tag=[tag]
578

  
579
/nodes/[node_name]
580
++++++++++++++++++
581

  
582
::
583

  
584
  /2/nodes/[node_name] resources.
585

  
586
It supports the following commands: GET.
587

  
588
GET
589
~~~
590

  
591
::
592

  
593
  Send information about a node.
594

  
595

  
596

  
597
/version
598
++++++++
599

  
600
::
601

  
602
  /version resource.
603

  
604
  This resource should be used to determine the remote API version and
605
  to adapt clients accordingly.
606

  
607
It supports the following commands: GET.
608

  
609
GET
610
~~~
611

  
612
::
613

  
614
  Returns the remote API version.

Also available in: Unified diff