summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorBrian Waldon <brian.waldon@rackspace.com>2011-07-11 10:50:49 -0400
committerBrian Waldon <brian.waldon@rackspace.com>2011-07-11 10:50:49 -0400
commit63ac91a2f62c2f07c7458e4f55a8e10e182b9fdf (patch)
tree5cff807a5a9d9283eea6894c9eb1c17c4aae6534 /nova
parent5230b28d9120201741059f2bab588118fe9b1c25 (diff)
adding 204 response code
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/servers.py33
-rw-r--r--nova/tests/api/openstack/test_servers.py16
2 files changed, 40 insertions, 9 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index eacc2109f..241ba970c 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -104,15 +104,6 @@ class Controller(object):
except exception.NotFound:
return faults.Fault(exc.HTTPNotFound())
- @scheduler_api.redirect_handler
- def delete(self, req, id):
- """ Destroys a server """
- try:
- self.compute_api.delete(req.environ['nova.context'], id)
- except exception.NotFound:
- return faults.Fault(exc.HTTPNotFound())
- return exc.HTTPAccepted()
-
def create(self, req, body):
""" Creates a new server for a given user """
extra_values = None
@@ -420,6 +411,15 @@ class Controller(object):
class ControllerV10(Controller):
+ @scheduler_api.redirect_handler
+ def delete(self, req, id):
+ """ Destroys a server """
+ try:
+ self.compute_api.delete(req.environ['nova.context'], id)
+ except exception.NotFound:
+ return faults.Fault(exc.HTTPNotFound())
+ return exc.HTTPAccepted()
+
def _image_ref_from_req_data(self, data):
return data['server']['imageId']
@@ -482,6 +482,15 @@ class ControllerV10(Controller):
class ControllerV11(Controller):
+
+ @scheduler_api.redirect_handler
+ def delete(self, req, id):
+ """ Destroys a server """
+ try:
+ self.compute_api.delete(req.environ['nova.context'], id)
+ except exception.NotFound:
+ return faults.Fault(exc.HTTPNotFound())
+
def _image_ref_from_req_data(self, data):
return data['server']['imageRef']
@@ -597,6 +606,12 @@ class ControllerV11(Controller):
return self.helper._get_server_admin_password_new_style(server)
+class ServersHTTPSerializer(wsgi.DictSerializer):
+
+ def delete(self, response):
+ response.status_int = 204
+
+
def create_resource(version='1.0'):
controller = {
'1.0': ControllerV10,
diff --git a/nova/tests/api/openstack/test_servers.py b/nova/tests/api/openstack/test_servers.py
index 1f369c4c8..bb4a0510a 100644
--- a/nova/tests/api/openstack/test_servers.py
+++ b/nova/tests/api/openstack/test_servers.py
@@ -1433,6 +1433,22 @@ class ServersTest(test.TestCase):
self.assertEqual(res.status, '202 Accepted')
self.assertEqual(self.server_delete_called, True)
+ def test_delete_server_instance_v1_1(self):
+ req = webob.Request.blank('/v1.1/servers/1')
+ req.method = 'DELETE'
+
+ self.server_delete_called = False
+
+ def instance_destroy_mock(context, id):
+ self.server_delete_called = True
+
+ self.stubs.Set(nova.db.api, 'instance_destroy',
+ instance_destroy_mock)
+
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 204)
+ self.assertEqual(self.server_delete_called, True)
+
def test_resize_server(self):
req = self.webreq('/1/action', 'POST', dict(resize=dict(flavorId=3)))