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.
authenticate: Authenticate a user
In the following, the token has been set in a previous step (see setup section or the quick setup guide)
* 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
info: Get flavor details
list: List flavors
* 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
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
* 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
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
* Enter server context *
[kamaki]: server
* See server-create help *
[server]: create -h
usage: create <name> <flavor id> <image id>
[--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
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
* 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
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
* 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 <server id> <network id> [-s] [-h] [-i] [--config CONFIG]
Connect a server to a network
Syntax: connect <server id> <network id>
--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
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
* 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