diff options
Diffstat (limited to 'nova/compute/api.py')
-rw-r--r-- | nova/compute/api.py | 14 |
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 |