summaryrefslogtreecommitdiff
path: root/nova/compute/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/compute/api.py')
-rw-r--r--nova/compute/api.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 6eb269d303..35d0c82cd8 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -2315,9 +2315,17 @@ class API(base.Base):
# [sorted instances with no host] + [sorted instances with host].
# This means BuildRequest and cell0 instances first, then cell
# instances
- build_requests = objects.BuildRequestList.get_by_filters(
- context, filters, limit=limit, marker=marker, sort_keys=sort_keys,
- sort_dirs=sort_dirs)
+ try:
+ build_requests = objects.BuildRequestList.get_by_filters(
+ context, filters, limit=limit, marker=marker,
+ sort_keys=sort_keys, sort_dirs=sort_dirs)
+ # If we found the marker in we need to set it to None
+ # so we don't expect to find it in the cells below.
+ marker = None
+ except exception.MarkerNotFound:
+ # If we didn't find the marker in the build requests then keep
+ # looking for it in the cells.
+ build_requests = objects.BuildRequestList()
build_req_instances = objects.InstanceList(
objects=[build_req.instance for build_req in build_requests])
# Only subtract from limit if it is not None