summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-14 01:55:57 +0000
committerGerrit Code Review <review@openstack.org>2013-03-14 01:55:57 +0000
commit37e457db636f1c1bf09c27b051b04d79909c49eb (patch)
tree28425e351b1b9b22bfb91913ad29b15c93f1ecb5
parentfee9425d3ece2358717a74319073db6ba0cab9f5 (diff)
parent1df14918988ba45fc95b6925a617238af398cc50 (diff)
downloadnova-37e457db636f1c1bf09c27b051b04d79909c49eb.tar.gz
nova-37e457db636f1c1bf09c27b051b04d79909c49eb.tar.xz
nova-37e457db636f1c1bf09c27b051b04d79909c49eb.zip
Merge "List ConsoleTypeInvalid as a client exception."
-rwxr-xr-xnova/compute/manager.py3
-rw-r--r--nova/tests/compute/test_compute.py34
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):