diff options
| author | Michael Gundlach <michael.gundlach@rackspace.com> | 2010-08-25 17:48:08 -0400 |
|---|---|---|
| committer | Michael Gundlach <michael.gundlach@rackspace.com> | 2010-08-25 17:48:08 -0400 |
| commit | c9d3b7c3ae71bbbe6f3077dcee13be41a14a6733 (patch) | |
| tree | bdda6af5f27582a4f7a6133694cc2a835466cd23 /nova | |
| parent | 0aa2eceba81e569dcde8bca318b696d121fe9f81 (diff) | |
| download | nova-c9d3b7c3ae71bbbe6f3077dcee13be41a14a6733.tar.gz nova-c9d3b7c3ae71bbbe6f3077dcee13be41a14a6733.tar.xz nova-c9d3b7c3ae71bbbe6f3077dcee13be41a14a6733.zip | |
Support GET /<controller>/detail
Diffstat (limited to 'nova')
| -rw-r--r-- | nova/api/rackspace/__init__.py | 6 | ||||
| -rw-r--r-- | nova/api/rackspace/flavors.py | 7 | ||||
| -rw-r--r-- | nova/api/rackspace/images.py | 11 | ||||
| -rw-r--r-- | nova/image/__init__.py | 0 |
4 files changed, 18 insertions, 6 deletions
diff --git a/nova/api/rackspace/__init__.py b/nova/api/rackspace/__init__.py index 27e78f801..b4d666d63 100644 --- a/nova/api/rackspace/__init__.py +++ b/nova/api/rackspace/__init__.py @@ -74,8 +74,10 @@ class APIRouter(wsgi.Router): def __init__(self): mapper = routes.Mapper() mapper.resource("server", "servers", controller=servers.Controller()) - mapper.resource("image", "images", controller=images.Controller()) - mapper.resource("flavor", "flavors", controller=flavors.Controller()) + mapper.resource("image", "images", controller=images.Controller(), + collection={'detail': 'GET'}) + mapper.resource("flavor", "flavors", controller=flavors.Controller(), + collection={'detail': 'GET'}) mapper.resource("sharedipgroup", "sharedipgroups", controller=sharedipgroups.Controller()) super(APIRouter, self).__init__(mapper) diff --git a/nova/api/rackspace/flavors.py b/nova/api/rackspace/flavors.py index 59981f1c5..60b35c939 100644 --- a/nova/api/rackspace/flavors.py +++ b/nova/api/rackspace/flavors.py @@ -31,7 +31,12 @@ class Controller(base.Controller): } def index(self, req): - """Return all flavors.""" + """Return all flavors in brief.""" + return dict(flavors=[dict(id=flavor['id'], name=flavor['name']) + for flavor in self.detail(req)['flavors']]) + + def detail(self, req): + """Return all flavors in detail.""" items = [self.show(req, id)['flavor'] for id in self._all_ids()] return dict(flavors=items) diff --git a/nova/api/rackspace/images.py b/nova/api/rackspace/images.py index 06fb0d38f..2f3e928b9 100644 --- a/nova/api/rackspace/images.py +++ b/nova/api/rackspace/images.py @@ -15,7 +15,7 @@ # License for the specific language governing permissions and limitations # under the License. -from nova import image +import nova.image.service from nova.api.rackspace import base from nova.api.rackspace import _id_translator from webob import exc @@ -32,12 +32,17 @@ class Controller(base.Controller): } def __init__(self): - self._service = image.ImageService.load() + self._service = nova.image.service.ImageService.load() self._id_translator = _id_translator.RackspaceAPIIdTranslator( "image", self._service.__class__.__name__) def index(self, req): - """Return all public images.""" + """Return all public images in brief.""" + return dict(images=[dict(id=img['id'], name=img['name']) + for img in self.detail(req)['images']]) + + def detail(self, req): + """Return all public images in detail.""" data = self._service.index() for img in data: img['id'] = self._id_translator.to_rs_id(img['id']) diff --git a/nova/image/__init__.py b/nova/image/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/nova/image/__init__.py |
