Statistics
| Branch: | Tag: | Revision:

root / docs / commands.rst @ cd295a1d

History | View | Annotate | Download (14.4 kB)

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

    
4
The commands described bellow are grouped by service. The examples showcase a sample set of group commands. The kamaki interactive shell (check `Usage section <usage.html#interactive-shell>`_ for details) is chosen as the execution environment.
5

    
6

    
7
user (Identity Manager)
8
-----------------------
9

    
10
.. code-block:: text
11

    
12
    authenticate:  Authenticate a user
13

    
14
Showcase: get user information
15
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16

    
17
In the following, the token has been set in a previous step (see `setup section <setup.html>`_ or the `quick setup guide <usage.html#quick-setup>`_)
18

    
19
.. code-block:: console
20
    :emphasize-lines: 1,4
21

    
22
    * Enter user context *
23
    [kamaki]: user
24

    
25
    * Authenticate user *
26
    [user]: authenticate
27
    auth_token_created:  2012-11-13T14:12:40.917034
28
    auth_token_expires:  2012-12-13T14:12:40.917035
29
    email             :  
30
                       myaccount@grnet.gr
31
                       myotheraccount@grnet.gr
32
    name              :  My Real Name
33
    username          :  usually@an.email.org
34
    uuid              :  ab1cde23-45fg-6h7i-8j9k-10l1m11no2pq
35

    
36
flavor (Compute/Cyclades)
37
-------------------------
38

    
39
.. code-block:: text
40

    
41
    info:  Get flavor details
42
    list:  List flavors
43

    
44
Showcase: show details for flavor with id 43
45
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46

    
47
.. code-block:: console
48
    :emphasize-lines: 1,4
49

    
50
    * Enter flavor context *
51
    [kamaki]: flavor
52

    
53
    * Get details about flavor with id 43 *
54
    [flavor]: info 43
55
    SNF:disk_template:  drbd
56
    cpu              :  4
57
    disk             :  10
58
    id               :  43
59
    name             :  C4R2048D10
60
    ram              :  2048
61

    
62
image (Plankton commands + Compute Image subcommands)
63
-----------------------------------------------------
64

    
65
.. code-block:: text
66

    
67
    list       :  List images accessible by user
68
    meta       :  Get image metadata
69
    register   :  (Re)Register an image
70
    unregister :  Unregister an image (does not delete the image file)
71
    shared     :  List shared images
72
    compute    :  Compute Image API commands
73
        list       :  List images
74
        delete     :  Delete image
75
        info       :  Get image details
76
        properties :  Manage properties related to OS installation in an image
77
            add   :  Add a property to an image
78
            delete:  Delete a property from an image
79
            get   :  Get an image property
80
            list  :  List all image properties
81
            set   :  Add / update a set of properties for an image
82
    members    :  Manage members (users who can modify an image)
83
        add    :  Add a member to an image
84
        delete :  Remove a member from an image
85
        list   :  List members of an image
86
        set    :  Set the members of an image
87

    
88
Showcase: Pick an image and list the properties
89
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
90

    
91
.. code-block:: console
92
    :emphasize-lines: 1,4,18
93

    
94
    * Enter image context *
95
    [kamaki]: image
96

    
97
    * list all available images *
98
    [image]: list
99
    1. Windows Server 2008
100
     container_format:  bare
101
     disk_format     :  diskdump
102
     id              :  926ab1c5-2d85-49d4-aebe-0fce712789b9
103
     size            :  11917066240
104
     status          :  available
105
    2. Windows Server 2012
106
     container_format:  bare
107
     disk_format     :  diskdump
108
     id              :  78262ee7-949e-4d70-af3a-85360c3de57a
109
     size            :  11697913856
110
     status          :  available
111
    3. ubuntu
112
     container_format:  bare
113
     disk_format     :  diskdump
114
     id              :  5ed5a29b-292c-4fe0-b32c-2e2b65628635
