rOCCI

Transcription

rOCCI
A New FedCloud Java Client Library
Michal Kimle, Boris Parák, Zdeněk Šustr, Jiří Sitera
CESNET, a. l. e., Prague, Czech Republic
OCCI
jOCCI
• The Open Cloud Computing Interface (OCCI) is an OGF standard
• Only the Ruby-based rOCCI framework with its command line in-
for cloud resource management.
terface available up intil very recently.
• The EGI Federated Cloud uses OCCI as a common interface to
access its computing services.
are not a suitable solution.
For OCCI compliance, the client and server side must have at least
these capabilities:
Client must be able to . . .
receive, parse and understand model
render request, validate
against model and send
receive response: location,
rendered object, HTTP return
code
Server must be able to . . .
render model: local capabilities, mixins, resource categories
parse request and act on it
Native Ruby
Java
Native
application
jOCCI-core
rOCCI-core
• jOCCI – a new native Java library implementing the OCCI class
structure, rendering and transport, allowing developers to work
with OCCI concepts natively in Java.
• Not specific to EGI FedCloud.
Independend general-purpose
OCCI client, helping to establish the OCCI standard.
• Provided by CESNET – developers of the existing rOCCI frame-
work. Funded by EGI-InSPIRE.
• Already being tried out by early adopters.
return response
• Works with any cloud platform implementing OCCI: rOCCI
in progress
(OpenNebula, AWS, MS Azure
# Shell script
Custom client app.
NEW!
jOCCI-api
rOCCI-api
• Demand to support OCCI in Java. Wrappers around CLI or jRuby
Application or
script using
command-line
executables
rOCCI-cli
Server-side
OCCI implementations
), openstack, synnefo, . . .
OpenNebula
rOCCI-api
rOCCI-core
MS Azure
rOCCI-server
OCCI HTTPs
Custom client app.
rOCCI-api
Native Ruby
application
rOCCI-core
Independent
OCCI-compliant
client
Fig. 1: The role of the new jOCCI library in OCCI client-server implementations.
Examples
Future plans
Creating a client instance (with X509 authentication):
• Supporting the jOCCI library, already made available to the com-
HTTPAuthentication auth = new X 5 0 9 A u t h e n t i c a t i o n ( "/path/to/certificate
.pem" , "password" ) ;
auth . setCAPath ( "/etc/grid-security/certificates/" ) ; / / path t o CA d i r
C l i e n t c l i e n t = new HTTPClient ( URI . c r e a t e ( "https://remote.server.net" )
, auth ) ;
munity.
• Working with early adopters integrating jOCCI into their Java-
based projects.
• Next step: Releasing a jclouds OCCI provider based on jOCCI.
Listing available resources:
L i s t <URI> l i s t = c l i e n t . l i s t ( URI . c r e a t e ( "http://schemas.ogf.org/occi/
infrastructure#compute" ) ) ;
Creating a compute resource:
Model model = c l i e n t . getModel ( ) ;
E n t i t y B u i l d e r e n t i t y B u i l d e r = new E n t i t y B u i l d e r ( model ) ;
Resource r e s o u r c e = e n t i t y B u i l d e r . getResource ( "compute" ) ;
r e s o u r c e . addMixin ( model . f i n d M i x i n ( "debian7" , "os_tpl" ) ) ;
r e s o u r c e . addMixin ( model . f i n d M i x i n ( "small" , "resource_tpl" ) ) ;
r e s o u r c e . a d d A t t r i b u t e ( Compute .MEMORY_ATTRIBUTE_NAME, "2048" ) ;
URI l o c a t i o n = c l i e n t . c r e a t e ( r e s o u r c e ) ;
Getting jOCCI
• Available from
maven central repository. Search
search.maven.org for “jOCCI”.
• Source code with documentation: github.com/EGI-FCTF
Contacting us for support
• E-mail: [email protected]

Similar documents

PoS(ISGC2015)015

PoS(ISGC2015)015 The above excerpt is a rendered representation of a compute resource, i.e., a virtual machine. Various attributes specify its size and other properties. This is what a description of a virtual reso...

More information

jOCCI – General-Purpose OCCI Client Library in Java

jOCCI – General-Purpose OCCI Client Library in Java • Creating a compute resource (having skipped discovery for brevity): Model model = client . getModel (); EntityBuilder entityBuilder = new EntityBuilder ( model ); Resource resource = entityBuilde...

More information