summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorBrian Waldon <brian.waldon@rackspace.com>2011-03-30 15:10:40 -0400
committerBrian Waldon <brian.waldon@rackspace.com>2011-03-30 15:10:40 -0400
commitd224b0509273ca8a92c5c2b9abca69038835935c (patch)
tree776384b5c373afdca360571fb2e99de1d8fcf3ad /nova/api
parent79915a797e8485307d432ac9155d6e777b16dce7 (diff)
adding v1.0 support for rebuild; adding compute api rebuild support
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/openstack/servers.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index f7696d918..4b2703549 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -317,9 +317,6 @@ class Controller(wsgi.Controller):
return faults.Fault(exc.HTTPBadRequest())
return exc.HTTPAccepted()
- def _action_rebuild(self, input_dict, req, id):
- return faults.Fault(exc.HTTPNotImplemented())
-
def _action_resize(self, input_dict, req, id):
""" Resizes a given instance to the flavor size requested """
try:
@@ -606,6 +603,19 @@ class ControllerV10(Controller):
except exception.TimeoutException:
return exc.HTTPRequestTimeout()
+ def _action_rebuild(self, input_dict, req, id):
+ context = req.environ['nova.context']
+ if (not 'rebuild' in input_dict
+ or not 'imageId' in input_dict['rebuild']):
+ msg = _("No imageId was specified")
+ return faults.Fault(exc.HTTPBadRequest(msg))
+
+ image_id = input_dict['rebuild']['imageId']
+
+ self.compute_api.rebuild(context, id, image_id)
+
+ return exc.HTTPAccepted()
+
class ControllerV11(Controller):
def _image_id_from_req_data(self, data):
@@ -632,6 +642,9 @@ class ControllerV11(Controller):
def _limit_items(self, items, req):
return common.limited_by_marker(items, req)
+ def _action_rebuild(self, input_dict, req, id):
+ return faults.Fault(exc.HTTPNotImplemented())
+
class ServerCreateRequestXMLDeserializer(object):
"""