diff options
| author | Brian Waldon <brian.waldon@rackspace.com> | 2011-03-24 12:46:39 -0400 |
|---|---|---|
| committer | Brian Waldon <brian.waldon@rackspace.com> | 2011-03-24 12:46:39 -0400 |
| commit | fbb8291263ae49521bbe02aa7f75c000c7f2db8d (patch) | |
| tree | 7fa7f6a6a4680f973673d3c402ba789089f3987f | |
| parent | ab6b3cbc8e6addb00b17601eb1bae47b429d273f (diff) | |
| download | nova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.tar.gz nova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.tar.xz nova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.zip | |
adding versioned controllers
| -rw-r--r-- | nova/api/openstack/__init__.py | 11 | ||||
| -rw-r--r-- | nova/api/openstack/flavors.py | 17 |
2 files changed, 22 insertions, 6 deletions
diff --git a/nova/api/openstack/__init__.py b/nova/api/openstack/__init__.py index 143b1d2b2..f47422359 100644 --- a/nova/api/openstack/__init__.py +++ b/nova/api/openstack/__init__.py @@ -117,9 +117,6 @@ class APIRouter(wsgi.Router): mapper.resource("image", "images", controller=images.Controller(), collection={'detail': 'GET'}) - mapper.resource("flavor", "flavors", controller=flavors.Controller(), - collection={'detail': 'GET'}) - mapper.resource("shared_ip_group", "shared_ip_groups", collection={'detail': 'GET'}, controller=shared_ip_groups.Controller()) @@ -138,6 +135,10 @@ class APIRouterV10(APIRouter): collection={'detail': 'GET'}, member=self.server_members) + mapper.resource("flavor", "flavors", + controller=flavors.ControllerV10(), + collection={'detail': 'GET'}) + class APIRouterV11(APIRouter): """Define routes specific to OpenStack API V1.1.""" @@ -149,6 +150,10 @@ class APIRouterV11(APIRouter): collection={'detail': 'GET'}, member=self.server_members) + mapper.resource("flavor", "flavors", + controller=flavors.ControllerV11(), + collection={'detail': 'GET'}) + class Versions(wsgi.Application): @webob.dec.wsgify(RequestClass=wsgi.Request) diff --git a/nova/api/openstack/flavors.py b/nova/api/openstack/flavors.py index f7b5b722f..5b99b5a6f 100644 --- a/nova/api/openstack/flavors.py +++ b/nova/api/openstack/flavors.py @@ -20,7 +20,7 @@ import webob from nova import db from nova import exception from nova import wsgi -from nova.api.openstack.views import flavors as flavors_views +from nova.api.openstack import views class Controller(wsgi.Controller): @@ -49,7 +49,7 @@ class Controller(wsgi.Controller): """Helper function that returns a list of flavor dicts.""" ctxt = req.environ['nova.context'] flavors = db.api.instance_type_get_all(ctxt) - builder = flavors_views.get_view_builder(req) + builder = self._get_view_builder(req) items = [builder.build(flavor, is_detail=is_detail) for flavor in flavors.values()] return items @@ -62,6 +62,17 @@ class Controller(wsgi.Controller): except exception.NotFound: return webob.exc.HTTPNotFound() - builder = flavors_views.get_view_builder(req) + builder = self._get_view_builder(req) values = builder.build(flavor, is_detail=True) return dict(flavor=values) + + +class ControllerV10(Controller): + def _get_view_builder(self, req): + return views.flavors.ViewBuilder() + + +class ControllerV11(Controller): + def _get_view_builder(self, req): + base_url = req.application_url + return views.flavors.ViewBuilderV11(base_url) |
