5. 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.

5.1. user (Identity Manager)

authenticate:  Authenticate a user

5.1.1. Showcase: get user information

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

5.2. flavor (Compute/Cyclades)

info:  Get flavor details
list:  List flavors

5.2.1. Showcase: show details for flavor with id 43

* 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

5.3. image (Plankton commands + Compute Image subcommands)

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

5.3.1. Showcase: Pick an image and list the properties

* 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

5.4. server (Compute/Cyclades)

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

5.4.1. Showcase: Create a server

* 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

5.5. ip (Compute/Cyclades)

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

5.6. Showcase: Reserve and attach IP to server

* 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

5.7. network (Compute/Cyclades)

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

5.7.1. Showcase: Connect a network to a VM

* 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

5.8. file (Storage/Pithos+)

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

5.8.1. Showcase: Upload and download a file

* 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