summaryrefslogtreecommitdiff
path: root/etc/nova/api-paste.ini
diff options
context:
space:
mode:
authorChris Yeoh <cyeoh@au1.ibm.com>2013-04-23 02:15:27 +0930
committerChris Yeoh <cyeoh@au1.ibm.com>2013-05-13 10:31:22 +0930
commit0c7237efd90e0c1cf44141750e36549559e494c0 (patch)
tree2ce7618f33a9b3a11a941d0565de43cc8b20afbc /etc/nova/api-paste.ini
parent5dba32a23e67341bfdc03a00781ab491238e21f4 (diff)
downloadnova-0c7237efd90e0c1cf44141750e36549559e494c0.tar.gz
API extensions framework for v3 API
This is the initial patch for the new extension framework to be used by the Nova v3 API. It will only be used by v3 API extensions and not v2 API extensions. v3 API extensions will only use this plugin framework and will not be compatible with the old one. - Sets up a /v3 url prefix - Looks in an entry point namespace of nova.api.extensions - The fixed_ips extensions is ported to /v3 as an example of a resource extensions. Required changes are very minor. - All extensions must derive from the V3APIExtensionBase class - Drops updated field from extensions, replaced with version field - Ports tests for fixed_ips extension - None of the core has been ported in this patch, though the example extension works without it. The intent is to port the core code over as plugins as well. There will still be a conceptual core however I don't think we need a separate directory for core. This is the first of a series of patches to add support for the new extension framework. Future direction including support for controller extensions, removal of extension code in core code etc can be seen here: https://github.com/cyeoh/nova/tree/v3_api_extension_framework Partially implements blueprint v3-api-extension-framework Change-Id: I88aa6353ad1d74cac51abbb6aac7274b1567485a
Diffstat (limited to 'etc/nova/api-paste.ini')
-rw-r--r--etc/nova/api-paste.ini10
1 files changed, 10 insertions, 0 deletions
diff --git a/etc/nova/api-paste.ini b/etc/nova/api-paste.ini
index 34c87b92d0..1bd26143fe 100644
--- a/etc/nova/api-paste.ini
+++ b/etc/nova/api-paste.ini
@@ -61,6 +61,7 @@ use = call:nova.api.openstack.urlmap:urlmap_factory
/: oscomputeversions
/v1.1: openstack_compute_api_v2
/v2: openstack_compute_api_v2
+/v3: openstack_compute_api_v3
[composite:openstack_compute_api_v2]
use = call:nova.api.auth:pipeline_factory
@@ -68,6 +69,12 @@ noauth = faultwrap sizelimit noauth ratelimit osapi_compute_app_v2
keystone = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v2
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v2
+[composite:openstack_compute_api_v3]
+use = call:nova.api.auth:pipeline_factory
+noauth = faultwrap sizelimit noauth ratelimit osapi_compute_app_v3
+keystone = faultwrap sizelimit authtoken keystonecontext ratelimit osapi_compute_app_v3
+keystone_nolimit = faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v3
+
[filter:faultwrap]
paste.filter_factory = nova.api.openstack:FaultWrapper.factory
@@ -83,6 +90,9 @@ paste.filter_factory = nova.api.sizelimit:RequestBodySizeLimiter.factory
[app:osapi_compute_app_v2]
paste.app_factory = nova.api.openstack.compute:APIRouter.factory
+[app:osapi_compute_app_v3]
+paste.app_factory = nova.api.openstack.compute:APIRouterV3.factory
+
[pipeline:oscomputeversions]
pipeline = faultwrap oscomputeversionapp