3.5 KiB
Configuration
ooi configuration
ooi needs to be enabled in the OpenStack Compute configuration file.
Append ooi
to your enabled_apis
option:
enabled_apis=ec2,osapi_compute,metadata,ooi
Moreover, the following options are available:
ooi_listen
: IP address where ooi will listen. Defaults to0.0.0.0
ooi_listen_port
: Port ooi will bind to. Defaults to8787
.ooi_workers
: Number of workers to spawn, by default it is set to the number of CPUs in the node.
Paste Configuration
TL;DR.
Add the corresponding Paste configuration according to your OpenStack
version from pipeline-examples
into your Paste configuration file
(usually /etc/nova/api-paste.ini
).
Detailed instructions
---------------------Once installed it is needed to add it to your
OpenStack installation. Edit your
/etc/nova/api-paste.ini
.
First it is needed to add the OCCI filter like this:
[filter:occi]
paste.filter_factory = ooi.wsgi:OCCIMiddleware.factory
openstack_version = /v2
openstack_version
can be configured to any of the
supported OpenStack API versions, as indicated in Table api-versions
. If it is not
configured, by default it will take the /v2.1
value.
OpenStack API version | openstack_version |
reference OpenStack composite section |
---|---|---|
v2 | /v2 |
[composite:openstack_compute_api_v2] |
v2.1 | /v2.1 |
[composite:openstack_compute_api_v21] |
The next step is to create a composite
section for the
OCCI interface. It is needed to duplicate the corresponding OpenStack API
composite<api-versions> section, renaming it to
occi_api_v11
. Once duplicated, the occi
middleware needs to be added just before the last component of the
pipeline. So, in the example above where /v2
has been
configured, we need to duplicate the
[composite:openstack_compute_api_v2]
as follows:
[composite:occi_api_v11]
use = call:nova.api.auth:pipeline_factory
noauth = compute_req_id faultwrap sizelimit noauth ratelimit occi osapi_compute_app_v2
keystone = compute_req_id faultwrap sizelimit occi authtoken keystonecontext ratelimit occi osapi_compute_app_v2
keystone_nolimit = compute_req_id faultwrap sizelimit authtoken keystonecontext occi osapi_compute_app_v2
The last step regarding the API configuration is to add it to create
the [composite:ooi]
section:
[composite:ooi]
use = call:nova.api.openstack.urlmap:urlmap_factory
/occi1.1: occi_api_11
Finally, you need to enable it in the OpenStack nova configuration,
so that it is loaded properly. Add ooi
to the
enabled_apis
option in the configuration file and adapt the
port if needed, via the ooi_listen_port
(by default it
listens in the 8787
port):
enabled_apis=ec2,osapi_compute,metadata,ooi
ooi_listen_port=8787
If everything is OK, after rebooting the nova-api
service you should be able to access your OCCI endpoint at:
$ nova credentials
# Grab the token
$ export KID=<token>
$ curl -H "x-auth-token: $KID" http://localhost:8787/occi1.1/-/