Merge "Adding traceback to async faults"

This commit is contained in:
Jenkins
2012-02-17 22:39:56 +00:00
committed by Gerrit Code Review

View File

@@ -21,6 +21,7 @@ Tests For Compute
"""
from copy import copy
import datetime
import sys
import time
from webob import exc
@@ -205,7 +206,7 @@ class ComputeTestCase(BaseTestCase):
called = {'fault_added': False}
def did_it_add_fault(_ctxt, _inst_uuid, _e):
def did_it_add_fault(*args):
called['fault_added'] = True
self.stubs.Set(self.compute, 'add_instance_fault_from_exc',
@@ -225,7 +226,7 @@ class ComputeTestCase(BaseTestCase):
called = {'fault_added': False}
def did_it_add_fault(_ctxt, _inst_uuid, _e):
def did_it_add_fault(*args):
called['fault_added'] = True
self.stubs.Set(self.compute, 'add_instance_fault_from_exc',
@@ -563,7 +564,7 @@ class ComputeTestCase(BaseTestCase):
self.stubs.Set(nova.virt.fake.FakeConnection, 'get_info',
fake_driver_get_info)
self.assertRaises(exception.Error,
self.assertRaises(exception.Invalid,
self.compute.set_admin_password,
self.context,
instance['uuid'])
@@ -595,7 +596,7 @@ class ComputeTestCase(BaseTestCase):
#error raised from the driver should not reveal internal information
#so a new error is raised
self.assertRaises(exception.Error,
self.assertRaises(exception.NovaException,
self.compute.set_admin_password,
self.context, instance_uuid)
@@ -884,7 +885,7 @@ class ComputeTestCase(BaseTestCase):
"""Ensure failure when running an instance that already exists"""
instance = self._create_fake_instance()
self.compute.run_instance(self.context, instance['uuid'])
self.assertRaises(exception.Error,
self.assertRaises(exception.Invalid,
self.compute.run_instance,
self.context,
instance['uuid'])
@@ -1472,13 +1473,68 @@ class ComputeTestCase(BaseTestCase):
self.assertEqual(power_state.NOSTATE, instances[0]['power_state'])
def test_add_instance_fault(self):
exc_info = None
instance_uuid = str(utils.gen_uuid())
def fake_db_fault_create(ctxt, values):
self.assertTrue(values['details'].startswith('test'))
self.assertTrue('raise NotImplementedError' in values['details'])
del values['details']
expected = {
'code': 500,
'message': 'NotImplementedError',
'instance_uuid': instance_uuid,
}
self.assertEquals(expected, values)
try:
raise NotImplementedError('test')
except:
exc_info = sys.exc_info()
self.stubs.Set(nova.db, 'instance_fault_create', fake_db_fault_create)
ctxt = context.get_admin_context()
self.compute.add_instance_fault_from_exc(ctxt, instance_uuid,
NotImplementedError('test'),
exc_info)
def test_add_instance_fault_user_error(self):
exc_info = None
instance_uuid = str(utils.gen_uuid())
def fake_db_fault_create(ctxt, values):
expected = {
'code': 400,
'message': 'Invalid',
'details': 'fake details',
'instance_uuid': instance_uuid,
}
self.assertEquals(expected, values)
user_exc = exception.Invalid('fake details', code=400)
try:
raise user_exc
except:
exc_info = sys.exc_info()
self.stubs.Set(nova.db, 'instance_fault_create', fake_db_fault_create)
ctxt = context.get_admin_context()
self.compute.add_instance_fault_from_exc(ctxt, instance_uuid,
user_exc, exc_info)
def test_add_instance_fault_no_exc_info(self):
instance_uuid = str(utils.gen_uuid())
def fake_db_fault_create(ctxt, values):
expected = {
'code': 500,
'message': 'NotImplementedError',
'details': '',
'details': 'test',
'instance_uuid': instance_uuid,
}
self.assertEquals(expected, values)
@@ -1487,25 +1543,7 @@ class ComputeTestCase(BaseTestCase):
ctxt = context.get_admin_context()
self.compute.add_instance_fault_from_exc(ctxt, instance_uuid,
NotImplementedError())
def test_add_instance_fault_http_exception(self):
instance_uuid = str(utils.gen_uuid())
def fake_db_fault_create(ctxt, values):
expected = {
'code': 404,
'message': 'HTTPNotFound',
'details': 'Error Details',
'instance_uuid': instance_uuid,
}
self.assertEquals(expected, values)
self.stubs.Set(nova.db, 'instance_fault_create', fake_db_fault_create)
ctxt = context.get_admin_context()
self.compute.add_instance_fault_from_exc(ctxt, instance_uuid,
exc.HTTPNotFound("Error Details"))
NotImplementedError('test'))
class ComputeAPITestCase(BaseTestCase):