diff options
author | Zuul <zuul@review.opendev.org> | 2020-03-19 21:09:34 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-03-19 21:09:35 +0000 |
commit | 0f7e0da5e494840cd5878e34397c4ad71abaafed (patch) | |
tree | b3abbdbe60b64cf845314f1062c74c882b8d8a77 | |
parent | 859ac8dda1dc5cb9087f6fb5443714a7dd852fdb (diff) | |
parent | b91592595141d7766c00255ffff04a25ca81c834 (diff) | |
download | nova-0f7e0da5e494840cd5878e34397c4ad71abaafed.tar.gz |
Merge "Fix listing deleted servers with a marker" into stable/ocata
-rw-r--r-- | nova/objects/build_request.py | 12 | ||||
-rw-r--r-- | nova/tests/functional/regressions/test_bug_1849409.py | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/nova/objects/build_request.py b/nova/objects/build_request.py index 0906ae9122..cf1e19a96e 100644 --- a/nova/objects/build_request.py +++ b/nova/objects/build_request.py @@ -324,14 +324,16 @@ class BuildRequestList(base.ObjectListBase, base.NovaObject): @base.remotable_classmethod def get_by_filters(cls, context, filters, limit=None, marker=None, sort_keys=None, sort_dirs=None): - if limit == 0: - return cls(context, objects=[]) + # Short-circuit on anything that will not yield results. # 'deleted' records can not be returned from here since build_requests # are not soft deleted. - if filters.get('deleted', False): - return cls(context, objects=[]) # 'cleaned' records won't exist as they would need to be deleted. - if filters.get('cleaned', False): + if (limit == 0 or + filters.get('deleted', False) or + filters.get('cleaned', False)): + # If we have a marker honor the MarkerNotFound semantics. + if marker: + raise exception.MarkerNotFound(marker=marker) return cls(context, objects=[]) # Because the build_requests table stores an instance as a serialized diff --git a/nova/tests/functional/regressions/test_bug_1849409.py b/nova/tests/functional/regressions/test_bug_1849409.py index f842770cb3..5860c55331 100644 --- a/nova/tests/functional/regressions/test_bug_1849409.py +++ b/nova/tests/functional/regressions/test_bug_1849409.py @@ -72,7 +72,5 @@ class ListDeletedServersWithMarker(test.TestCase, servers = self.api.get_servers(detail=False, search_opts={'deleted': True, 'marker': server['id']}) - # FIXME(mriedem): This is bug 1849409 where the marker param is not - # honored correctly when using deleted=True. server_names = [serv['name'] for serv in servers] - self.assertIn(server['name'], server_names) + self.assertNotIn(server['name'], server_names) |