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: