diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-03-14 01:55:57 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-03-14 01:55:57 +0000 |
commit | 37e457db636f1c1bf09c27b051b04d79909c49eb (patch) | |
tree | 28425e351b1b9b22bfb91913ad29b15c93f1ecb5 | |
parent | fee9425d3ece2358717a74319073db6ba0cab9f5 (diff) | |
parent | 1df14918988ba45fc95b6925a617238af398cc50 (diff) | |
download | nova-37e457db636f1c1bf09c27b051b04d79909c49eb.tar.gz nova-37e457db636f1c1bf09c27b051b04d79909c49eb.tar.xz nova-37e457db636f1c1bf09c27b051b04d79909c49eb.zip |
Merge "List ConsoleTypeInvalid as a client exception."
-rwxr-xr-x | nova/compute/manager.py | 3 | ||||
-rw-r--r-- | nova/tests/compute/test_compute.py | 34 |
2 files changed, 37 insertions, 0 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 3631d2995..59d776f20 100755 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -65,6 +65,7 @@ from nova.openstack.common import lockutils from nova.openstack.common import log as logging from nova.openstack.common.notifier import api as notifier from nova.openstack.common import rpc +from nova.openstack.common.rpc import common as rpc_common from nova.openstack.common import timeutils from nova import paths from nova import safe_utils @@ -2656,6 +2657,7 @@ class ComputeManager(manager.SchedulerDependentManager): else: return '\n'.join(log.split('\n')[-int(length):]) + @rpc_common.client_exceptions(exception.ConsoleTypeInvalid) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @wrap_instance_fault def get_vnc_console(self, context, console_type, instance): @@ -2684,6 +2686,7 @@ class ComputeManager(manager.SchedulerDependentManager): return connect_info + @rpc_common.client_exceptions(exception.ConsoleTypeInvalid) @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @wrap_instance_fault def get_spice_console(self, context, console_type, instance): diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index fd205c109..d748f6e6a 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -172,6 +172,12 @@ class BaseTestCase(test.TestCase): fake.restore_nodes() super(BaseTestCase, self).tearDown() + def stub_out_client_exceptions(self): + def passthru(exceptions, func, *args, **kwargs): + return func(*args, **kwargs) + + self.stubs.Set(rpc_common, 'catch_client_exception', passthru) + def _create_fake_instance(self, params=None, type_name='m1.tiny'): """Create a test instance.""" if not params: @@ -1547,9 +1553,16 @@ class ComputeTestCase(BaseTestCase): instance = jsonutils.to_primitive(self._create_fake_instance()) self.compute.run_instance(self.context, instance=instance) + self.assertRaises(rpc_common.ClientException, + self.compute.get_vnc_console, + self.context, 'invalid', instance=instance) + + self.stub_out_client_exceptions() + self.assertRaises(exception.ConsoleTypeInvalid, self.compute.get_vnc_console, self.context, 'invalid', instance=instance) + self.compute.terminate_instance(self.context, instance=instance) def test_missing_vnc_console_type(self): @@ -1560,9 +1573,16 @@ class ComputeTestCase(BaseTestCase): instance = jsonutils.to_primitive(self._create_fake_instance()) self.compute.run_instance(self.context, instance=instance) + self.assertRaises(rpc_common.ClientException, + self.compute.get_vnc_console, + self.context, None, instance=instance) + + self.stub_out_client_exceptions() + self.assertRaises(exception.ConsoleTypeInvalid, self.compute.get_vnc_console, self.context, None, instance=instance) + self.compute.terminate_instance(self.context, instance=instance) def test_spicehtml5_spice_console(self): @@ -1588,9 +1608,16 @@ class ComputeTestCase(BaseTestCase): instance = jsonutils.to_primitive(self._create_fake_instance()) self.compute.run_instance(self.context, instance=instance) + self.assertRaises(rpc_common.ClientException, + self.compute.get_spice_console, + self.context, 'invalid', instance=instance) + + self.stub_out_client_exceptions() + self.assertRaises(exception.ConsoleTypeInvalid, self.compute.get_spice_console, self.context, 'invalid', instance=instance) + self.compute.terminate_instance(self.context, instance=instance) def test_missing_spice_console_type(self): @@ -1601,9 +1628,16 @@ class ComputeTestCase(BaseTestCase): instance = jsonutils.to_primitive(self._create_fake_instance()) self.compute.run_instance(self.context, instance=instance) + self.assertRaises(rpc_common.ClientException, + self.compute.get_spice_console, + self.context, None, instance=instance) + + self.stub_out_client_exceptions() + self.assertRaises(exception.ConsoleTypeInvalid, self.compute.get_spice_console, self.context, None, instance=instance) + self.compute.terminate_instance(self.context, instance=instance) def test_diagnostics(self): |