1 .. snf-occi documentation master file, created by
2 sphinx-quickstart on Mon Mar 26 13:45:54 2012.
3 You can adapt this file completely to your liking, but it should at least
4 contain the root `toctree` directive.
6 Welcome to snf-occi's documentation!
7 ====================================
9 snf-occi implements OCCI specifications to synnefo's API in order to achieve greater interoperability in common tasks refering cyclades management.
16 Current OCCI specification consists of the following three documents:
18 * `OCCI Core <http://ogf.org/documents/GFD.183.pdf>`_
19 * `OCCI Infrastructure <http://ogf.org/documents/GFD.184.pdf>`_
20 * `OCCI HTTP rendering <http://ogf.org/documents/GFD.185.pdf>`_
24 OCCI implementation in Cyclades is going to be based in the **OCCI Infrastructure** specifications, in which common Cloud IaaS components are described. Below you can see the matching components between OCCI and Cyclades:
26 +----------------+------------------+
28 +================+==================+
29 |Compute linked |Synnefo servers |
31 +----------------+------------------+
32 |Mixin |Synnefo images |
34 +----------------+------------------+
35 |Mixin |Synnefo flavors |
36 +----------------+------------------+
37 |Network |Network and |
38 | |NetworkInterfaces |
40 | |synnefo.db.models |
41 +----------------+------------------+
42 |NetworkInterface|NetworkLink in |
43 | |synnefo.db.models |
44 +----------------+------------------+
46 **Note:** Metadata info in synnefo's servers cannot be represented (clearly) using OCCI's components.
49 Call mapping from OCCI to Cyclades API
50 ---------------------------------------
51 Due to OCCI's structure there cannot be straightforward mapping to Cyclades/OpenStack API. The missing elements are:
53 * Networking capabilities using current Cyclades API (networking is supported, but not in OCCI's format)
54 * OCCI seperates the compute resource from the storage or image/flavor. As a result synnefo's servers cannot be represented only with OCCI's Compute.
56 OCCI operations-Mapping
57 ***********************
59 Below you can see the required procedures/operations for OCCI compatibility, and their mappings to Cyclades API (if possible).
61 * Handling the query interface
62 * Query interface must be found under path /-/
63 * Retrieve all registered Kinds, Actions and Mixins
64 * Add a mixin definition
65 * Remove a mixin definition
67 * Operation on paths in the name-space
68 * Retrieving the state of the name-space hierarchy
69 * Retrieving all Resource instances below a path
70 * Deletion of all Resource instances below a path
72 * Operations on Mixins and Kinds
73 * Retrieving all Resource instances belonging to Mixin or Kind
74 * Triggering actions to all instances of a Mixin or a Kind
75 * Associate resource instances with a Mixin or a Kind
76 * Full update of a Mixin collection
77 * Dissociate resource instances from a Mixin
79 * Operations on Resource instances
80 * Creating a resource instance
81 * Compute: api.server.create_server()
84 * Retrieving a resource instance
85 * Compute: api.server.get_server_details()
88 * Partial update of a resource instance
89 * Compute: api.actions.resize()
92 * Full update of a resource instance
96 * Delete a resource instance
97 * Compute: api.server.delete_server()
100 * Triggering an action on a resource instance
101 * Compute: api.actions.start(), api.actions.shutdown(), api.actions.reboot()
105 * Handling Link instances **(not well-defined in Cyclades API)**
106 * Inline creation of a Link instance
107 * Retrieving Resource instances with defined Links
108 * Creating of Link Resource instance
111 OCCI client/server library
112 ==========================
114 occi-py is a generic library implementation of the Open Cloud Computing Interface (OCCI). It aims to provide a high-level interface for the integration of OCCI to other new or existing applications.
119 * It includes a REST API service with the OCCI specifications already implemented
120 * It only requires a custom backend to interact with Cyclades
121 * Being a python wsgi application, occi-py is easily deployed with Django or with its default web-server (tornado).
123 Package on pypi: `OCCI 0.6 <http://pypi.python.org/pypi/occi/0.6>`_