Revision c4f606c0

b/docs/commands.rst
1 1
List of commands
2 2
================
3 3

  
4
The commands described bellow are grouped by service. The examples showcase a
5
sample set of group commands. The kamaki interactive shell (check
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 can have the form of an id 
12
(e.g., `server delete <SERVER_ID>`) or a foreign key (e.g., 
13
`port create <NETWORK_ID> <DEVICE_ID>`)
14

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

  
9 19

  
10
user (Identity Manager)
20
user (Identity/Astakos)
11 21
-----------------------
12 22

  
13 23
.. code-block:: text
14 24

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

  
17 34
Showcase: get user information
18 35
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19 36

  
20
In the following, the token has been set in a previous step (see
37
In the following, cloud URL and TOKEN were set in a previous step (see
21 38
`setup section <setup.html>`_ or the
22 39
`quick setup guide <usage.html#quick-setup>`_)
23 40

  
......
28 45
    [kamaki]: user
29 46

  
30 47
    * Authenticate user *
31
    [user]: authenticate
48
    [user]: info
32 49
    ...
33
    user:
34
        name:  My Real Name
35
        uuid:  ab1cde23-45fg-6h7i-8j9k-10l1m11no2pq
50
    name:  My Real Name
51
    id:  ab1cde23-45fg-6h7i-8j9k-10l1m11no2pq
52

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

  
56
project (Astakos)
57
-----------------
58

  
59
.. code-block:: text
60

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

  
72
quota (Account/Astakos)
73
-----------------------
74

  
75
.. code-block:: text
36 76

  
37
.. note:: actual call returns a full list of service endpoints accessible to
38
    the user with a specific token
77
    list          Get user quotas
78
    info          Get quota for a service (cyclades, pithos, astakos)
79

  
80
resource (Astakos)
81
------------------
82

  
83
.. code-block:: text
84

  
85
    list          List user resources
39 86

  
40 87
flavor (Compute/Cyclades)
41 88
-------------------------
......
57 104
    * Get details about flavor with id 43 *
58 105
    [flavor]: info 43
59 106
    SNF:disk_template:  drbd
60
    cpu :  4
107
    cpu:  4
61 108
    disk:  10
62
    id  :  43
109
    id:  43
63 110
    name:  C4R2048D10
64
    ram :  2048
111
    ram:  2048
65 112

  
66
image (Plankton commands + Compute Image subcommands)
67
-----------------------------------------------------
113
image (Image/Plankton)
114
----------------------
68 115

  
69 116
.. code-block:: text
70 117

  
71
    list      :  List images accessible by user
72
    info      :  Get image metadata
73
    meta      :  Manage image metadata
74
        set     :   Add / update metadata and properties for an image
75
        delete  :   Remove/empty image metadata and/or custom properties
76
    register  :  (Re)Register an image
77
    unregister:  Unregister an image (does not delete the image file)
78
    shared    :  List shared images
79
    compute   :  Compute Image API commands
80
        list      :  List images
81
        delete    :  Delete image
82
        info      :  Get image details
83
        properties:  Manage properties related to OS installation in an image
84
            delete:  Delete a property from an image
85
            get   :  Get an image property
86
            list  :  List all image properties
87
            set   :  Add / update a set of properties for an image
88
    members   :  Manage members (users who can modify an image)
89
        add   :  Add a member to an image
90
        delete:  Remove a member from an image
91
        list  :  List members of an image
92
        set   :  Set the members of an image
118
    info          Get image metadata
119
    list          List images accessible by user
120
    register      (Re)Register an image file to an Image service
121
    modify        Add / update metadata and properties for an image
122
    unregister    Unregister an image (does not delete the image file)
93 123

  
94 124
Showcase: Pick an image and list the properties
95 125
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
......
104 134
    [image]: list
105 135
    926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008
106 136
     container_format:  bare
107
     disk_format     :  diskdump
108
     id              :  926ab1c5-2d85-49d4-aebe-0fce712789b9
109
     size            :  11917066240
110
     status          :  available
137
     disk_format:  diskdump
138
     id:  926ab1c5-2d85-49d4-aebe-0fce712789b9
139
     size:  11917066240
140
     status:  available
111 141
    78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012
112 142
     container_format:  bare
113
     disk_format     :  diskdump
114
     id              :  78262ee7-949e-4d70-af3a-85360c3de57a
115
     size            :  11697913856
116
     status          :  available
143
     disk_format:  diskdump
144
     id:  78262ee7-949e-4d70-af3a-85360c3de57a
145
     size:  11697913856
146
     status:  available
117 147
    5ed5a29b-292c-4fe0-b32c-2e2b65628635 ubuntu
118 148
     container_format:  bare
119
     disk_format     :  diskdump
120
     id              :  5ed5a29b-292c-4fe0-b32c-2e2b65628635
121
     size            :  2578100224
122
     status          :  available
149
     disk_format:  diskdump
150
     id:  5ed5a29b-292c-4fe0-b32c-2e2b65628635
151
     size:  2578100224
152
     status:  available
123 153
    1f8454f0-8e3e-4b6c-ab8e-5236b728dffe Debian_Wheezy_Base
124 154
     container_format:  bare
125
     disk_format     :  diskdump
126
     id              :  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
127
     size            :  795107328
128
     status          :  available
129

  
130
    * Get properties of image with id 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe *
131
    [image]: compute properties 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
132
    description   :  Debian 6.0.6 (Squeeze) Base System
133
    gui           :  No GUI
134
    kernel        :  2.6.32
135
    os            :  debian
136
    osfamily      :  linux
137
    root_partition:  1
138
    sortorder     :  1
139
    users         :  root
155
     disk_format:  diskdump
156
     id:  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
157
     size:  795107328
158
     status:  available
159

  
160
    * Get details for image with id 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe *
161
    [image]: info 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
162
     name: Debian_Wheezy_Base
163
     container_format:  bare
164
     disk_format:  diskdump
165
     id:  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
166
     size:  795107328
167
     status:  available
168
     owner:  s0m3-u53r-1d (user@example.com)
169
        DESCRIPTION:  Debian Wheezy Base (Stable)
170
        GUI:  No GUI
171
        KERNEL:  2.6.32
172
        OS:  debian
173
        OSFAMILY:  linux
174
        ROOT_PARTITION:  1
175
        SORTORDER:  1
176
        USERS:  root
177

  
178
imagecompute (Compute/Cyclades)
179
-------------------------------
180

  
181
.. code-block:: text
182

  
183
    info      Get detailed information on an image
184
    list      List images
185
    modify    Modify image properties (metadata)
186
    delete    Delete an image (WARNING: image file is also removed)
140 187

  
141 188
server (Compute/Cyclades)
142 189
-------------------------
143 190

  
144 191
.. code-block:: text
145 192

  
146
    addr    :  List a server nic address
147
    console :  Get a VNC console
148
    create  :  Create a server
149
    delete  :  Delete a server
150
    firewall:  Manage server firewall profile
151
        set :  Set the server firewall profile
152
        get :  Get the server firewall profile
153
    ip      :  Manage floating IPs for the servers
154
        attach:  Attach a floating ip to a server with server_id
155
        info  :  A floating IP details
156
        detach:  Detach floating ip from server
157
        list  :  List all floating ips
158
        create:  Create a new floating IP
159
        delete:  Delete a floating ip
160
        pools :  List all floating pools of floating ips
161
    info    :  Get server details
162
    list    :  List servers
163
    metadata:  Manage Server Metadata
164
        list  :  List server metadata
165
        set   :  Add / update server metadata
166
        delete:  Delete a piece of server metadata
167
    reboot  :  Reboot a server
168
    rename  :  Update a server name
169
    shutdown:  Shutdown a server
170
    start   :  Start a server
171
    stats   :  Get server statistics
172
    resize  :  Set a different flavor for an existing server
173
    wait    :  Wait for server to finish
193
    info      Detailed information on a Virtual Machine
194
    modify    Modify attributes of a virtual server
195
    create    Create a server (aka Virtual Machine)
196
    list      List virtual servers accessible by user
197
    reboot    Reboot a virtual server
198
    start     Start an existing virtual server
199
    shutdown  Shutdown an active virtual server
200
    delete    Delete a virtual server
201
    wait      Wait for server to finish [BUILD, STOPPED, REBOOT, ACTIVE]
174 202

  
175 203
Showcase: Create a server
176 204
^^^^^^^^^^^^^^^^^^^^^^^^^
......
178 206
.. code-block:: console
179 207
    :emphasize-lines: 1,4,21,35,44,62
180 208

  
181
    * Enter server context *
182 209
    [kamaki]: server
183 210

  
184
    * See server-create help *
185 211
    [server]: create -h
186
    usage: create <name> <flavor id> <image id>
212
    usage: create --name NAME --flavor-id FLAVOR_ID --image-id IMAGE_ID
187 213
            [--personality PERSONALITY] [-h] [--config CONFIG] [--cloud CLOUD]
188 214

  
189 215
    Create a server
......
223 249
    ram              :  1024
224 250

  
225 251
    * Create a debian server named 'My Small Debian Server'
226
    [server]: create 'My Small Debian Server' 1 b2dffe52-64a4-48c3-8a4c-8214cc3165cf
252
    [server]: create --name='My Small Debian Server' --flavor-id=1 --image-id=b2dffe52-64a4-48c3-8a4c-8214cc3165cf
227 253
    adminPass:  L8gu2wbZ94
228 254
    created  :  2012-11-23T16:56:04.190813+00:00
229 255
    flavorRef:  1
......
244 270
    Server 11687 still in BUILD mode |||||||||||||||||    | 80%
245 271
    Server 11687 is now in ACTIVE mode
246 272

  
247
.. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts
273
.. Note:: In kamaki shell, / is used to access commands from top-level
248 274

  
249

  
250
ip (Compute/Cyclades)
275
ip (Network/Cyclades)
251 276
---------------------
252 277

  
253 278
.. code-block:: text
254 279

  
255
    info:    Details for an IP
256
    list:    List reserved floating IPs
257
    attach:  Attach a floating IP to a server
258
    pools:   List pools of floating IPs
259
    release: Release a floating IP
260
    detach:  Detach a floating IP from a server
261
    reserve: Reserve a floating IP
280
    info      Get details on a floating IP
281
    create    Reserve an IP on a network
282
    list      List reserved floating IPs
283
    delete    Unreserve an IP (also delete the port, if attached)
284

  
285
port (Network/Cyclades)
286
-----------------------
287

  
288
.. code-block:: text
289

  
290
    info      Get details about a port
291
    list      List all ports
292
    create    Create a new port (== connect server to network)
293
    modify    Modify the attributes of a port
294
    delete    Delete a port (== disconnect server from network)
295
    wait      Wait for port to finish [ACTIVE, DOWN, BUILD, ERROR]
262 296

  
263 297
Showcase: Reserve and attach IP to server
264
-----------------------------------------
298
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
265 299

  
266 300
.. code-block:: text
267 301

  
268
    * Enter IP context *
269
    [kamaki]: ip
302
    * Enter port context *
303
    [kamaki]: port
270 304

  
271
    * Reserve an IP and see servers *
272
    [kamaki]: reserve
305
    * Reserve an IP and see servers and networks*
306
    [port]: /ip create
273 307
    123.456.78.9
274
    [kamaki]: /server list
308
    [port]: /server list
275 309
    42   My Windows Server
276 310
    43   My Linux Server
311
    [port]: /network list
312
    101  My Network 1
313
    102  My Network 2
277 314

  
278 315
    * Attach IP to server
279
    [kamaki]: attach 43 123.456.78.9
316
    [port]: port create --device-id=43 --network-id=101 --ip-address=123.456.78.9 --wait
317
    Creating new port 7 between server 43 and network 101
318
    Port 7 still in BUILD mode |||||||||||||||||    | 80%
319
    Port 7 is now in ACTIVE mode
280 320

  
281 321
.. Note:: In kamaki shell, / is used to access top-level command groups while
282 322
    working in command group contexts
......
286 326

  
287 327
.. code-block:: text
288 328

  
289
    connect   :  Connect a server to a network
290
    create    :  Create a network
291
    delete    :  Delete a network
292
    disconnect:  Disconnect a nic of a server to a network
293
    info      :  Get network details
294
    list      :  List networks
295
    rename    :  Update network name
329
    info        Get details about a network
330
    disconnect  Disconnect a network from a device
331
    modify      Modify network attributes
332
    create      Create a new network
333
    list        List networks
334
    connect     Connect a network with a device (server or router)
335
    delete      Delete a network
296 336

  
297 337
Showcase: Connect a network to a VM
298 338
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
......
311 351
    * Try network-connect (to get help) *
312 352
    [network]: connect 
313 353
    Syntax error
314
    usage: connect <server id> <network id> [-s] [-h] [-i] [--config CONFIG]
354
    usage: connect <network id> <device id> [-s] [-h] [-i] [--config CONFIG]
315 355

  
316 356
    Connect a server to a network
317 357

  
......
324 364
      -v,--verbose:  More info at response
325 365

  
326 366
    * Connect VM with id 11687 to network with id 1409
327
    [network]: connect 11687 1409
367
    [network]: connect 11687 1409 --wait
368
    Creating port between network 1409 and server 11687
369
    New port: 8
328 370

  
329 371
    * Get details on network with id 1409
330 372
    [network]: info 1409
331
      attachments: 
332
                 nic-11687-1
373
      attachments:
374
                8
333 375
      cidr    :  192.168.1.0/24
334 376
      cidr6   :  None
335 377
      created :  2012-11-23T17:17:20.560098+00:00
......
344 386
      updated :  2012-11-23T17:18:25.095225+00:00
345 387

  
346 388
    * Get connectivity details on VM with id 11687 *
347
    [network]: /server addr 11687
348
    id:  nic-11687-1
389
    [network]: /server info 11687 --nics 
390
    nic-11687-1
349 391
        ipv4       :  192.168.1.1
350 392
        ipv6       :  None
351 393
        mac_address:  aa:0f:c2:0b:0e:85
352 394
        network_id :  1409
353 395
        firewallProfile:  DISABLED
354
    id:  nic-11687-0
396
    nic-11687-0
355 397
        ipv4           :  83.212.106.111
356 398
        ipv6           :  2001:648:2ffc:1116:a80c:f2ff:fe12:a9e
357 399
        mac_address    :  aa:0c:f2:12:0a:9e
......
359 401

  
360 402
.. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts
361 403

  
404
container (Storage/Pithos+)
405
---------------------------
406

  
407
    info      Get information about a container
408
    modify    Modify the properties of a container
409
    create    Create a new container
410
    list      List all containers, or their contents
411
    empty     Empty a container
412
    delete    Delete a container
413

  
414
group (Storage/Pithos+)
415
-----------------------
416

  
417
    create    Create a group of users
418
    list      List all groups and group members
419
    delete    Delete a user group
420

  
421
sharer (Storage/Pithos+)
422
------------------------
423

  
424
    info      Details on a Pithos+ sharer account (default: current account)
425
    list      List accounts who share file objects with current user
426

  
362 427
file (Storage/Pithos+)
363 428
----------------------
364 429

  
365 430
.. code-block:: text
366 431

  
367
    append        :  Append local file to remote
368
    cat           :  Print a file to console
369
    copy          :  Copy an object
370
    containerlimit:  Container size limit commands
371
        set       :  Set container data limit
372
        get       :  Get container data limit
373
    create        :  Create a container
374
    delete        :  Delete a container [or an object]
375
    download      :  Download a file or directory
376
    group         :  Manage access groups and group members
377
        delete:  Delete a user group
378
        list  :  List groups and group members
379
        set   :  Set a user group
380
    hashmap       :  Get the hashmap of an object
381
    info          :  Get information for account [, container [or object]]
382
    list          :  List containers, object trees or objects in a directory
383
    manifest      :  Create a remote file with uploaded parts by manifestation
384
    metadata      :  Metadata are attached on objects (key:value pairs)
385
        delete:  Delete metadata with given key
386
        get   :  Get metadatum
387
        set   :  Set a piece of metadata
388
    mkdir         :  Create a directory
389
    move          :  Copy an object
390
    overwrite     :  Overwrite part (from start to end) of a remote file
391
    permissions   :  Manage user and group accessibility for objects
392
        delete:  Delete all permissions set on object
393
        get   :  Get read and write permissions of an object
394
        set   :  Set permissions for an object
395
    publish       :  Publish an object
396
    purge         :  Purge a container
397
    quota         :  Get  quota for account
398
    sharers       :  List the accounts that share objects with default account
399
    touch         :  Create an empty object (file)
400
    truncate      :  Truncate remote file up to a size
401
    unpublish     :  Unpublish an object
402
    upload        :  Upload a file or directory
403
    versioning    :  Manage the versioning scheme of current pithos user account
404
        get:  Get  versioning for account or container
405
        set:  Set versioning mode (auto, none) for account or container
406
    versions      :  Get the version list of an object
432
    info      Get information/details about a file
433
    truncate  Truncate remote file up to size
434
    mkdir     Create a directory
435
    create    Create an empty file
436
    move      Move objects, even between different accounts or containers
437
    list      List all objects in a container or a directory object
438
    upload    Upload a file
439
    cat       Fetch remote file contents
440
    modify    Modify the attributes of a file or directory object
441
    append    Append local file to (existing) remote object
442
    download  Download a remove file or directory object to local file system
443
    copy      Copy objects, even between different accounts or containers
444
    overwrite Overwrite part of a remote file
445
    delete    Delete a file or directory object
407 446

  
408 447
Showcase: Upload and download a file
409 448
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
......
427 466

  
428 467

  
429 468
    * Create two containers *
430
    [file]: create mycont1
431
    [file]: create mycont2
469
    [file]: /container create mycont1
470
    [file]: /container create mycont2
432 471

  
433 472

  
434 473
    * List accessible containers *    
435
    [file]: list
474
    [file]: /container list
436 475
    1. mycont1 (0B, 0 objects)
437 476
    2. mycont2 (0B, 0 objects)
438 477
    3. pithos (0B, 0 objects)
......
440 479

  
441 480

  
442 481
    * Upload local file to 1st container *
443
    [file]: upload rndm_local.file mycont1
482
    [file]: upload /mycont1/rndm_local.file
444 483

  
445 484

  
446 485
    * Check if file has been uploaded *
447
    [file]: list mycont1
486
    [file]: list /mycont1
448 487
    1.    20M rndm_local.file
449 488

  
450 489
    * Create directory mydir on second container *
451
    [file]: mkdir mycont2:mydir
452

  
490
    [file]: mkdir /mycont2/mydir
453 491

  
454 492
    * Move file from 1st to 2nd container (and in the directory) *
455
    [file]: move mycont1:rndm_local.file mycont2:mydir/rndm_local.file
493
    [file]: move /mycont1/rndm_local.file /mycont2/mydir/rndm_local.file
456 494

  
457 495
    * Check contents of both containers *
458
    [file]: list mycont1
459
    [file]: list mycont2
496
    [file]: list /mycont1
497
    [file]: list /mycont2
460 498
    1.      D mydir/
461 499
    2.    20M mydir/rndm_local.file
462 500

  
463

  
464 501
    * Copy file from 2nd to 1st container, with a new name *
465
    [file]: copy mycont2:mydir/rndm_local.file mycont1:rndm_remote.file
466

  
502
    [file]: copy /mycont2/mydir/rndm_local.file /mycont1/rndm_remote.file
467 503

  
468 504
    * Check pasted file *
469
    [file]: list mycont1
505
    [file]: list /mycont1
470 506
    1.    20M rndm_remote.file
471 507

  
472

  
473 508
    * Download pasted file to local file system *
474
    [file]: download mycont1:rndm_remote.file rndm_remote.file
475

  
509
    [file]: download /mycont1/rndm_remote.file
510
    Downloading: |||||||||||||||||   | 72%
476 511

  
477 512
    * Check if file is downloaded and if it is the same to original *
478 513
    [file]: !ls -lh *.file
......
481 516
    [file]: !diff rndm_local.file rndm_remote.file
482 517

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

  
485
.. warning:: The container:object/path syntax does not function if the
486
    container and / or the object path contain one or more : characters. To use
487
    containers and objects with : use the --container and --dst-container
488
    arguments, e.g., to copy test.py object from example:dev container to
489
    example:deploy ::
490

  
491
        $ kamaki file copy --container=example:dev test.py --dst-container=example:deploy
b/docs/overview.rst
42 42

  
43 43
* internally by the Synnefo development team to test the Synnefo software,
44 44

  
45
* by the deployment team which operates GRNET ~okeanos service
45
* by the deployment team which operates `GRNET ~okeanos` service
46 46

  
47
* as the main Pithos+ client in Linux and other Unix-like environments
47
* as the main `Pithos+` client in Linux and other Unix-like environments, as
48
    well as in windows and osx by users with a preference for command line
48 49

  
49
* by third-party Synnefo deployers for testing and debugging their setup
50
* by third-party `Synnefo` deployers for testing and debugging their setup
50 51

  
51
* as an API library for other components in the Synnefo universe.
52
* as an API library for other components in the Synnefo universe ((`burnin`,
53
    `image-creator`) or external applications
52 54

  
53 55
Community & Support
54 56
-------------------

Also available in: Unified diff