From 502ed741d65ad6b098e85beac301844060c18be0 Mon Sep 17 00:00:00 2001 From: chenke Date: Wed, 10 Jul 2019 13:59:19 +0800 Subject: [PATCH] Add marker option for get_instance_list() Change-Id: Iee31369876052a22e5f3263cd5e7fad5d068f68d --- watcher/common/nova_helper.py | 8 +++++--- watcher/tests/common/test_nova_helper.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/watcher/common/nova_helper.py b/watcher/common/nova_helper.py index 7f8665ccf..d6f9b38da 100644 --- a/watcher/common/nova_helper.py +++ b/watcher/common/nova_helper.py @@ -82,12 +82,14 @@ class NovaHelper(object): LOG.exception(exc) raise exception.ComputeNodeNotFound(name=node_hostname) - def get_instance_list(self, filters=None, limit=-1): + def get_instance_list(self, filters=None, marker=None, limit=-1): """List servers for all tenants with details. This always gets servers with the all_tenants=True filter. - :param filters: dict of additional filters (optional). + :param filters: Dict of additional filters (optional). + :param marker: Get servers that appear later in the server + list than that represented by this server id (optional). :param limit: Maximum number of servers to return (optional). If limit == -1, all servers will be returned, note that limit == -1 will have a performance @@ -98,8 +100,8 @@ class NovaHelper(object): search_opts = {'all_tenants': True} if filters: search_opts.update(filters) - # TODO(chenker) Add marker param to list Server objects. return self.nova.servers.list(search_opts=search_opts, + marker=marker, limit=limit) def get_instance_by_uuid(self, instance_uuid): diff --git a/watcher/tests/common/test_nova_helper.py b/watcher/tests/common/test_nova_helper.py index d15cd6d7e..9b5371e14 100644 --- a/watcher/tests/common/test_nova_helper.py +++ b/watcher/tests/common/test_nova_helper.py @@ -167,14 +167,14 @@ class TestNovaHelper(base.TestCase): with mock.patch.object(nova_util, 'nova') as nova_mock: result = nova_util.get_instance_list() nova_mock.servers.list.assert_called_once_with( - search_opts={'all_tenants': True}, limit=-1) + search_opts={'all_tenants': True}, marker=None, limit=-1) self.assertIs(result, nova_mock.servers.list.return_value) # Call it again with filters. with mock.patch.object(nova_util, 'nova') as nova_mock: result = nova_util.get_instance_list(filters={'host': 'fake-host'}) nova_mock.servers.list.assert_called_once_with( search_opts={'all_tenants': True, 'host': 'fake-host'}, - limit=-1) + marker=None, limit=-1) self.assertIs(result, nova_mock.servers.list.return_value) @mock.patch.object(time, 'sleep', mock.Mock())