in bonsaicli2/bonsai_cli/api.py [0:0]
def _handle_and_raise(response: requests.Response, e: Any, request_id: str):
"""
This takes an exception and wraps it in a BrainServerError.
:param response: The response from the server.
:param e: The error raised by the requests call.
"""
error_response: Any = {}
try:
error_dump = response.json()
except:
error_dump = "Unknown server error occurred"
try:
error_code = 'Request failed with error code "{}"'.format(
response.json()["error"]["code"]
)
except:
error_code = ""
try:
error_message = "Error message: {}".format(response.json()["error"]["message"])
except:
error_message = "Request failed."
try:
error_message += " Request ID: {}".format(request_id)
error_message += " Span ID: {}".format(response.headers["SpanID"])
except KeyError:
pass
try:
error_response["errorDump"] = error_dump
error_response["status"] = "Failed"
error_response["statusCode"] = response.status_code
error_response["elapsed"] = response.elapsed
error_response["exception"] = e
error_response["errorCode"] = error_code
error_response["errorMessage"] = error_message
error_response["timeTaken"] = response.headers["x-ms-response-time"]
except KeyError:
pass
raise BrainServerError(error_response)