File split/different files for server and backend
[snf-occi] / docs / index.rst
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.
5
6 Welcome to snf-occi's documentation!
7 ====================================
8
9 snf-occi implements OCCI specifications to synnefo's API in order to achieve greater interoperability in common tasks refering cyclades management.
10
11 .. toctree::
12    :maxdepth: 2
13
14 About OCCI
15 ----------
16 Current OCCI specification consists of the following three documents:
17
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>`_
21
22 OCCI and Cyclades
23 -----------------
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:
25
26 +----------------+------------------+
27 |OCCI            |Cyclades          |
28 +================+==================+
29 |Compute linked  |Synnefo servers   |
30 |to Storage      |                  |
31 +----------------+------------------+
32 |Mixin           |Synnefo images    |
33 |                |                  |
34 +----------------+------------------+
35 |Mixin           |Synnefo flavors   |
36 +----------------+------------------+
37 |Network         |Network and       |
38 |                |NetworkInterfaces |
39 |                |from              |
40 |                |synnefo.db.models |
41 +----------------+------------------+
42 |NetworkInterface|NetworkLink in    |
43 |                |synnefo.db.models |
44 +----------------+------------------+
45  
46 **Note:** Metadata info in synnefo's servers cannot be represented (clearly) using OCCI's components.
47
48
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:
52
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.
55
56 OCCI operations-Mapping
57 ***********************
58
59 Below you can see the required procedures/operations for OCCI compatibility, and their mappings to Cyclades API (if possible).
60    
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
66
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
71
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
78
79 * Operations on Resource instances
80    * Creating a resource instance
81        * Compute: api.server.create_server()
82        * Network: -
83        * Storage: -
84    * Retrieving a resource instance
85        * Compute: api.server.get_server_details()
86        * Network: -
87        * Storage: -
88    * Partial update of a resource instance
89        * Compute: api.actions.resize()
90        * Network: -
91        * Storage: -
92    * Full update of a resource instance
93        * Compute: -
94        * Network: -
95        * Storage: -
96    * Delete a resource instance
97        * Compute: api.server.delete_server()
98        * Network: -
99        * Storage: -
100    * Triggering an action on a resource instance
101        * Compute: api.actions.start(), api.actions.shutdown(), api.actions.reboot()
102        * Network: -
103        * Storage: -
104
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
109
110
111 OCCI client/server library
112 ==========================
113
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. 
115
116 Features:
117 ---------
118
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).
122
123 Package on pypi: `OCCI 0.6 <http://pypi.python.org/pypi/occi/0.6>`_
124
125
126
127 Indices and tables
128 ==================
129
130 * :ref:`genindex`
131 * :ref:`search`
132