Statistics
| Branch: | Tag: | Revision:

root / docs / commands.rst @ 3b6d09dc

History | View | Annotate | Download (16.3 kB)

1
List of commands
2
================
3

    
4
Kamaki commands follow this scheme::
5

    
6
    [kamaki] <object> <action> [identifiers] [non-positional arguments]
7

    
8
In this context, objects are not services, but virtual objects like a server, a
9
file or an image. The action concerns objects of the specified type. Some
10
actions (e.g. "delete" or "info") need to operate on an existing object. The
11
identifiers strictly identify this object and they should have the form of an id
12
(e.g., `server delete <SERVER_ID>`).
13

    
14
The examples bellow showcase some commands. The kamaki-shell (check
15
`Usage section <usage.html#interactive-shell>`_ for details) is chosen as the
16
execution environment.
17

    
18

    
19
user (Identity/Astakos)
20
-----------------------
21

    
22
.. code-block:: text
23

    
24
    info          Get info for (current) session user
25
    uuid2name     Get user name(s) from uuid(s)
26
    authenticate  Authenticate a user and get all authentication information
27
    list          List (cached) session users
28
    add           Authenticate user by token and add to kamaki session (cache)
29
    name2uuid     Get user uuid(s) from name(s)
30
    select        Select user from the (cached) list as current session user
31
    delete        Delete user (token) from the (cached) list of session users
32

    
33
Showcase: get user information
34
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
35

    
36
In the following, cloud URL and TOKEN were set in a previous step (see
37
`setup section <setup.html>`_ or the
38
`quick setup guide <usage.html#quick-setup>`_)
39

    
40
.. code-block:: console
41
    :emphasize-lines: 1,4
42

    
43
    * Enter user context *
44
    [kamaki]: user
45

    
46
    * Authenticate user *
47
    [user]: info
48
    ...
49
    name:  My Real Name
50
    id:  ab1cde23-45fg-6h7i-8j9k-10l1m11no2pq
51

    
52
    [user]: exit
53
    [kamaki]:
54

    
55
project (Astakos)
56
-----------------
57

    
58
.. code-block:: text
59

    
60
    info          Get details for a project
61
    unsuspend     Resume a suspended project (special privileges needed)
62
    suspend       Suspend a project (special privileges needed)
63
    list          List all projects
64
    create        Apply for a new project
65
    modify        Modify a project
66
    terminate     Terminate a project (special privileges needed)
67
    application   Application management commands
68
    reinstate     Reinstate a terminated project (special privileges needed)
69

    
70
membership (Astakos)
71
--------------------
72

    
73
.. code-block:: text
74

    
75
    info    Details on a membership
76
    enroll  Enroll somebody to a project you manage
77
    join    Join a project
78
    list    List all memberships
79
    accept  Accept a membership for a project you manage
80
    leave   Leave a project you have membership to
81
    remove  Remove a membership for a project you manage
82
    reject  Reject a membership for a project you manage
83
    cancel  Cancel your (probably pending) membership to a project
84

    
85
quota (Account/Astakos)
86
-----------------------
87

    
88
.. code-block:: text
89

    
90
    list          Get user quotas
91
    info          Get quota for a service (cyclades, pithos, astakos)
92

    
93
resource (Astakos)
94
------------------
95

    
96
.. code-block:: text
97

    
98
    list          List user resources
99

    
100
flavor (Compute/Cyclades)
101
-------------------------
102

    
103
.. code-block:: text
104

    
105
    info:  Get flavor details
106
    list:  List flavors
107

    
108
Showcase: show details for flavor with id 43
109
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
110

    
111
.. code-block:: console
112
    :emphasize-lines: 1,4
113

    
114
    * Enter flavor context *
115
    [kamaki]: flavor
116

    
117
    * Get details about flavor with id 43 *
118
    [flavor]: info 43
119
    SNF:disk_template:  drbd
120
    cpu:  4
121
    disk:  10
122
    id:  43
123
    name:  C4R2048D10
124
    ram:  2048
125

    
126
image (Image/Plankton)
127
----------------------
128

    
129
.. code-block:: text
130

    
131
    info          Get image metadata
132
    list          List images accessible by user
133
    register      (Re)Register an image file to an Image service
134
    modify        Add / update metadata and properties for an image
135
    unregister    Unregister an image (does not delete the image file)
136

    
137
Showcase: Pick an image and list the properties
138
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
139

    
140
.. code-block:: console
141
    :emphasize-lines: 1,4,18
142

    
143
    * Enter image context *
144
    [kamaki]: image
145

    
146
    * list all available images *
147
    [image]: list
148
    926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008
149
     container_format:  bare
150
     disk_format:  diskdump
