summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2012-01-17 14:33:16 -0500
committerDan Prince <dan.prince@rackspace.com>2012-01-17 15:31:26 -0500
commitc7d2f020f0fdf04b24bd21668e7a02796f1f5538 (patch)
treef58c19ad9bdded8182c0878282a5d3e23f89991a
parent8c1e0022028a454f536ff211aa200cab9b0111aa (diff)
Allow instances in 'BUILD' state to be deleted.
Fixes LP Bug #907808. Change-Id: I4332e9e822db507951af07bd654a27b3e2ce3973
-rw-r--r--nova/compute/api.py4
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py7
2 files changed, 5 insertions, 6 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index a75d5c027..6f9930187 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -839,9 +839,9 @@ class API(base.Base):
# allowed but the EC2 API appears to allow from RESCUED and STOPPED
# too
@wrap_check_policy
- @check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.SHUTOFF,
+ @check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.BUILDING,
vm_states.ERROR, vm_states.RESCUED,
- vm_states.STOPPED])
+ vm_states.SHUTOFF, vm_states.STOPPED])
@scheduler_api.reroute_compute("delete")
def delete(self, context, instance):
"""Terminate an instance."""
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 0cc8a7706..0fafa1e77 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -1394,10 +1394,9 @@ class ServersControllerTest(test.TestCase):
self.server_delete_called = True
self.stubs.Set(nova.db, 'instance_destroy', instance_destroy_mock)
- self.assertRaises(webob.exc.HTTPConflict,
- self.controller.delete,
- req,
- FAKE_UUID)
+ self.controller.delete(req, FAKE_UUID)
+
+ self.assertEqual(self.server_delete_called, True)
def test_delete_server_instance_while_resize(self):
req = fakes.HTTPRequest.blank('/v2/fake/servers/%s' % FAKE_UUID)