optimized 'find_instance()'

The function nova.servers.list() will return a huge context in the
large infrastructure. We can use nova.servers.get() instead of it.

Change-Id: If922c31e8aff27bfbc475c63083ee561ee7f1f67
This commit is contained in:
licanwei
2016-11-10 19:17:46 +08:00
parent 21abbb4cd1
commit 3e392b07bf
2 changed files with 4 additions and 10 deletions

View File

@@ -73,15 +73,7 @@ class NovaHelper(object):
return self.nova.availability_zones.list(detailed=True)
def find_instance(self, instance_id):
search_opts = {'all_tenants': True}
instances = self.nova.servers.list(detailed=True,
search_opts=search_opts)
instance = None
for _instance in instances:
if _instance.id == instance_id:
instance = _instance
break
return instance
return self.nova.servers.get(instance_id)
def wait_for_volume_status(self, volume, status, timeout=60,
poll_interval=1):

View File

@@ -49,7 +49,7 @@ class TestNovaHelper(base.TestCase):
@staticmethod
def fake_nova_find_list(nova_util, find=None, list=None):
nova_util.nova.servers.find.return_value = find
nova_util.nova.servers.get.return_value = find
if list is None:
nova_util.nova.servers.list.return_value = []
else:
@@ -102,6 +102,8 @@ class TestNovaHelper(base.TestCase):
)
self.assertTrue(is_success)
setattr(server, 'OS-EXT-SRV-ATTR:host',
self.source_node)
self.fake_nova_find_list(nova_util, find=server, list=None)
is_success = nova_util.live_migrate_instance(
self.instance_uuid, self.destination_node