summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-06-03 08:50:30 -0400
committerDan Prince <dan.prince@rackspace.com>2011-06-03 08:50:30 -0400
commit8739529368cb755d33c3d8c532dd1c5d86f0bf85 (patch)
tree927ad1beebd73dfa7df011d069e4b0d255bdd9e6 /nova/api
parent0fd5e0ca8b2d6f9c081b9c31cca7e4ad27d5141c (diff)
Implement OSAPI v1.1 style image create.
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/images.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/nova/api/openstack/images.py b/nova/api/openstack/images.py
index 59d9e3082..48ea04248 100644
--- a/nova/api/openstack/images.py
+++ b/nova/api/openstack/images.py
@@ -123,7 +123,7 @@ class Controller(object):
raise webob.exc.HTTPBadRequest()
try:
- server_id = body["image"]["serverId"]
+ server_id = self._server_id_from_req_data(body)
image_name = body["image"]["name"]
except KeyError:
raise webob.exc.HTTPBadRequest()
@@ -135,6 +135,9 @@ class Controller(object):
"""Indicates that you must use a Controller subclass."""
raise NotImplementedError
+ def _server_id_from_req_data(self, data):
+ raise NotImplementedError()
+
class ControllerV10(Controller):
"""Version 1.0 specific controller logic."""
@@ -144,6 +147,9 @@ class ControllerV10(Controller):
base_url = request.application_url
return images_view.ViewBuilderV10(base_url)
+ def _server_id_from_req_data(self, data):
+ return data['image']['serverId']
+
class ControllerV11(Controller):
"""Version 1.1 specific controller logic."""
@@ -153,6 +159,9 @@ class ControllerV11(Controller):
base_url = request.application_url
return images_view.ViewBuilderV11(base_url)
+ def _server_id_from_req_data(self, data):
+ return data['image']['serverRef']
+
def create_resource(version='1.0'):
controller = {