151
     id:  926ab1c5-2d85-49d4-aebe-0fce712789b9
152
     size:  11917066240
153
     status:  available
154
    78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012
155
     container_format:  bare
156
     disk_format:  diskdump
157
     id:  78262ee7-949e-4d70-af3a-85360c3de57a
158
     size:  11697913856
159
     status:  available
160
    5ed5a29b-292c-4fe0-b32c-2e2b65628635 ubuntu
161
     container_format:  bare
162
     disk_format:  diskdump
163
     id:  5ed5a29b-292c-4fe0-b32c-2e2b65628635
164
     size:  2578100224
165
     status:  available
166
    1f8454f0-8e3e-4b6c-ab8e-5236b728dffe Debian_Wheezy_Base
167
     container_format:  bare
168
     disk_format:  diskdump
169
     id:  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
170
     size:  795107328
171
     status:  available
172

    
173
    * Get details for image with id 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe *
174
    [image]: info 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
175
     name: Debian_Wheezy_Base
176
     container_format:  bare
177
     disk_format:  diskdump
178
     id:  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
179
     size:  795107328
180
     status:  available
181
     owner:  s0m3-u53r-1d (user@example.com)
182
        DESCRIPTION:  Debian Wheezy Base (Stable)
183
        GUI:  No GUI
184
        KERNEL:  2.6.32
185
        OS:  debian
186
        OSFAMILY:  linux
187
        ROOT_PARTITION:  1
188
        SORTORDER:  1
189
        USERS:  root
190

    
191
imagecompute (Compute/Cyclades)
192
-------------------------------
193

    
194
.. code-block:: text
195

    
196
    info      Get detailed information on an image
197
    list      List images
198
    modify    Modify image properties (metadata)
199
    delete    Delete an image (WARNING: image file is also removed)
200

    
201
server (Compute/Cyclades)
202
-------------------------
203

    
204
.. code-block:: text
205

    
206
    info      Detailed information on a Virtual Machine
207
    modify    Modify attributes of a virtual server
208
    create    Create a server (aka Virtual Machine)
209
    list      List virtual servers accessible by user
210
    reboot    Reboot a virtual server
211
    start     Start an existing virtual server
212
    shutdown  Shutdown an active virtual server
213
    delete    Delete a virtual server
214
    console   Create a VMC console and show connection information
215
    wait      Wait for server to finish [BUILD, STOPPED, REBOOT, ACTIVE]
216

    
217
Showcase: Create a server
218
^^^^^^^^^^^^^^^^^^^^^^^^^
219

    
220
.. code-block:: console
221
    :emphasize-lines: 1,4,21,35,44,62
222

    
223
    [kamaki]: server
224

    
225
    [server]: create -h
226
    usage: create --name NAME --flavor-id FLAVOR_ID --image-id IMAGE_ID
227
            [--personality PERSONALITY] [-h] [--config CONFIG] [--cloud CLOUD]
228

    
229
    Create a server
230

    
231
    optional arguments:
232
      -v, --verbose         More info at response
233
      --personality PERSONALITY
234
                            add a personality file
235
      -d, --debug           Include debug output
236
      -h, --help            Show help message
237
      -i, --include         Include protocol headers in the output
238
      --config CONFIG       Path to configuration file
239
      -s, --silent          Do not output anything
240
      --cloud CLOUD         Chose a cloud to connect to
241

    
242
    * List all available images *
243
    [server]: /image compute list
244
    1395fdfb-51b4-419f-bb02-f7d632860611 Ubuntu Desktop LTS
245
    1580deb4-edb3-4496-a27f-7a246c4c0528 Ubuntu Desktop
246
    18a82962-43eb-4b32-8e28-8f8880af89d7 Kubuntu LTS
247
    6aa6eafd-dccb-422d-a904-67fe2bdde87e Debian Desktop
248
    6b5681e4-7502-46ae-b1e9-9fd837932095 maelstrom
249
    78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012
250
    86bc2414-0fb3-4898-a637-240292243302 Fedora
251
    926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008
252
    b2dffe52-64a4-48c3-8a4c-8214cc3165cf Debian Base
253
    baf2321c-57a0-4a69-825d-49f49cea163a CentOS
254
    c1d27b46-d875-4f5c-b7f1-f39b5af62905 Kubuntu
255

    
256
    * See details of flavor with id 1 *
257
    [server]: /flavor info 1
258
    SNF:disk_template:  drbd
259
    cpu              :  1
260
    disk             :  20
261
    id               :  1
262
    name             :  C1R1024D20
263
    ram              :  1024
264

    
265
    * Create a debian server named 'My Small Debian Server'
266
    [server]: create --name='My Small Debian Server' --flavor-id=1 --image-id=b2dffe52-64a4-48c3-8a4c-8214cc3165cf
