summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Waldon <brian.waldon@rackspace.com>2011-03-24 12:46:39 -0400
committerBrian Waldon <brian.waldon@rackspace.com>2011-03-24 12:46:39 -0400
commitfbb8291263ae49521bbe02aa7f75c000c7f2db8d (patch)
tree7fa7f6a6a4680f973673d3c402ba789089f3987f
parentab6b3cbc8e6addb00b17601eb1bae47b429d273f (diff)
downloadnova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.tar.gz
nova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.tar.xz
nova-fbb8291263ae49521bbe02aa7f75c000c7f2db8d.zip
adding versioned controllers
-rw-r--r--nova/api/openstack/__init__.py11
-rw-r--r--nova/api/openstack/flavors.py17
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)