nova/nova/objects
Matt Riedemann b915925951 Fix listing deleted servers with a marker
Change I1aa3ca6cc70cef65d24dec1e7db9491c9b73f7ab in Queens,
which was backported through to Newton, introduced a regression
when listing deleted servers with a marker because it assumes
that if BuildRequestList.get_by_filters does not raise
MarkerNotFound that the marker was found among the build requests
and does not account for that get_by_filters method short-circuiting
if filtering servers with deleted/cleaned/limit=0. The API code
then nulls out the marker which means you'll continue to get the
marker instance back in the results even though you shouldn't,
and that can cause an infinite loop in some client-side tooling like
nova's CLI:

  nova list --deleted --limit -1

This fixes the bug by raising MarkerNotFound from
BuildRequestList.get_by_filters if we have a marker but are
short-circuiting and returning early from the method based on
limit or filters.

Change-Id: Ic2b19c2aa06b3059ab0344b6ac56ffd62b3f755d
Closes-Bug: #1849409
(cherry picked from commit df03499843)
(cherry picked from commit 03a2508362)
(cherry picked from commit 6038455e1d)
(cherry picked from commit c84846dbf9)
(cherry picked from commit 8c18293f93)
(cherry picked from commit b277ec154f)
2019-12-05 12:53:48 -05:00
..
__init__.py Move notification related code to separate package 2016-06-08 11:32:53 +02:00
agent.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
aggregate.py Merge "Handle unicode when dealing with duplicate aggregate errors during migration" 2017-01-26 02:15:47 +00:00
bandwidth_usage.py Cleanup NovaObjectDictCompat from BandwidthUsage 2016-04-04 10:26:55 +00:00
base.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
block_device.py Add tag column to vifs and bdm 2016-04-01 08:46:54 -07:00
build_request.py Fix listing deleted servers with a marker 2019-12-05 12:53:48 -05:00
cell_mapping.py Add is_cell0 helper method 2016-09-15 10:35:26 -04:00
compute_node.py Filter deleted computes from get_all_by_uuids() 2018-09-21 14:51:01 -04:00
dns_domain.py Remove DictCompat from DNSDomain 2016-01-11 16:38:06 +00:00
ec2.py Remove DictCompat from S3 object 2016-04-04 18:22:59 +00:00
external_event.py cleanup NovaObjectDictCompat from external_event 2015-08-26 17:01:02 +05:30
fields.py Merge "Add 'disabled' to WatchdogAction field" 2017-01-31 21:14:03 +00:00
fixed_ip.py Use version convert methods from oslo_utils.versionutils 2015-11-25 20:26:02 +08:00
flavor.py Merge "Handle unicode when dealing with duplicate flavors during online migrations" 2017-01-26 02:15:14 +00:00
floating_ip.py Add new NeutronFloatingIP object 2016-04-08 14:50:38 +00:00
host_mapping.py Allow scheduler to run cell host discovery periodically 2017-02-01 12:22:23 -08:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py Add 'disabled' to WatchdogAction field 2017-01-03 17:27:40 -05:00
instance.py Default embedded instance.flavor.is_public attribute 2018-11-21 15:37:09 -05:00
instance_action.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
instance_fault.py Only return latest instance fault for instances 2016-12-14 19:25:05 +02:00
instance_group.py Use pick_context_manager throughout DB APIs 2016-11-18 17:15:51 +00:00
instance_info_cache.py Remove DictCompat from instance_info_cache 2016-06-13 18:31:45 +00:00
instance_mapping.py Add InstanceMappingList.get_by_cell_id 2017-01-16 12:04:30 -05:00
instance_numa_topology.py objects: add new field cpuset_reserved in NUMACell 2017-01-24 19:37:55 +00:00
instance_pci_requests.py pci: Deprecate is_new from pci requests 2016-06-21 13:19:57 +03:00
keypair.py Use pick_context_manager throughout DB APIs 2016-11-18 17:15:51 +00:00
migrate_data.py Fix live migrate with XenServer 2017-02-16 12:47:09 -05:00
migration.py Add new APIs and deprecate old API for migrations 2016-02-26 14:25:48 +00:00
migration_context.py pci: Move PCI devices and PCI requests into migration context 2016-06-03 02:09:33 +03:00
monitor_metric.py Fix MonitorMetric obj_make_compatible 2016-09-12 14:10:41 +00:00
network.py Remove deprecated configuration option network_device_mtu 2016-09-07 12:31:57 +00:00
network_request.py Merge "Remove DictCompat from NetworkRequest" 2016-06-30 10:23:36 +00:00
numa.py Mark sibling CPUs as 'used' for cpu_thread_policy = 'isolated' 2016-12-13 11:23:07 +04:00
pci_device.py Fix typo in comment 2016-09-28 12:18:22 +07:00
pci_device_pool.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
quotas.py cleanup NovaObjectDictCompat from quota 2015-08-20 18:48:21 +00:00
request_spec.py Do not persist RequestSpec.ignore_hosts 2019-04-02 14:23:43 -04:00
resource_provider.py Ensure resource class cache when listing usages 2018-06-25 16:45:03 +01:00
security_group.py Add SecurityGroup.identifier to prefer uuid over name 2016-12-09 10:30:48 -08:00
security_group_rule.py Cleanup NovaObjectDictCompat from security_group_rule 2016-01-05 16:21:08 +00:00
service.py Block starting compute unless placement conf is provided 2017-01-27 16:35:09 -08:00
tag.py Added server tags controller 2016-04-06 16:37:22 +03:00
task_log.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
vcpu_model.py Untie subobject versions 2015-11-10 15:56:14 +00:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py objects: vlan field to NetworkInterfaceMetadata object 2017-01-26 15:10:56 -05:00
virtual_interface.py Merge "trivial: comment about vif object address field" 2016-07-13 19:24:58 +00:00
volume_usage.py Add a VolumeUsage object 2015-08-23 18:45:38 +02:00