115
     size            :  2578100224
116
     status          :  available
117
    4. Debian_Wheezy_Base
118
     container_format:  bare
119
     disk_format     :  diskdump
120
     id              :  1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
121
     size            :  795107328
122
     status          :  available
123

    
124
    * Get properties of image with id 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe *
125
    [image]: compute properties 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
126
    description   :  Debian 6.0.6 (Squeeze) Base System
127
    gui           :  No GUI
128
    kernel        :  2.6.32
129
    os            :  debian
130
    osfamily      :  linux
131
    root_partition:  1
132
    sortorder     :  1
133
    users         :  root
134

    
135
server (Compute/Cyclades)
136
-------------------------
137

    
138
.. code-block:: text
139

    
140
    addr    :  List a server's nic address
141
    console :  Get a VNC console
142
    create  :  Create a server
143
    delete  :  Delete a server
144
    firewall:  Manage server's firewall profile
145
        set :  Set the server's firewall profile
146
        get :  Get the server's firewall profile
147
    info    :  Get server details
148
    list    :  List servers
149
    metadata:  Manage Server Metadata
150
        list  :  List server metadata
151
        set   :  Add / update server metadata
152
        delete:  Delete a piece of server metadata
153
    meta    :  Get a server's metadata
154
    reboot  :  Reboot a server
155
    rename  :  Update a server's name
156
    shutdown:  Shutdown a server
157
    start   :  Start a server
158
    stats   :  Get server statistics
159
    wait    :  Wait for server to finish
160

    
161
Showcase: Create a server
162
^^^^^^^^^^^^^^^^^^^^^^^^^
163

    
164
.. code-block:: console
165
    :emphasize-lines: 1,4,21,35,44,62
166

    
167
    * Enter server context *
168
    [kamaki]: server
169

    
170
    * See server-create help *
171
    [server]: create -h
172
    usage: create <name> <flavor id> <image id>
173
            [--personality PERSONALITY] [-h] [--config CONFIG]
174

    
175
    Create a server
176

    
177
    optional arguments:
178
      -v, --verbose         More info at response
179
      --personality PERSONALITY
180
                            add a personality file
181
      -d, --debug           Include debug output
182
      -h, --help            Show help message
183
      -i, --include         Include protocol headers in the output
184
      --config CONFIG       Path to configuration file
185
      -s, --silent          Do not output anything
186

    
187
    * List all available images *
188
    [server]: /image compute list
189
    1395fdfb-51b4-419f-bb02-f7d632860611 Ubuntu Desktop LTS
190
    1580deb4-edb3-4496-a27f-7a246c4c0528 Ubuntu Desktop
191
    18a82962-43eb-4b32-8e28-8f8880af89d7 Kubuntu LTS
192
    6aa6eafd-dccb-422d-a904-67fe2bdde87e Debian Desktop
193
    6b5681e4-7502-46ae-b1e9-9fd837932095 maelstrom
194
    78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012
195
    86bc2414-0fb3-4898-a637-240292243302 Fedora
196
    926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008
197
    b2dffe52-64a4-48c3-8a4c-8214cc3165cf Debian Base
198
    baf2321c-57a0-4a69-825d-49f49cea163a CentOS
199
    c1d27b46-d875-4f5c-b7f1-f39b5af62905 Kubuntu
200

    
201
    * See details of flavor with id 1 *
202
    [server]: /flavor info 1
203
    SNF:disk_template:  drbd
204
    cpu              :  1
205
    disk             :  20
206
    id               :  1
207
    name             :  C1R1024D20
208
    ram              :  1024
209

    
210
    * Create a debian server named 'My Small Debian Server'
211
    [server]: create 'My Small Debian Server' 1 b2dffe52-64a4-48c3-8a4c-8214cc3165cf
212
    adminPass:  L8gu2wbZ94
213
    created  :  2012-11-23T16:56:04.190813+00:00
214
    flavorRef:  1
215
    hostId   :  
