From e03a3df8869ad5303aaba0f006c17d0927fa6dab Mon Sep 17 00:00:00 2001 From: Hans Lindgren Date: Wed, 27 Feb 2013 00:08:44 +0100 Subject: Refactor compute manager _get_instances_by_driver Make the method more efficient by only querying nova-conductor once. Also limit fallback instance query to host only. This is in preparation for fixing bug 1129519. Change-Id: I7de14f1ffda37c14f760f602fd81250d2163b430 --- nova/tests/compute/test_compute.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'nova/tests') diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index 6eb5feb85..d6c9d23a8 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -3571,14 +3571,14 @@ class ComputeTestCase(BaseTestCase): self.mox.StubOutWithMock(self.compute.driver, 'list_instance_uuids') self.mox.StubOutWithMock(self.compute.conductor_api, - 'instance_get_by_uuid') + 'instance_get_all_by_filters') self.compute.driver.list_instance_uuids().AndReturn( [inst['uuid'] for inst in driver_instances]) - for x in xrange(len(driver_instances)): - self.compute.conductor_api.instance_get_by_uuid(fake_context, - driver_instances[x]['uuid']).AndReturn( - driver_instances[x]) + self.compute.conductor_api.instance_get_all_by_filters( + fake_context, {'uuid': [inst['uuid'] for + inst in driver_instances]}).AndReturn( + driver_instances) self.mox.ReplayAll() @@ -3588,6 +3588,7 @@ class ComputeTestCase(BaseTestCase): def test_get_instances_on_driver_fallback(self): # Test getting instances when driver doesn't support # 'list_instance_uuids' + self.compute.host = 'host' fake_context = context.get_admin_context() all_instances = [] @@ -3603,14 +3604,14 @@ class ComputeTestCase(BaseTestCase): self.mox.StubOutWithMock(self.compute.driver, 'list_instances') self.mox.StubOutWithMock(self.compute.conductor_api, - 'instance_get_all') + 'instance_get_all_by_host') self.compute.driver.list_instance_uuids().AndRaise( NotImplementedError()) self.compute.driver.list_instances().AndReturn( [inst['name'] for inst in driver_instances]) - self.compute.conductor_api.instance_get_all( - fake_context).AndReturn(all_instances) + self.compute.conductor_api.instance_get_all_by_host( + fake_context, self.compute.host).AndReturn(all_instances) self.mox.ReplayAll() -- cgit