diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-07 17:57:08 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-07 17:57:08 +0000 |
| commit | f4a8a484cc86d11c58ba2d99a58097b70848155c (patch) | |
| tree | 5b58d67dcc1c1d0994e8ff53ae9d685c3fd78b76 /nova/tests | |
| parent | 4d4cddbb9aeb26fe8d9831f20553f04e8cf29c44 (diff) | |
| parent | 6afae496d2314ca6900f6f9709d093aa6bb7f29d (diff) | |
Merge "Add compute build/resize errors to instance faults"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/compute/test_compute.py | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index 57c234734..3bd54cbba 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -6043,7 +6043,7 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): self.compute._spawn(mox.IgnoreArg(), self.instance, None, None, None, False, None).AndRaise(test.TestingException("BuildError")) self.compute._reschedule_or_reraise(mox.IgnoreArg(), self.instance, - None, None, None, False, None, {}) + mox.IgnoreArg(), None, None, None, False, None, {}) self.mox.ReplayAll() self.compute._run_instance(self.context, None, {}, None, None, None, @@ -6061,6 +6061,8 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): except Exception: exc_info = sys.exc_info() + compute_utils.add_instance_fault_from_exc(self.context, + instance_uuid, exc_info[0], exc_info=exc_info) self.compute._deallocate_network(self.context, self.instance).AndRaise(InnerTestingException("Error")) self.compute._log_original_error(exc_info, instance_uuid) @@ -6071,7 +6073,7 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): # error: self.assertRaises(InnerTestingException, self.compute._reschedule_or_reraise, self.context, - self.instance, None, None, None, False, None, {}) + self.instance, exc_info, None, None, None, False, None, {}) def test_reschedule_fail(self): """Test handling of exception from _reschedule""" @@ -6093,9 +6095,10 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): raise test.TestingException("Original") except Exception: # not re-scheduling, should raise the original build error: + exc_info = sys.exc_info() self.assertRaises(test.TestingException, self.compute._reschedule_or_reraise, self.context, - self.instance, None, None, None, False, None, {}) + self.instance, exc_info, None, None, None, False, None, {}) def test_reschedule_false(self): """Test not-rescheduling, but no nested exception""" @@ -6104,22 +6107,25 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): self.mox.StubOutWithMock(self.compute, '_deallocate_network') self.mox.StubOutWithMock(self.compute, '_reschedule') - self.compute._deallocate_network(self.context, - self.instance) - self.compute._reschedule(self.context, None, instance_uuid, - {}, self.compute.scheduler_rpcapi.run_instance, method_args, - task_states.SCHEDULING).AndReturn(False) - - self.mox.ReplayAll() - try: raise test.TestingException("Original") except Exception: + exc_info = sys.exc_info() + compute_utils.add_instance_fault_from_exc(self.context, + instance_uuid, exc_info[0], exc_info=exc_info) + self.compute._deallocate_network(self.context, + self.instance) + self.compute._reschedule(self.context, None, {}, instance_uuid, + self.compute.scheduler_rpcapi.run_instance, method_args, + task_states.SCHEDULING, exc_info).AndReturn(False) + + self.mox.ReplayAll() + # re-scheduling is False, the original build error should be # raised here: self.assertRaises(test.TestingException, self.compute._reschedule_or_reraise, self.context, - self.instance, None, None, None, False, None, {}) + self.instance, exc_info, None, None, None, False, None, {}) def test_reschedule_true(self): """Test behavior when re-scheduling happens""" @@ -6133,6 +6139,8 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): except Exception: exc_info = sys.exc_info() + compute_utils.add_instance_fault_from_exc(self.context, + instance_uuid, exc_info[0], exc_info=exc_info) self.compute._deallocate_network(self.context, self.instance) self.compute._reschedule(self.context, None, {}, instance_uuid, @@ -6146,7 +6154,7 @@ class ComputeRescheduleOrReraiseTestCase(BaseTestCase): # re-scheduling is True, original error is logged, but nothing # is raised: self.compute._reschedule_or_reraise(self.context, self.instance, - None, None, None, False, None, {}) + exc_info, None, None, None, False, None, {}) class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase): @@ -6171,7 +6179,8 @@ class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase): mox.IgnoreArg()).AndRaise(test.TestingException("Original")) self.compute._reschedule_resize_or_reraise(mox.IgnoreArg(), None, - self.instance, self.instance_type, None, None, None) + self.instance, mox.IgnoreArg(), self.instance_type, None, None, + None) self.mox.ReplayAll() @@ -6195,9 +6204,11 @@ class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase): try: raise test.TestingException("Original") except Exception: + exc_info = sys.exc_info() self.assertRaises(test.TestingException, self.compute._reschedule_resize_or_reraise, self.context, - None, self.instance, self.instance_type, None, {}, {}) + None, self.instance, exc_info, self.instance_type, None, + {}, {}) def test_reschedule_false(self): """Original exception should be raised if the resize is not @@ -6215,9 +6226,11 @@ class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase): try: raise test.TestingException("Original") except Exception: + exc_info = sys.exc_info() self.assertRaises(test.TestingException, self.compute._reschedule_resize_or_reraise, self.context, - None, self.instance, self.instance_type, None, {}, {}) + None, self.instance, exc_info, self.instance_type, None, + {}, {}) def test_reschedule_true(self): """If rescheduled, the original resize exception should be logged""" @@ -6238,7 +6251,7 @@ class ComputeRescheduleResizeOrReraiseTestCase(BaseTestCase): self.mox.ReplayAll() self.compute._reschedule_resize_or_reraise(self.context, None, - self.instance, self.instance_type, None, {}, {}) + self.instance, exc_info, self.instance_type, None, {}, {}) class ComputeInactiveImageTestCase(BaseTestCase): |