216
    id       :  11687
217
    imageRef :  b2dffe52-64a4-48c3-8a4c-8214cc3165cf
218
    metadata : 
219
             values: 
220
                   os   :  debian
221
                   users:  root
222
    name     :  My Small Debian Server
223
    progress :  0
224
    status   :  BUILD
225
    suspended:  False
226
    updated  :  2012-11-23T16:56:04.761962+00:00
227

    
228
    * wait for server to build (optional) *
229
    [server]: wait 11687
230
    Server 11687 still in BUILD mode |||||||||||||||||    | 80%
231
    Server 11687 is now in ACTIVE mode
232

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

    
235
network (Compute/Cyclades)
236
--------------------------
237

    
238
.. code-block:: text
239

    
240
    connect   :  Connect a server to a network
241
    create    :  Create a network
242
    delete    :  Delete a network
243
    disconnect:  Disconnect a nic of a server to a network
244
    info      :  Get network details
245
    list      :  List networks
246
    rename    :  Update network name
247

    
248
Showcase: Connect a network to a VM
249
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
250

    
251
.. code-block:: console
252
    :emphasize-lines: 1,4,9,24,27,44
253

    
254
    * Enter network context *
255
    [kamaki]: network
256

    
257
    * List user-owned VMs *
258
    [network]: /server list
259
    11687 (My Small Debian Server)
260
    11688 (An Ubuntu server)
261

    
262
    * Try network-connect (to get help) *
263
    [network]: connect 
264
    Syntax error
265
    usage: connect <server id> <network id> [-s] [-h] [-i] [--config CONFIG]
266

    
267
    Connect a server to a network
268

    
269
    Syntax: connect  <server id> <network id>
270
      --config    :  Path to configuration file
271
      -d,--debug  :  Include debug output
272
      -h,--help   :  Show help message
273
      -i,--include:  Include protocol headers in the output
274
      -s,--silent :  Do not output anything
275
      -v,--verbose:  More info at response
276

    
277
    * Connect VM with id 11687 to network with id 1409
278
    [network]: connect 11687 1409
279

    
280
    * Get details on network with id 1409
281
    [network]: info 1409
282
      attachments: 
283
                 nic-11687-1
284
      cidr       :  192.168.1.0/24
285
      cidr6      :  None
286
      created    :  2012-11-23T17:17:20.560098+00:00
287
      dhcp       :  True
288
      gateway    :  None
289
      gateway6   :  None
290
      id         :  1409
291
      name       :  my network
292
      public     :  False
293
      status     :  ACTIVE
294
      type       :  PRIVATE_MAC_FILTERED
295
      updated    :  2012-11-23T17:18:25.095225+00:00
296

    
297
    * Get connectivity details on VM with id 11687 *
298
    [network]: /server addr 11687
299
    id:  nic-11687-1
300
        ipv4       :  192.168.1.1
301
        ipv6       :  None
302
        mac_address:  aa:0f:c2:0b:0e:85
303
        network_id :  1409
304
        firewallProfile:  DISABLED
305
    id:  nic-11687-0
306
        ipv4           :  83.212.106.111
307
        ipv6           :  2001:648:2ffc:1116:a80c:f2ff:fe12:a9e
308
        mac_address    :  aa:0c:f2:12:0a:9e
309
        network_id     :  1369
310

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

    
313
file (Storage/Pithos+)
314
----------------------
315

    
316
.. code-block:: text
317

    
318
    append        :  Append local file to remote
319
    cat           :  Print a file to console
320
    copy          :  Copy an object
321
    containerlimit:  Container size limit commands
322
        set       :  Set container data limit
323
        get       :  Get container data limit
324
    create        :  Create a container
325
    delete        :  Delete a container [or an object]
326
    download      :  Download a file or directory
327
    group         :  Manage access groups and group members
328
        delete:  Delete a user group
329
        get   :  Get groups and group members
330
        set   :  Set a user group
