Retry search calls on error

Search queries sometimes return error 400 with:
error_code: 60508
error_message: 'Indexing is in progress, please retry after sometime.

This patche will retry the request on this error.

Change-Id: Id47886ba0e72ea946dcf07ae0bdbc81fef1dd4f0
Adit Sarfaty 5 years ago
parent cce8806f7f
commit 8676000486

@ -134,7 +134,14 @@ class NsxLibBase(object):
url += "&cursor=%d" % cursor
if page_size:
url += "&page_size=%d" % page_size
return self.client.url_get(url)
# Retry the search on case of error
def do_search(url):
return self.client.url_get(url)
return do_search(url)
def search_all_by_tags(self, tags, resource_type=None):
"""Return all the results searched based on tags."""

@ -34,6 +34,8 @@ def http_error_to_exception(status_code, error_code):
{'202': exceptions.BackendResourceNotFound,
'default': exceptions.ResourceNotFound},
{'60508': exceptions.NsxIndexingInProgress}, exceptions.StaleRevision, exceptions.StaleRevision,

@ -140,3 +140,8 @@ class SecurityGroupMaximumCapacityReached(ManagerError):
class NsxSearchInvalidQuery(NsxLibException):
message = _("Invalid input for NSX search query. Reason: %(reason)s")
class NsxIndexingInProgress(NsxLibException):
message = _("Bad Request due to indexing is in progress, please retry "
"after sometime")