forked from all4innov/pyOCNI
-
Notifications
You must be signed in to change notification settings - Fork 1
PyOCNI: A Python implementation of an extended OCCI with a JSON serialization
License
LGPL-3.0, GPL-3.0 licenses found
Licenses found
LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
occi/PyOCNI
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
pyocni README ------------- Copyright (C) Houssem Medhioub <[email protected]> Redistribution of this software is permitted under the terms of the LGPL License Table of Contents ----------------- 0. What is it? 1. The Latest Version 2. API Documentation 3. Installation 3.1. Requirements 3.2. Install 3.3. Configuration 3.4. Server running 4. HowTo use (examples) 5. For developers 6. Licensing 7. Contacts 8. Acknowledgment 9. Todo 10. json files to execute the HowTo use examples ----------------------------------------------------------------------------- 0. What is it? ----------------------------------------------------------------------------- PyOCNI (Python Open Cloud Networking Interface): A Python implementation of an extended OCCI with a JSON serialization and a cloud networking extension ----------------------------------------------------------------------------- 1. The Latest Version ----------------------------------------------------------------------------- version 0.2 11 Jan 2012 status: Still an ongoing work ----------------------------------------------------------------------------- 2. API Documentation ----------------------------------------------------------------------------- the api documentation are available through this html file: PyOCNI/pyocni/doc/index.html ----------------------------------------------------------------------------- 3. Installation ----------------------------------------------------------------------------- 3.1. Requirements ----------------- This software needs this packages to run: * python == 2.7 * python-all-dev (for eventlet/greenlet install/make) * python-setuptools (to execute the setup.py file) 3.2. Install ------------ sudo python setup.py install 3.3. Configuration ------------------ Logger configuration: OCCILogging.conf Server configuration: occi_server.conf 3.4. Server running ------------------- python start.py ----------------------------------------------------------------------------- 4. HowTo use (examples. The json files are at the end of this README) ----------------------------------------------------------------------------- Retrieval of all registered Kinds and Mixins: curl -X GET -H 'accept: application/json:occi' -v http://localhost:8090/-/ __________________________________________________________________________________________________________________ Creation of Resource instance (compute) curl -X POST -d@post_compute.json -H 'content-type: application/json:occi' -v http://localhost:8090/compute/ Creation of Resource instance (network) with ipnetwork mixin curl -X POST -d@post_network_ipnetwork.json -H 'content-type: application/json:occi' -v http://localhost:8090/network/ Creation of Resource instance (CloNeNode) curl -X POST -d@post_clonenode.json -H 'content-type: application/json:occi' -v http://localhost:8090/clonenode/ Creation of Resource instance (CloNeNode) with openFlow Mixin curl -X POST -d@post_clonenode_openflow.json -H 'content-type: application/json:occi' -v http://localhost:8090/clonenode/ Creation of Resource instance (CloNeLink) with l3vpn Mixin curl -X POST -d@post_clonelink_l3vpn.json -H 'content-type: application/json:occi' -v http://localhost:8090/CloNeLink/ __________________________________________________________________________________________________________________ Retrieval of Resource instance (Compute) curl -X GET -H 'accept: application/json:occi' -v http://localhost:8090/compute/user1/compute1 Retrieval of Resource instance (CloNeNode) with OpenFlow Mixin curl -X GET -H 'accept: application/json:occi' -v http://localhost:8090/CloNeNode/user1/CloNeNode2 Retrieval of Resource instance (CloNeLink) with l3vpn Mixin curl -X GET -H 'accept: application/json:occi' -v http://localhost:8090/CloNeLink/user1/CloNeLink1 Retrieval of all resource instance below a path curl -X GET -H 'accept: application/json:occi' -v http://localhost:8090/CloNeNode/user1/ __________________________________________________________________________________________________________________ UPDATE of Resource instance (CloNeLink) with l3vpn Mixin curl -X PUT -d@post_clonelink_l3vpn.json -H 'accept: application/json:occi' -v http://localhost:8090/CloNeLink/user1/CloNeLink1 __________________________________________________________________________________________________________________ Delete of Resource instance (CloNeLink) with l3vpn Mixin curl -X DELETE -H 'accept: application/json:occi' -v http://localhost:8090/CloNeLink/user1/CloNeLink1 ----------------------------------------------------------------------------- 5. For developers ----------------------------------------------------------------------------- If you want export the use of your service through OCCI, two parts should be developped: (1) the definition of the mixin with the list pf attributes (2) implementation of the specific service backend (CRUD operations) ----------------------------------------------------------------------------- 6. Licensing ----------------------------------------------------------------------------- Copyright (C) 2011 Houssem Medhioub - Institut Telecom This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library. If not, see <http://www.gnu.org/licenses/>. ----------------------------------------------------------------------------- 7. Contacts ----------------------------------------------------------------------------- Houssem Medhioub: [email protected] ----------------------------------------------------------------------------- 8. Acknowledgment ----------------------------------------------------------------------------- This work has been supported by: SAIL project (IST 7th Framework Programme Integrated Project) [http://sail-project.eu/] CompatibleOne Project (French FUI project) [http://compatibleone.org/] ----------------------------------------------------------------------------- 9. Todo ----------------------------------------------------------------------------- This release of pyocni is experimental. There are many aspects of the application that need tending to if it is ever going to fly. Some of pyocni's immediate needs might be: - ----------------------------------------------------------------------------- 10. json files to execute the HowTo use examples ----------------------------------------------------------------------------- post_compute.json ----------------- { "kind": { "term": "compute", "scheme": "http://schemas.ogf.org/occi/infrastructure", "class": "kind" }, "occi.core.id": "compute1000", "occi.core.title": "compute1000 created by Houssem", "occi.core.summary": "a summary of Compute 1 resource", "mixins": [ ], "links": ["a", "b"], "attributes": { "occi.compute.architecture": "x86", "occi.compute.state": "active", "occi.compute.speed": 1.0, "occi.compute.memory": 512, "occi.compute.cores": 1, "occi.compute.hostname": "compute10" } } post_network_ipnetwork.json --------------------------- { "kind": { "term": "network", "scheme": "http://schemas.ogf.org/occi/infrastructure", "class": "kind" }, "occi.core.id": "network1", "occi.core.title": "network1 created by Houssem", "occi.core.summary": "a summary of Network 1 resource", "mixins": [ { "term": "ipnetwork", "scheme": "http://schemas.ogf.org/occi/infrastructure/network", "class": "mixin" } ], "links": [], "attributes": { "occi.network.vlan": "10", "occi.network.label": "dmz", "occi.network.state": "active", "occi.network.address": "192.168.1.1", "occi.network.gateway": "192.168.1.1", "occi.network.allocation": "dynamic" } } post_clonenode.json ------------------- { "kind": { "term": "CloNeNode", "scheme": "http://schemas.ogf.org/occi/ocni", "class": "kind" }, "occi.core.id": "CloNeNode1", "occi.core.title": "CloNeNode1", "occi.core.summary": "CloNeNode created by Houssem", "mixins": [ ], "links": ["a", "b"], "attributes": { "ocni.clonenode.availability":[ { "ocni.availability.start":"08:00", "ocni.availability.end":"12:30" }, { "ocni.availability.start":"14:00", "ocni.availability.end":"18:00" } ], "ocni.clonenode.location": "EU", "ocni.clonenode.state": "active" } } post_clonenode_openflow.json ---------------------------- { "kind": { "term": "CloNeNode", "scheme": "http://schemas.ogf.org/occi/ocni", "class": "kind" }, "occi.core.id": "CloNeNode2", "occi.core.title": "CloNeNode2", "occi.core.summary": "CloNeNode with openflow mixin created by Houssem", "mixins": [ { "term": "OpenFlowCloNeNode", "scheme": "http://schemas.ogf.org/occi/ocni", "class": "mixin" } ], "links": [], "attributes": { "ocni.clonenode.availability":[ { "ocni.availability.start":"08:00", "ocni.availability.end":"12:30" }, { "ocni.availability.start":"14:00", "ocni.availability.end":"18:00" } ], "ocni.clonenode.location": "EU", "ocni.clonenode.state": "active", "ocni.openflowclonenode.datapath_id" : "0x004E46324304", "ocni.openflowclonenode.ports" : ["6632","245"], "ocni.openflowclonenode.of_controller" : ["192.168.10.2","192.168.10.2"], "ocni.openflowclonenode.of_controller_port" : "6633" } } post_clonenode_l3vpn.json ------------------------- { "kind":{ "term":"CloNeLink", "scheme":"http://schemas.ogf.org/occi/ocni", "class":"kind" }, "occi.core.id":"CloNeLink1", "occi.core.title":"CloNeLink1", "occi.core.summary":"CloNeLink with l3vpn mixin created by Houssem", "mixins":[ { "term":"L3VPN", "scheme":"http://schemas.ogf.org/occi/ocni", "class":"mixin" } ], "links":[ ], "attributes":{ "ocni.clonelink.availability":[ { "ocni.availability.start":"08:00", "ocni.availability.end":"12:30" }, { "ocni.availability.start":"14:00", "ocni.availability.end":"18:00" } ], "ocni.clonelink.state":"active", "ocni.clonelink.bandwidth":"100Mbps", "ocni.clonelink.latency":"100ms", "ocni.clonelink.jitter":"", "ocni.clonelink.loss":"0.01%", "ocni.clonelink.routing_scheme":"unicast", "ocni.l3vpn.infrastructure_request_id":"2222", "ocni.l3vpn.customer_id":"0987", "ocni.l3vpn.service_type":{ "ocni.l3vpn.service_type.type":"CaaS", "ocni.l3vpn.service_type.layer":"L2", "ocni.l3vpn.service_type.class_of_service":"guaranteed" }, "ocni.l3vpn.service_description":[ { "ocni.l3vpn.service_description.endpoint_id":"0987", "ocni.l3vpn.service_description.in_bandwidth":"100Mbps", "ocni.l3vpn.service_description.out_bandwidth":"100Mbps", "ocni.l3vpn.service_description.max_in_bandwidth":"120Mbps", "ocni.l3vpn.service_description.max_out_bandwidth":"120Mbps", "ocni.l3vpn.service_description.latency":"100ms", "ocni.l3vpn.service_description.max_latency":"200ms" }, { "ocni.l3vpn.service_description.endpoint_id":"1001", "ocni.l3vpn.service_description.in_bandwidth":"100Mbps", "ocni.l3vpn.service_description.out_bandwidth":"100Mbps", "ocni.l3vpn.service_description.max_in_bandwidth":"120Mbps", "ocni.l3vpn.service_description.max_out_bandwidth":"120Mbps", "ocni.l3vpn.service_description.latency":"100ms", "ocni.l3vpn.service_description.max_latency":"200ms" } ], "ocni.l3vpn.elastisity":{ "ocni.l3vpn.elastisity.supported":"yes", "ocni.l3vpn.elastisity.reconfiguration_time":"120s" }, "ocni.l3vpn.scalability":{ "ocni.l3vpn.scalability.supported":"yes", "ocni.l3vpn.scalability.setup_time":"10s" } } }
About
PyOCNI: A Python implementation of an extended OCCI with a JSON serialization
Resources
License
LGPL-3.0, GPL-3.0 licenses found
Licenses found
LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published