267
    adminPass:  L8gu2wbZ94
268
    created  :  2012-11-23T16:56:04.190813+00:00
269
    flavorRef:  1
270
    hostId   :  
271
    id       :  11687
272
    imageRef :  b2dffe52-64a4-48c3-8a4c-8214cc3165cf
273
    metadata : 
274
               os   :  debian
275
               users:  root
276
    name     :  My Small Debian Server
277
    progress :  0
278
    status   :  BUILD
279
    suspended:  False
280
    updated  :  2012-11-23T16:56:04.761962+00:00
281

    
282
    * wait for server to build (optional) *
283
    [server]: wait 11687
284
    Server 11687 still in BUILD mode |||||||||||||||||    | 80%
285
    Server 11687 is now in ACTIVE mode
286

    
287
.. Note:: In kamaki shell, / is used to access commands from top-level
288

    
289
ip (Network/Cyclades)
290
---------------------
291

    
292
.. code-block:: text
293

    
294
    info      Get details on a floating IP
295
    create    Reserve an IP on a network
296
    list      List reserved floating IPs
297
    delete    Unreserve an IP (also delete the port, if attached)
298
    attach    Attach an IP on a virtual server
299
    detach    Detach an IP from a virtual server
300

    
301
port (Network/Cyclades)
302
-----------------------
303

    
304
.. code-block:: text
305

    
306
    info      Get details about a port
307
    list      List all ports
308
    create    Create a new port (== connect server to network)
309
    modify    Modify the attributes of a port
310
    delete    Delete a port (== disconnect server from network)
311
    wait      Wait for port to finish [ACTIVE, DOWN, BUILD, ERROR]
312

    
313
Showcase: Reserve and attach IP to server
314
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
315

    
316
.. code-block:: text
317

    
318
    * Enter port context *
319
    [kamaki]: port
320

    
321
    * Reserve an IP and see servers and networks*
322
    [port]: /ip create
323
    123.456.78.9
324
    [port]: /server list
325
    42   My Windows Server
326
    43   My Linux Server
327
    [port]: /network list
328
    101  My Network 1
329
    102  My Network 2
330

    
331
    * Attach IP to server
332
    [port]: port create --device-id=43 --network-id=101 --ip-address=123.456.78.9 --wait
333
    Creating new port 7 between server 43 and network 101
334
    Port 7 still in BUILD mode |||||||||||||||||    | 80%
335
    Port 7 is now in ACTIVE mode
336

    
337
.. Note:: In kamaki shell, / is used to access top-level command groups while
338
    working in command group contexts
339

    
340
network (Network/Cyclades)
341
--------------------------
342

    
343
.. code-block:: text
344

    
345
    info        Get details about a network
346
    disconnect  Disconnect a network from a device
347
    modify      Modify network attributes
348
    create      Create a new network
349
    list        List networks
350
    connect     Connect a network with a device (server or router)
351
    delete      Delete a network
352

    
353
Showcase: Connect a network to a VM
354
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
355

    
356
.. code-block:: console
357
    :emphasize-lines: 1,4,9,24,27,44
358

    
359
    * Enter network context *
360
    [kamaki]: network
361

    
362
    * List user-owned VMs *
363
    [network]: /server list
364
    11687 (My Small Debian Server)
365
    11688 (An Ubuntu server)
366

    
367
    * Try network-connect (to get help) *
368
    [network]: connect 
369
    Syntax error
370
    usage: connect <network id> --device-id <DEVICE_ID> [-s] [-h] [-i] [--config CONFIG]
371

    
372
    Connect a server to a network
373

    
374
    Syntax: connect  <server id> <network id>
375
      --config    :  Path to configuration file
376
      -d,--debug  :  Include debug output
377
      -h,--help   :  Show help message
378
      -i,--include:  Include protocol headers in the output
379
      -s,--silent :  Do not output anything
380
      -v,--verbose:  More info at response
381

    
382
    * Connect VM with id 11687 to network with id 1409
383
    [network]: connect 1409 --device-id=11687 --wait
384
    Creating port between network 1409 and server 11687
385
    New port: 8
386

    
387
    * Get details on network with id 1409
388
    [network]: info 1409
389
      attachments:
390
                8
391
      cidr    :  192.168.1.0/24
392
      cidr6   :  None
393
      created :  2012-11-23T17:17:20.560098+00:00
394
      dhcp    :  True
395
      gateway :  None
396
      gateway6:  None
397
      id      :  1409
398
      name    :  my network
399
      public  :  False
400
      status  :  ACTIVE
401
      type    :  MAC_FILTERED
402
      updated :  2012-11-23T17:18:25.095225+00:00
