From 8d0ec8dcd8095f48db0912742cca96461e90bf06 Mon Sep 17 00:00:00 2001 From: Bin Yang Date: Tue, 28 Mar 2017 14:54:38 +0800 Subject: Expose detail information upon API call failure Change-Id: I6e42cebeb7e1c5edd3f77b8c0c6c091d04fcb364 Issue-Id: MULTIVIM-58 Signed-off-by: Bin Yang --- newton/newton/requests/views/volume.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'newton/newton/requests/views/volume.py') diff --git a/newton/newton/requests/views/volume.py b/newton/newton/requests/views/volume.py index a126aadc..3f958907 100644 --- a/newton/newton/requests/views/volume.py +++ b/newton/newton/requests/views/volume.py @@ -14,7 +14,7 @@ import logging import json import traceback - +from keystoneauth1.exceptions import HttpError from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView @@ -50,6 +50,9 @@ class Volumes(APIView): return Response(data=content, status=status_code) except VimDriverNewtonException as e: return Response(data={'error': e.content}, status=e.status_code) + except HttpError as e: + logger.error("HttpError: status:%s, response:%s" % (e.http_status, e.response.json())) + return Response(data=e.response.json(), status=e.http_status) except Exception as e: logger.error(traceback.format_exc()) return Response(data={'error': str(e)}, @@ -136,6 +139,9 @@ class Volumes(APIView): return Response(data=resp_body, status=resp.status_code) except VimDriverNewtonException as e: return Response(data={'error': e.content}, status=e.status_code) + except HttpError as e: + logger.error("HttpError: status:%s, response:%s" % (e.http_status, e.response.json())) + return Response(data=e.response.json(), status=e.http_status) except Exception as e: logger.error(traceback.format_exc()) return Response(data={'error': str(e)}, @@ -156,6 +162,9 @@ class Volumes(APIView): return Response(status=resp.status_code) except VimDriverNewtonException as e: return Response(data={'error': e.content}, status=e.status_code) + except HttpError as e: + logger.error("HttpError: status:%s, response:%s" % (e.http_status, e.response.json())) + return Response(data=e.response.json(), status=e.http_status) except Exception as e: logger.error(traceback.format_exc()) return Response(data={'error': str(e)}, -- cgit 1.2.3-korg