From 04bf5e3a5dfce2a06b0733a654eb5d9352752c5e Mon Sep 17 00:00:00 2001 From: JJ Geewax Date: Tue, 23 Jun 2015 08:03:57 -0400 Subject: [PATCH] Fixes #937 - Adds HTTP method and URL to exceptions. --- gcloud/connection.py | 3 ++- gcloud/exceptions.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcloud/connection.py b/gcloud/connection.py index 392ed9347252..1cbb8d01e3d7 100644 --- a/gcloud/connection.py +++ b/gcloud/connection.py @@ -391,7 +391,8 @@ def api_request(self, method, path, query_params=None, target_object=_target_object) if not 200 <= response.status < 300: - raise make_exception(response, content) + raise make_exception(response, content, + request_string=method+' '+url) string_or_bytes = (six.binary_type, six.text_type) if content and expect_json and isinstance(content, string_or_bytes): diff --git a/gcloud/exceptions.py b/gcloud/exceptions.py index 0c04f80a12a0..18d1047bab72 100644 --- a/gcloud/exceptions.py +++ b/gcloud/exceptions.py @@ -157,7 +157,7 @@ class ServiceUnavailable(ServerError): code = 503 -def make_exception(response, content, use_json=True): +def make_exception(response, content, request_string=None, use_json=True): """Factory: create exception based on HTTP response code. :type response: :class:`httplib2.Response` or other HTTP response object @@ -187,6 +187,9 @@ def make_exception(response, content, use_json=True): message = payload.get('error', {}).get('message', '') errors = payload.get('error', {}).get('errors', ()) + if request_string: + message += ' (%s)' % request_string + try: klass = _HTTP_CODE_TO_EXCEPTION[response.status] except KeyError: