List of commands ================ The commands described bellow are grouped by service. The examples showcase a sample set of group commands. The kamaki interactive shell (check `Usage section `_ for details) is chosen as the execution environment. user (Identity Manager) ----------------------- .. code-block:: text authenticate: Authenticate a user Showcase: get user information ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In the following, the token has been set in a previous step (see `setup section `_ or the `quick setup guide `_) .. code-block:: console :emphasize-lines: 1,4 * Enter user context * [kamaki]: user * Authenticate user * [user]: authenticate ... user: name: My Real Name uuid: ab1cde23-45fg-6h7i-8j9k-10l1m11no2pq .. note:: actual call returns a full list of service endpoints accessible to the user with a specific token flavor (Compute/Cyclades) ------------------------- .. code-block:: text info: Get flavor details list: List flavors Showcase: show details for flavor with id 43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console :emphasize-lines: 1,4 * Enter flavor context * [kamaki]: flavor * Get details about flavor with id 43 * [flavor]: info 43 SNF:disk_template: drbd cpu : 4 disk: 10 id : 43 name: C4R2048D10 ram : 2048 image (Plankton commands + Compute Image subcommands) ----------------------------------------------------- .. code-block:: text list : List images accessible by user info : Get image metadata meta : Manage image metadata set : Add / update metadata and properties for an image delete : Remove/empty image metadata and/or custom properties register : (Re)Register an image unregister: Unregister an image (does not delete the image file) shared : List shared images compute : Compute Image API commands list : List images delete : Delete image info : Get image details properties: Manage properties related to OS installation in an image delete: Delete a property from an image get : Get an image property list : List all image properties set : Add / update a set of properties for an image members : Manage members (users who can modify an image) add : Add a member to an image delete: Remove a member from an image list : List members of an image set : Set the members of an image Showcase: Pick an image and list the properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console :emphasize-lines: 1,4,18 * Enter image context * [kamaki]: image * list all available images * [image]: list 926ab1c5-2d85-49d4-aebe-0fce712789b9 Windows Server 2008 container_format: bare disk_format : diskdump id : 926ab1c5-2d85-49d4-aebe-0fce712789b9 size : 11917066240 status : available 78262ee7-949e-4d70-af3a-85360c3de57a Windows Server 2012 container_format: bare disk_format : diskdump id : 78262ee7-949e-4d70-af3a-85360c3de57a size : 11697913856 status : available 5ed5a29b-292c-4fe0-b32c-2e2b65628635 ubuntu container_format: bare disk_format : diskdump id : 5ed5a29b-292c-4fe0-b32c-2e2b65628635 size : 2578100224 status : available 1f8454f0-8e3e-4b6c-ab8e-5236b728dffe 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 os : debian osfamily : linux root_partition: 1 sortorder : 1 users : root server (Compute/Cyclades) ------------------------- .. code-block:: text addr : List a server nic address console : Get a VNC console create : Create a server delete : Delete a server firewall: Manage server firewall profile set : Set the server firewall profile get : Get the server firewall profile ip : Manage floating IPs for the servers attach: Attach a floating ip to a server with server_id info : A floating IP details detach: Detach floating ip from server list : List all floating ips create: Create a new floating IP delete: Delete a floating ip pools : List all floating pools of floating ips info : Get server details list : List servers metadata: Manage Server Metadata list : List server metadata set : Add / update server metadata delete: Delete a piece of server metadata reboot : Reboot a server rename : Update a server name shutdown: Shutdown a server start : Start a server stats : Get server statistics resize : Set a different flavor for an existing server wait : Wait for server to finish Showcase: Create a server ^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console :emphasize-lines: 1,4,21,35,44,62 * Enter server context * [kamaki]: server * See server-create help * [server]: create -h usage: create [--personality PERSONALITY] [-h] [--config CONFIG] [--cloud CLOUD] Create a server optional arguments: -v, --verbose More info at response --personality PERSONALITY add a personality file -d, --debug Include debug output -h, --help Show help message -i, --include Include protocol headers in the output --config CONFIG Path to configuration file -s, --silent Do not output anything --cloud CLOUD Chose a cloud to connect to * List all available images * [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 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 * See details of flavor with id 1 * [server]: /flavor info 1 SNF:disk_template: drbd cpu : 1 disk : 20 id : 1 name : C1R1024D20 ram : 1024 * Create a debian server named 'My Small Debian Server' [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 hostId : id : 11687 imageRef : b2dffe52-64a4-48c3-8a4c-8214cc3165cf metadata : os : debian users: root name : My Small Debian Server progress : 0 status : BUILD suspended: False updated : 2012-11-23T16:56:04.761962+00:00 * wait for server to build (optional) * [server]: wait 11687 Server 11687 still in BUILD mode ||||||||||||||||| | 80% Server 11687 is now in ACTIVE mode .. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts ip (Compute/Cyclades) --------------------- .. code-block:: text info: Details for an IP list: List reserved floating IPs attach: Attach a floating IP to a server pools: List pools of floating IPs release: Release a floating IP detach: Detach a floating IP from a server reserve: Reserve a floating IP Showcase: Reserve and attach IP to server ----------------------------------------- .. code-block:: text * Enter IP context * [kamaki]: ip * Reserve an IP and see servers * [kamaki]: reserve 123.456.78.9 [kamaki]: /server list 42 My Windows Server 43 My Linux Server * Attach IP to server [kamaki]: attach 43 123.456.78.9 .. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts network (Compute/Cyclades) -------------------------- .. code-block:: text connect : Connect a server to a network create : Create a network delete : Delete a network disconnect: Disconnect a nic of a server to a network info : Get network details list : List networks rename : Update network name Showcase: Connect a network to a VM ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console :emphasize-lines: 1,4,9,24,27,44 * Enter network context * [kamaki]: network * List user-owned VMs * [network]: /server list 11687 (My Small Debian Server) 11688 (An Ubuntu server) * Try network-connect (to get help) * [network]: connect Syntax error usage: connect [-s] [-h] [-i] [--config CONFIG] Connect a server to a network Syntax: connect --config : Path to configuration file -d,--debug : Include debug output -h,--help : Show help message -i,--include: Include protocol headers in the output -s,--silent : Do not output anything -v,--verbose: More info at response * Connect VM with id 11687 to network with id 1409 [network]: connect 11687 1409 * Get details on network with id 1409 [network]: info 1409 attachments: nic-11687-1 cidr : 192.168.1.0/24 cidr6 : None created : 2012-11-23T17:17:20.560098+00:00 dhcp : True gateway : None gateway6: None id : 1409 name : my network public : False status : ACTIVE type : MAC_FILTERED updated : 2012-11-23T17:18:25.095225+00:00 * Get connectivity details on VM with id 11687 * [network]: /server addr 11687 id: nic-11687-1 ipv4 : 192.168.1.1 ipv6 : None mac_address: aa:0f:c2:0b:0e:85 network_id : 1409 firewallProfile: DISABLED id: nic-11687-0 ipv4 : 83.212.106.111 ipv6 : 2001:648:2ffc:1116:a80c:f2ff:fe12:a9e mac_address : aa:0c:f2:12:0a:9e network_id : 1369 .. Note:: In kamaki shell, / is used to access top-level command groups while working in command group contexts file (Storage/Pithos+) ---------------------- .. code-block:: text append : Append local file to remote cat : Print a file to console copy : Copy an object containerlimit: Container size limit commands set : Set container data limit get : Get container data limit create : Create a container delete : Delete a container [or an object] download : Download a file or directory group : Manage access groups and group members delete: Delete a user group list : List groups and group members set : Set a user group hashmap : Get the hashmap of an object info : Get information for account [, container [or object]] list : List containers, object trees or objects in a directory manifest : Create a remote file with uploaded parts by manifestation metadata : Metadata are attached on objects (key:value pairs) delete: Delete metadata with given key get : Get metadatum set : Set a piece of metadata mkdir : Create a directory move : Copy an object overwrite : Overwrite part (from start to end) of a remote file permissions : Manage user and group accessibility for objects delete: Delete all permissions set on object get : Get read and write permissions of an object set : Set permissions for an object publish : Publish an object purge : Purge a container quota : Get quota for account 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 or directory versioning : Manage the versioning scheme of current pithos user account get: Get versioning for account or container set: Set versioning mode (auto, none) for account or container versions : Get the version list of an object Showcase: Upload and download a file ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console :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 5+0 records in 5+0 records out 20971520 bytes (21 MB) copied, 0.016162 s, 1.3 GB/s * Enter file context * [kamaki]: file * Check local file * [file]: !ls -lh rndm_local.file -rw-rw-r-- 1 ******** ******** 20M Nov 26 15:36 rndm_local.file * Create two containers * [file]: create mycont1 [file]: create mycont2 * List accessible containers * [file]: list 1. mycont1 (0B, 0 objects) 2. mycont2 (0B, 0 objects) 3. pithos (0B, 0 objects) 4. trash (0B, 0 objects) * Upload local file to 1st container * [file]: upload rndm_local.file mycont1 * Check if file has been uploaded * [file]: list mycont1 1. 20M rndm_local.file * Create directory mydir on second container * [file]: mkdir mycont2:mydir * Move file from 1st to 2nd container (and in the directory) * [file]: move mycont1:rndm_local.file mycont2:mydir/rndm_local.file * Check contents of both containers * [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 * [file]: copy mycont2:mydir/rndm_local.file mycont1:rndm_remote.file * Check pasted file * [file]: list mycont1 1. 20M rndm_remote.file * Download pasted file to local file system * [file]: download mycont1:rndm_remote.file rndm_remote.file * Check if file is downloaded and if it is the same to original * [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 [file]: !diff rndm_local.file rndm_remote.file .. Note:: In kamaki shell, ! is used to execute OS shell commands (e.g., bash) .. 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 example:dev container to example:deploy :: $ kamaki file copy --container=example:dev test.py --dst-container=example:deploy