NOTE: This project will be moving to stackforge
This is a clone and continuation of https://github.com/dizz/nova (no longer available) - it provides a python egg which can be easily deployed in OpenStack and will thereby add the 3rd party OCCI interface to OpenStack. For usage examples, [see the OpenStack wiki] (http://wiki.openstack.org/occi).
pip install pyssf
python setup.py install
(or pip install openstackocci-havana
)api-paste.ini
of nova and
enable the APINote: do not install the occi
package via pip
. This is a seperate project and not related to OpenStack &
OCCI.
Make sure an application is configured in api-paste.ini
(name can be
picked yourself):
########
# OCCI #
########
[composite:occiapi]
use = egg:Paste#urlmap
/: occiapppipe
[pipeline:occiapppipe]
pipeline = authtoken keystonecontext occiapp
# with request body size limiting and rate limiting
# pipeline = sizelimit authtoken keystonecontext ratelimit occiapp
[app:occiapp]
use = egg:openstackocci-havana#occi_app
Make sure the API (name from above) is enabled in nova.conf
:
[...]
enabled_apis=ec2,occiapi,osapi_compute,osapi_volume,metadata
[...]
You can register the OCCI service endpoint in Keyston via the following commands. First you need to create the OCCI service via
$ keystone service-create --name nova --type occi --description 'Nova OCCI Service'
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OCCI service |
| id | 8e6de5d0d7624584bed6bec9bef7c9e0 |
| name | nova |
| type | occi |
+-------------+----------------------------------+
from which you get the new service ID and use it to register the OCCI endpoint in Keystone:
$ keystone endpoint-create --service_id 8e6de5d0d7624584bed6bec9bef7c9e0 --region RegionOne --publicurl http://$HOSTNAME:8787/ --internalurl http://$HOSTNAME:8787/ --adminurl http://$HOSTNAME:8787/
(Optional) You can set the port option via the nova.conf
configuration
file - default is 8787:
[...]
occiapi_listen_port=9999
[...]
There is further documentation on setting up your development environment in the wiki.
The general naming scheme for the Python eggs is:
This library can be integrated using puppet as a configuration management tool. See this blog post for more details.