nova/nova/objects
Matt Riedemann 8c18293f93 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)
2019-11-25 16:40:39 -05:00
..
__init__.py Add ConsoleAuthToken object 2018-01-06 02:03:50 +00:00
agent.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
aggregate.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
bandwidth_usage.py Cleanup NovaObjectDictCompat from BandwidthUsage 2016-04-04 10:26:55 +00:00
base.py [placement] Object changes to support last-modified headers 2017-12-07 18:47:17 +00:00
block_device.py Add an online migration for BDM.uuid 2018-01-02 17:29:36 +00:00
build_request.py Fix listing deleted servers with a marker 2019-11-25 16:40:39 -05:00
cell_mapping.py Sort CellMappingList.get_all() for safety 2017-04-24 12:00:22 -07:00
compute_node.py Filter deleted computes from get_all_by_uuids() 2018-09-21 14:46:35 -04:00
console_auth_token.py Add ConsoleAuthToken object 2018-01-06 02:03:50 +00:00
diagnostics.py Added nova objects for intance diagnostics 2017-05-30 00:39:44 +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 Add ability to signal and perform online volume size change 2017-07-12 11:53:20 -04:00
fields.py Added ability to configure default architecture for ImagePropertiesFilter 2018-05-15 12:28:43 +00:00
fixed_ip.py Add FixedIPList.get_count_by_project() 2017-06-19 21:51:46 +00:00
flavor.py Add Flavor.description attribute 2017-11-05 01:24:01 -05:00
floating_ip.py Add FloatingIPList.get_count_by_project() 2017-06-19 21:51:46 +00:00
host_mapping.py Add --by-service to discover_hosts 2018-03-21 07:26:29 -07:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py Add `img_hide_hypervisor_id` image property 2017-05-29 16:03:43 +00:00
instance.py Default embedded instance.flavor.is_public attribute 2018-11-21 15:25:12 -05:00
instance_action.py Add instance action db and obj pagination support. 2017-12-11 11:01:42 -05:00
instance_fault.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
instance_group.py Make scheduler.utils.setup_instance_group query all cells 2018-09-05 16:36:22 +00:00
instance_info_cache.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
instance_mapping.py cleanup mapping/reqspec after archive instance 2017-11-21 15:28:07 +01:00
instance_numa_topology.py Merge "objects: remove cpu_topology from __init__ of InstanceNUMATopology" 2017-05-17 12:53:41 +00:00
instance_pci_requests.py objects: Add PCI NUMA policy fields 2017-12-20 14:59:10 +00:00
keypair.py Remove translation of log messages 2017-06-21 13:01:19 +07:00
migrate_data.py Avoid redundant initialize_connection on source post live migration 2019-02-19 11:46:07 +00:00
migration.py Add migration db and object pagination support. 2018-01-08 12:01:58 -05:00
migration_context.py Move get_pci_mapping_for_migration to MigrationContext 2019-07-01 16:29:12 +00: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 Fix incorrect known vcpuset when CPUPinningUnknown raised 2017-11-24 15:41:22 +08:00
pci_device.py Fix ValueError when loading old pci device record 2017-11-29 12:49:49 -05:00
pci_device_pool.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
quotas.py Follow up on removing old-style quotas code 2017-12-08 22:11:24 +00:00
request_spec.py Workaround missing RequestSpec.instance_group.uuid 2019-06-04 14:04:06 -04:00
resource_provider.py [placement] Retry allocation writes server side 2018-08-03 14:41:15 +01:00
security_group.py Add SecurityGroupList.get_counts() 2017-06-19 21:51:46 +00:00
security_group_rule.py Cleanup NovaObjectDictCompat from security_group_rule 2016-01-05 16:21:08 +00:00
selection.py Move the to_dict() method to the Selection object 2017-12-07 15:01:09 +00:00
service.py Don't generate service UUID for deleted services 2019-07-31 10:03:53 -04: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
virt_device_metadata.py XenAPI: device tagging 2017-06-14 01:53:06 +00: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