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.
-astakos (Identity Manager)
---------------------------
+user (Identity Manager)
+-----------------------
.. code-block:: text
.. code-block:: console
:emphasize-lines: 1,4
- * Enter astakos context *
- [kamaki]:astakos
+ * Enter user context *
+ [kamaki]: user
* Authenticate user *
- [astakos]:authenticate
+ [user]: authenticate
auth_token_created: 2012-11-13T14:12:40.917034
auth_token_expires: 2012-12-13T14:12:40.917035
email :
name : C4R2048D10
ram : 2048
-image (Compute/Cyclades + Plankton)
------------------------------------
+image (Plankton commands + Compute Image subcommands)
+-----------------------------------------------------
.. code-block:: text
addmember : Add a member to an image
addproperty: Add an image property
- delete : Delete image
delmember : Remove a member from an image
- delproperty: Delete an image property
- info : Get image details
- list : List images
+ list : List images accessible by user
members : Get image members
meta : Get image metadata
- properties : Get image properties
- public : List public images
register : (Re)Register an image
setmembers : Set the members of an image
- setproperty: Update an image property
shared : List shared images
+ compute : Compute Image API commands
+ list : List images
+ delete : Delete image
+ info : Get image details
+ properties : Get image properties
+ delproperty: Delete an image property
+ setproperty: Update an image property
Showcase: Pick an image and list the properties
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:emphasize-lines: 1,4,18
* Enter image context *
- [kamaki]:image
+ [kamaki]: image
* list all available images *
- [image]:list
- 1395fdfb-51b4-419f-bb02-f7d632860611 Ubuntu Desktop LTS
- 1580deb4-edb3-4496-a27f-7a246c4c0528 Ubuntu Desktop
- 18a82962-43eb-4b32-8e28-8f8880af89d7 Kubuntu LTS
- 6aa6eafd-dccb-422d-a904-67fe2bdde87e Debian Desktop
- 6b5681e4-7502-46ae-b1e9-9fd837932095 maelstrom
- 78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012
- 86bc2414-0fb3-4898-a637-240292243302 Fedora
- 926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008
- b2dffe52-64a4-48c3-8a4c-8214cc3165cf Debian Base
- baf2321c-57a0-4a69-825d-49f49cea163a CentOS
- c1d27b46-d875-4f5c-b7f1-f39b5af62905 Kubuntu
-
- * Get properties of image with id b2dffe52-64a4-48c3-8a4c-8214cc3165cf *
- [image]:properties b2dffe52-64a4-48c3-8a4c-8214cc3165cf
+ [image]: list
+ 1. Windows Server 2008
+ container_format: bare
+ disk_format : diskdump
+ id : 926ab1c5-2d85-49d4-aebe-0fce712789b9
+ size : 11917066240
+ status : available
+ 2. Windows Server 2012
+ container_format: bare
+ disk_format : diskdump
+ id : 78262ee7-949e-4d70-af3a-85360c3de57a
+ size : 11697913856
+ status : available
+ 3. ubuntu
+ container_format: bare
+ disk_format : diskdump
+ id : 5ed5a29b-292c-4fe0-b32c-2e2b65628635
+ size : 2578100224
+ status : available
+ 4. Debian_Wheezy_Base
+ container_format: bare
+ disk_format : diskdump
+ id : 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
+ size : 795107328
+ status : available
+
+ * Get properties of image with id 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe *
+ [image]: compute properties 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe
description : Debian 6.0.6 (Squeeze) Base System
gui : No GUI
kernel : 2.6.32
:emphasize-lines: 1,4,21,35,44,62
* Enter server context *
- [kamaki]:server
+ [kamaki]: server
* See server-create help *
- [server]:create -h
+ [server]: create -h
usage: create <name> <flavor id> <image id>
[--personality PERSONALITY] [-h] [--config CONFIG]
-s, --silent Do not output anything
* List all available images *
- [server]:/image list
+ [server]: /image compute list
1395fdfb-51b4-419f-bb02-f7d632860611 Ubuntu Desktop LTS
1580deb4-edb3-4496-a27f-7a246c4c0528 Ubuntu Desktop
18a82962-43eb-4b32-8e28-8f8880af89d7 Kubuntu LTS
c1d27b46-d875-4f5c-b7f1-f39b5af62905 Kubuntu
* See details of flavor with id 1 *
- [server]:/flavor info 1
+ [server]: /flavor info 1
SNF:disk_template: drbd
cpu : 1
disk : 20
ram : 1024
* Create a debian server named 'My Small Debian Server'
- [server]:create 'My Small Debian Server' 1 b2dffe52-64a4-48c3-8a4c-8214cc3165cf
+ [server]: create 'My Small Debian Server' 1 b2dffe52-64a4-48c3-8a4c-8214cc3165cf
adminPass: L8gu2wbZ94
created : 2012-11-23T16:56:04.190813+00:00
flavorRef: 1
updated : 2012-11-23T16:56:04.761962+00:00
* wait for server to build (optional) *
- [server]:wait 11687
+ [server]: wait 11687
Server 11687 still in BUILD mode ||||||||||||||||| | 80%
Server 11687 is now in ACTIVE mode
:emphasize-lines: 1,4,9,24,27,44
* Enter network context *
- [kamaki]:network
+ [kamaki]: network
* List user-owned VMs *
- [network]:/server list
+ [network]: /server list
11687 (My Small Debian Server)
11688 (An Ubuntu server)
* Try network-connect (to get help) *
- [network]:connect
+ [network]: connect
Syntax error
usage: connect <server id> <network id> [-s] [-h] [-i] [--config CONFIG]
[network]: connect 11687 1409
* Get details on network with id 1409
- [network]:info 1409
+ [network]: info 1409
attachments:
nic-11687-1
cidr : 192.168.1.0/24
updated : 2012-11-23T17:18:25.095225+00:00
* Get connectivity details on VM with id 11687 *
- [network]:/server addr 11687
+ [network]: /server addr 11687
id: nic-11687-1
ipv4 : 192.168.1.1
ipv6 : None
.. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts
-store (Storage/Pithos+)
------------------------
+file (Storage/Pithos+)
+----------------------
.. code-block:: text
delgroup : Delete a user group
delmeta : Delete an existing metadatum for an account [, container [or object]]
delpermissions: Delete all sharing permissions
- download : Download a file
+ download : Download a file or directory
group : Get user groups details
hashmap : Get the hashmap of an object
info : Get information for account [, container [or object]]
permissions : Get object read/write permissions
publish : Publish an object
purge : Purge a container
- quota : Get quota for account [or container]
+ quota : Get quota for account
setgroup : Create/update a new user group
setmeta : Set a new metadatum for account [, container [or object]]
setpermissions: Set sharing permissions
- setquota : Set new quota (in KB) for account [or container]
+ containerlimit: Container size limit commands
+ set : Set container data limit
+ get : Get container data limit
setversioning : Set new versioning (auto, none) for account [or container]
sharers : List the accounts that share objects with default account
touch : Create an empty object (file)
truncate : Truncate remote file up to a size
unpublish : Unpublish an object
- upload : Upload a file
+ upload : Upload a file or directory
versioning : Get versioning for account [or container ]
versions : Get the version list of an object
:emphasize-lines: 1,7,11,16,21,29,33,37,41,44,51,55,60,64
* Create a random binarry file at current OS path *
- [kamaki]:!dd bs=4M if=/dev/zero of=rndm_local.file count=5
+ [kamaki]: !dd bs=4M if=/dev/zero of=rndm_local.file count=5
5+0 records in
5+0 records out
20971520 bytes (21 MB) copied, 0.016162 s, 1.3 GB/s
- * Enter store context *
- [kamaki]:store
+ * Enter file context *
+ [kamaki]: file
* Check local file *
- [store]:!ls -lh rndm_local.file
+ [file]: !ls -lh rndm_local.file
-rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
* Create two containers *
- [store]:create mycont1
- [store]:create mycont2
+ [file]: create mycont1
+ [file]: create mycont2
* List accessible containers *
- [store]:list
+ [file]: list
1. mycont1 (0B, 0 objects)
2. mycont2 (0B, 0 objects)
3. pithos (0B, 0 objects)
* Upload local file to 1st container *
- [store]:upload rndm_local.file mycont1
+ [file]: upload rndm_local.file mycont1
* Check if file has been uploaded *
- [store]:list mycont1
+ [file]: list mycont1
1. 20M rndm_local.file
* Create directory mydir on second container *
- [store]:mkdir mycont2:mydir
+ [file]: mkdir mycont2:mydir
* Move file from 1st to 2nd container (and in the directory) *
- [store]:move mycont1:rndm_local.file mycont2:mydir/rndm_local.file
+ [file]: move mycont1:rndm_local.file mycont2:mydir/rndm_local.file
* Check contents of both containers *
- [store]:list mycont1
- [store]:list mycont2
+ [file]: list mycont1
+ [file]: list mycont2
1. D mydir/
2. 20M mydir/rndm_local.file
* Copy file from 2nd to 1st container, with a new name *
- [store]:copy mycont2:mydir/rndm_local.file mycont1:rndm_remote.file
+ [file]: copy mycont2:mydir/rndm_local.file mycont1:rndm_remote.file
* Check pasted file *
- [store]:list mycont1
+ [file]: list mycont1
1. 20M rndm_remote.file
* Download pasted file to local file system *
- [store]:download mycont1:rndm_remote.file rndm_remote.file
+ [file]: download mycont1:rndm_remote.file rndm_remote.file
* Check if file is downloaded and if it is the same to original *
- [store]:!ls -lh *.file
+ [file]: !ls -lh *.file
-rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file
-rw-rw-r-- 1 ******** ******** 20M Nov 26 15:42 rndm_remote.file
- [store]:!diff rndm_local.file rndm_remote.file
+ [file]: !diff rndm_local.file rndm_remote.file
.. Note:: In kamaki shell, ! is used to execute OS shell commands (bash in the above)
.. 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 ::
- $ kamaki store copy --container=grnet:dev test.py --dst-container=grnet:deploy
+ $ kamaki file copy --container=grnet:dev test.py --dst-container=grnet:deploy