tmetsch / occi-os

This is a clone and continuation of https://github.com/dizz/nova - 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.
Apache License 2.0
10 stars 23 forks source link

OCCI for OpenStack

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).

Usage

  1. Install dependencies: pip install pyssf
  2. Install this egg: python setup.py install (or pip install openstackocci-havana)
  3. Configure OpenStack - Add application to api-paste.ini of nova and enable the API

Note: do not install the occi package via pip. This is a seperate project and not related to OpenStack & OCCI.

Configuration

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
[...]

Register service in keystone

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/

Hacking the port number

(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.

Versioning

The general naming scheme for the Python eggs is:

Deployment using Puppet

This library can be integrated using puppet as a configuration management tool. See this blog post for more details.