nova/nova/objects
Matt Riedemann c84846dbf9 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.

Conflicts:

  nova/tests/functional/regressions/test_bug_1849409.py

NOTE(mriedem): The conflict is due to the Rocky-specific change
to the functional test in I324193129acb6ac739133c7e76920762a8987a84
due to test_concurrent_request_server_group_members_over_quota leaking
deleted servers for some reason.

Change-Id: Ic2b19c2aa06b3059ab0344b6ac56ffd62b3f755d
Closes-Bug: #1849409
(cherry picked from commit df03499843)
(cherry picked from commit 03a2508362)
(cherry picked from commit 6038455e1d)
2019-10-29 15:25:24 -04:00
..
__init__.py network: Always retrieve network information if available 2018-07-03 16:50:06 +01:00
agent.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
aggregate.py Transform aggregate.update_prop notification 2018-07-15 23:36:31 +09:00
bandwidth_usage.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
base.py [placement] Object changes to support last-modified headers 2017-12-07 18:47:17 +00:00
block_device.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
build_request.py Fix listing deleted servers with a marker 2019-10-29 15:25:24 -04:00
cell_mapping.py Fix using template cell urls with nova-manage 2019-01-24 18:08:20 -05:00
compute_node.py Ignore uuid if already set in ComputeNode.update_from_virt_driver 2018-10-17 16:24:10 +02:00
console_auth_token.py Reduce scope of 'path' query parameter to noVNC consoles 2019-10-02 16:22:51 +00:00
diagnostics.py Added nova objects for intance diagnostics 2017-05-30 00:39:44 +04:00
dns_domain.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
ec2.py Use nova.db.api directly 2018-07-10 14:56:27 +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 Assorted cleanups from numa-aware-vswitches series 2018-07-27 09:49:12 -07:00
fixed_ip.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
flavor.py Merge "Remove old flavor_create db api method" 2018-03-20 18:11:06 +00:00
floating_ip.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
host_mapping.py Add --by-service to discover_hosts 2018-03-16 15:55:19 -07:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py Update ImageMetaProp object to expose traits 2018-04-05 16:18:59 -07:00
instance.py Check hosts have no instances for AZ rename 2019-03-06 16:31:28 +03:00
instance_action.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
instance_fault.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
instance_group.py Merge "Delete instance_group_member records from API DB during archive" into stable/rocky 2018-09-21 12:01:46 +00:00
instance_info_cache.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
instance_mapping.py Fix InstanceMapping to always default queued_for_delete=False 2019-02-07 16:16:17 +01:00
instance_numa_topology.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
instance_pci_requests.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
keypair.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
migrate_data.py Avoid redundant initialize_connection on source post live migration 2019-02-14 10:10:36 +00:00
migration.py Revert resize: wait for events according to hybrid plug 2019-07-12 19:19:58 -04:00
migration_context.py Move get_pci_mapping_for_migration to MigrationContext 2019-06-05 17:43:15 +03:00
monitor_metric.py Fix MonitorMetric obj_make_compatible 2016-09-12 14:10:41 +00:00
network.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
network_metadata.py Assorted cleanups from numa-aware-vswitches series 2018-07-27 09:49:12 -07:00
network_request.py Merge "Remove DictCompat from NetworkRequest" 2016-06-30 10:23:36 +00:00
numa.py Fix overcommit for NUMA-based instances 2019-01-25 12:57:49 +00:00
pci_device.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
pci_device_pool.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
quotas.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
request_spec.py Workaround missing RequestSpec.instance_group.uuid 2019-06-03 21:01:42 -04:00
security_group.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
security_group_rule.py Use nova.db.api directly 2018-07-10 14:56:27 +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-08-08 17:03:07 +00:00
tag.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
task_log.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
trusted_certs.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
vcpu_model.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
virtual_interface.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00
volume_usage.py Use nova.db.api directly 2018-07-10 14:56:27 +00:00