summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/scheduler/manager.py1
-rw-r--r--nova/tests/scheduler/test_scheduler.py11
2 files changed, 12 insertions, 0 deletions
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py
index 3d62ff9b0..2d63ee970 100644
--- a/nova/scheduler/manager.py
+++ b/nova/scheduler/manager.py
@@ -316,6 +316,7 @@ class SchedulerManager(manager.Manager):
def get_backdoor_port(self, context):
return self.backdoor_port
+ @rpc_common.client_exceptions(exception.NoValidHost)
def select_hosts(self, context, request_spec, filter_properties):
"""Returns host(s) best suited for this request_spec
and filter_properties.
diff --git a/nova/tests/scheduler/test_scheduler.py b/nova/tests/scheduler/test_scheduler.py
index 99de672c4..a15a97f90 100644
--- a/nova/tests/scheduler/test_scheduler.py
+++ b/nova/tests/scheduler/test_scheduler.py
@@ -408,6 +408,17 @@ class SchedulerManagerTestCase(test.NoDBTestCase):
self.manager._set_vm_state_and_notify('foo', {'vm_state': 'foo'},
self.context, None, request)
+ def test_select_hosts_throws_rpc_clientexception(self):
+ self.mox.StubOutWithMock(self.manager.driver, 'select_hosts')
+
+ self.manager.driver.select_hosts(self.context, {}, {}).AndRaise(
+ exception.NoValidHost(reason=""))
+
+ self.mox.ReplayAll()
+ self.assertRaises(rpc_common.ClientException,
+ self.manager.select_hosts,
+ self.context, {}, {})
+
class SchedulerTestCase(test.NoDBTestCase):
"""Test case for base scheduler driver class."""