Difference between revisions of "Federated Cloud APIs and SDKs"
Line 1: | Line 1: | ||
This page includes pointers for application development on the EGI Federated Cloud | This page includes pointers for application development on the EGI Federated Cloud | ||
Line 7: | Line 6: | ||
== API == | == API == | ||
The [http://occi-wg.org/ Open Cloud Computing Interface (OCCI)] is a RESTful Protocol and API designed to facilitate interoperable access to, and query of, cloud-based resources across multiple resource providers and heterogeneous environments. The formal specification is maintained and actively worked on by OGF’s OCCI-WG. | |||
EGI Federated Cloud uses v1.1 of OCCI's specification, which is defined in three documents: | |||
* '''[http://ogf.org/documents/GFD.183.pdf OCCI Core]''' that describes the formal definition of the OCCI core model, | |||
* '''[http://ogf.org/documents/GFD.185.pdf OCCI HTTP Rendering]''' defines how to interact with the OCCI Core Model using the RESTful OCCI API | |||
* '''[http://ogf.org/documents/GFD.184.pdf OCCI Infrastructure]''' contains the definition of the OCCI Infrastructure extension for the IaaS domain | |||
The OCCI Infrastructure is further extended with two new mixins for contextualization in EGI Federated Cloud: | |||
{| class="wikitable" | |||
|- | |||
! term !! scheme !! attributes | |||
|- | |||
| <code>user_data</code> | |||
| <code><nowiki>http://schemas.openstack.org/compute/instance#</nowiki></code> | |||
| <code>org.openstack.compute.user_data</code>: string that holds base64 encoded data to be available at the VM upon instantiation | |||
|- | |||
| <code>public_key</code> | |||
| <code><nowiki>http://schemas.openstack.org/instance/credentials#</nowiki></code> | |||
| <code>org.openstack.credentials.publickey.name</code>: string with the name of the public key (optional)<br/><code>org.openstack.credentials.publickey.data</code>: string with the public key | |||
|} | |||
The upcoming v1.2 of OCCI will be also supported on EGI resources. | |||
== SDKs == | == SDKs == | ||
SDKs helps you to create applications that use the EGI Federated Cloud in the language of your choice. If your language or use case is not supported by the following SDKs, you can use directly the API. Requests for new SDKs are welcomed. | |||
=== Java === | |||
; [https://github.com/EGI-FCTF/jOCCI-api jOCCI] | |||
: jOCCI is an independent OCCI implementation by the authors of rOCCI. It satisfies the demand for a Java library, replacing the previous alternative based on JRuby. Currently in development, it is available as source from Github. | |||
=== Ruby === | |||
; [https://github.com/EGI-FCTF/rOCCI-api rOCCI] | |||
: rOCCI framework implements the OCCI class structure in Ruby, which allows developers to work with OCCI concepts natively. rOCCI-api takes care of transporting OCCI messages, currently supporting HTTP as transport protocol. rOCCI-api handles EGI Fedederated Cloud authentication on behalf of the developer. | |||
== Authentication == | |||
'''TO BE COMPLETED''' | |||
= OpenStack = | = OpenStack = | ||
Line 15: | Line 55: | ||
== API == | == API == | ||
OpenStack API documentation is available at [http://developer.openstack.org/ OpenStack developer pages]. EGI Federated Cloud supports the usage of the [http://developer.openstack.org/api-ref-compute-v2.1.html Compute v2.1 API] | |||
== SDKs == | == SDKs == | ||
'''TO BE COMPLETED''' | |||
== Authentication == | |||
'''TO BE COMPLETED''' |
Revision as of 12:48, 14 October 2015
This page includes pointers for application development on the EGI Federated Cloud
OCCI
OCCI is the standard API for accessing the EGI Federated Cloud resources.
API
The Open Cloud Computing Interface (OCCI) is a RESTful Protocol and API designed to facilitate interoperable access to, and query of, cloud-based resources across multiple resource providers and heterogeneous environments. The formal specification is maintained and actively worked on by OGF’s OCCI-WG.
EGI Federated Cloud uses v1.1 of OCCI's specification, which is defined in three documents:
- OCCI Core that describes the formal definition of the OCCI core model,
- OCCI HTTP Rendering defines how to interact with the OCCI Core Model using the RESTful OCCI API
- OCCI Infrastructure contains the definition of the OCCI Infrastructure extension for the IaaS domain
The OCCI Infrastructure is further extended with two new mixins for contextualization in EGI Federated Cloud:
term | scheme | attributes |
---|---|---|
user_data
|
http://schemas.openstack.org/compute/instance#
|
org.openstack.compute.user_data : string that holds base64 encoded data to be available at the VM upon instantiation
|
public_key
|
http://schemas.openstack.org/instance/credentials#
|
org.openstack.credentials.publickey.name : string with the name of the public key (optional)org.openstack.credentials.publickey.data : string with the public key
|
The upcoming v1.2 of OCCI will be also supported on EGI resources.
SDKs
SDKs helps you to create applications that use the EGI Federated Cloud in the language of your choice. If your language or use case is not supported by the following SDKs, you can use directly the API. Requests for new SDKs are welcomed.
Java
- jOCCI
- jOCCI is an independent OCCI implementation by the authors of rOCCI. It satisfies the demand for a Java library, replacing the previous alternative based on JRuby. Currently in development, it is available as source from Github.
Ruby
- rOCCI
- rOCCI framework implements the OCCI class structure in Ruby, which allows developers to work with OCCI concepts natively. rOCCI-api takes care of transporting OCCI messages, currently supporting HTTP as transport protocol. rOCCI-api handles EGI Fedederated Cloud authentication on behalf of the developer.
Authentication
TO BE COMPLETED
OpenStack
OpenStack sites of the EGI Federated Cloud can provide access through the native OpenStack API.
API
OpenStack API documentation is available at OpenStack developer pages. EGI Federated Cloud supports the usage of the Compute v2.1 API
SDKs
TO BE COMPLETED
Authentication
TO BE COMPLETED