331
    hashmap       :  Get the hashmap of an object
332
    info          :  Get information for account [, container [or object]]
333
    list          :  List containers, object trees or objects in a directory
334
    manifest      :  Create a remote file with uploaded parts by manifestation
335
    metadata      :  Metadata are attached on objects (key:value pairs)
336
        delete:  Delete metadata with given key
337
        get   :  Get metadatum
338
        set   :  Set a piece of metadata
339
    mkdir         :  Create a directory
340
    move          :  Copy an object
341
    overwrite     :  Overwrite part (from start to end) of a remote file
342
    permissions   :  Manage user and group accessibility for objects
343
        delete:  Delete all permissions set on object
344
        get   :  Get read and write permissions of an object
345
        set   :  Set permissions for an object
346
    publish       :  Publish an object
347
    purge         :  Purge a container
348
    quota         :  Get  quota for account
349
    sharers       :  List the accounts that share objects with default account
350
    touch         :  Create an empty object (file)
351
    truncate      :  Truncate remote file up to a size
352
    unpublish     :  Unpublish an object
353
    upload        :  Upload a file or directory
354
    versioning    :  Manage the versioning scheme of current pithos user account
355
        get:  Get  versioning for account or container
356
        set:  Set versioning mode (auto, none) for account or container
357
    versions      :  Get the version list of an object
358

    
359
Showcase: Upload and download a file
360
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
361

    
362
.. code-block:: console
363
    :emphasize-lines: 1,7,11,16,21,29,33,37,41,44,51,55,60,64
364

    
365
    * Create a random binarry file at current OS path *
366
    [kamaki]: !dd bs=4M if=/dev/zero of=rndm_local.file count=5
367
    5+0 records in
368
    5+0 records out
369
    20971520 bytes (21 MB) copied, 0.016162 s, 1.3 GB/s
370

    
371
    * Enter file context *
372
    [kamaki]: file
373

    
374

    
375
    * Check local file *
376
    [file]: !ls -lh rndm_local.file
377
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
378

    
379

    
380
    * Create two containers *
381
    [file]: create mycont1
382
    [file]: create mycont2
383

    
384

    
385
    * List accessible containers *    
386
    [file]: list
387
    1. mycont1 (0B, 0 objects)
388
    2. mycont2 (0B, 0 objects)
389
    3. pithos (0B, 0 objects)
390
    4. trash (0B, 0 objects)
391

    
392

    
393
    * Upload local file to 1st container *
394
    [file]: upload rndm_local.file mycont1
395

    
396

    
397
    * Check if file has been uploaded *
398
    [file]: list mycont1
399
    1.    20M rndm_local.file
400

    
401
    * Create directory mydir on second container *
402
    [file]: mkdir mycont2:mydir
403

    
404

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

    
408
    * Check contents of both containers *
409
    [file]: list mycont1
410
    [file]: list mycont2
411
    1.      D mydir/
412
    2.    20M mydir/rndm_local.file
413

    
414

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

    
418

    
419
    * Check pasted file *
420
    [file]: list mycont1
421
    1.    20M rndm_remote.file
422

    
423

    
424
    * Download pasted file to local file system *
425
    [file]: download mycont1:rndm_remote.file rndm_remote.file
426

    
427

    
428
    * Check if file is downloaded and if it is the same to original *
429
    [file]: !ls -lh *.file
430
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
431
    -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:42 rndm_remote.file
432
    [file]: !diff rndm_local.file rndm_remote.file
433

    
434
.. Note:: In kamaki shell, ! is used to execute OS shell commands (bash in the above)
435

    
436
.. warning:: The container:object/path syntax does not function if the container and / or the object path contain one or more : characters. To use containers and objects with : use the --container and --dst-container arguments, e.g. to copy test.py object from grnet:dev container to grnet:deploy ::
437

    
438
        $ kamaki file copy --container=grnet:dev test.py --dst-container=grnet:deploy