403

    
404
    * Get connectivity details on VM with id 11687 *
405
    [network]: /server info 11687 --nics 
406
    nic-11687-1
407
        ipv4       :  192.168.1.1
408
        ipv6       :  None
409
        mac_address:  aa:0f:c2:0b:0e:85
410
        network_id :  1409
411
        firewallProfile:  DISABLED
412
    nic-11687-0
413
        ipv4           :  83.212.106.111
414
        ipv6           :  2001:648:2ffc:1116:a80c:f2ff:fe12:a9e
415
        mac_address    :  aa:0c:f2:12:0a:9e
416
        network_id     :  1369
417

    
418
.. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts
419

    
420
container (Storage/Pithos+)
421
---------------------------
422

    
423
.. code-block:: text
424

    
425
    info      Get information about a container
426
    modify    Modify the properties of a container
427
    create    Create a new container
428
    list      List all containers, or their contents
429
    empty     Empty a container
430
    delete    Delete a container
431

    
432
group (Storage/Pithos+)
433
-----------------------
434

    
435
.. code-block:: text
436

    
437
    create    Create a group of users
438
    list      List all groups and group members
439
    delete    Delete a user group
440

    
441
sharer (Storage/Pithos+)
442
------------------------
443

    
444
.. code-block:: text
445

    
446
    info      Details on a Pithos+ sharer account (default: current account)
447
    list      List accounts who share file objects with current user
448

    
449
file (Storage/Pithos+)
450
----------------------
451

    
452
.. code-block:: text
453

    
454
    info      Get information/details about a file
455
    truncate  Truncate remote file up to size
456
    mkdir     Create a directory
457
    create    Create an empty file
458
    move      Move objects, even between different accounts or containers
459
    list      List all objects in a container or a directory object
460
    upload    Upload a file
461
    cat       Fetch remote file contents
462
    modify    Modify the attributes of a file or directory object
463
    append    Append local file to (existing) remote object
464
    download  Download a remove file or directory object to local file system
465
    copy      Copy objects, even between different accounts or containers
466
    overwrite Overwrite part of a remote file
467
    delete    Delete a file or directory object
468

    
469
Showcase: Upload and download a file
470
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
471

    
472
.. code-block:: console
473
    :emphasize-lines: 1,7,11,16,21,29,33,37,41,44,51,55,60,64
474

    
475
    * Create a random binarry file at current OS path *
476
    [kamaki]: !dd bs=4M if=/dev/zero of=rndm_local.file count=5
477
    5+0 records in
478
    5+0 records out
479
    20971520 bytes (21 MB) copied, 0.016162 s, 1.3 GB/s
480

    
481
    * Enter file context *
482
    [kamaki]: file
483

    
484

    
485
    * Check local file *
486
    [file]: !ls -lh rndm_local.file
487
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
488

    
489

    
490
    * Create two containers *
491
    [file]: /container create mycont1
492
    [file]: /container create mycont2
493

    
494

    
495
    * List accessible containers *    
496
    [file]: /container list
497
    1. mycont1 (0B, 0 objects)
498
    2. mycont2 (0B, 0 objects)
499
    3. pithos (0B, 0 objects)
500
    4. trash (0B, 0 objects)
501

    
502

    
503
    * Upload local file to 1st container *
504
    [file]: upload /mycont1/rndm_local.file
505

    
506

    
507
    * Check if file has been uploaded *
508
    [file]: list /mycont1
509
    1.    20M rndm_local.file
510

    
511
    * Create directory mydir on second container *
512
    [file]: mkdir /mycont2/mydir
513

    
514
    * Move file from 1st to 2nd container (and in the directory) *
515
    [file]: move /mycont1/rndm_local.file /mycont2/mydir/rndm_local.file
516

    
517
    * Check contents of both containers *
518
    [file]: list /mycont1
519
    [file]: list /mycont2
520
    1.      D mydir/
521
    2.    20M mydir/rndm_local.file
522

    
523
    * Copy file from 2nd to 1st container, with a new name *
524
    [file]: copy /mycont2/mydir/rndm_local.file /mycont1/rndm_remote.file
525

    
526
    * Check pasted file *
527
    [file]: list /mycont1
528
    1.    20M rndm_remote.file
529

    
530
    * Download pasted file to local file system *
531
    [file]: download /mycont1/rndm_remote.file
532
    Downloading: |||||||||||||||||   | 72%
533

    
534
    * Check if file is downloaded and if it is the same to original *
535
    [file]: !ls -lh *.file
536
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
537
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:42 rndm_remote.file
538
    [file]: !diff rndm_local.file rndm_remote.file
539

    
540
.. Note:: In kamaki shell, ! is used to execute OS shell commands (e.g., bash)