From c836fda3fa4bf4250790353ca31b9d600ee0fdd8 Mon Sep 17 00:00:00 2001 From: asteroide Date: Fri, 20 Nov 2015 16:04:31 +0100 Subject: Get errors from Keystone-Moon and throw them from Moonclient Change-Id: I686f2d49b0c41a8352ed9c18805fbf4058d8ad3d --- moonclient/moonclient/shell.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/moonclient/moonclient/shell.py b/moonclient/moonclient/shell.py index 49422a45..5e40bf40 100644 --- a/moonclient/moonclient/shell.py +++ b/moonclient/moonclient/shell.py @@ -150,9 +150,21 @@ class MoonClient(App): content = resp.read() conn.close() try: - return json.loads(content) + content = json.loads(content) + if "error" in content: + try: + raise Exception("Getting an error while requiring {} ({}: {}, {})".format( + url, + content['error']['code'], + content['error']['title'], + content['error']['message'], + )) + except ValueError: + raise Exception("Getting an error while requiring {} ({})".format(url, content)) + return content except ValueError: - return {"content": content} + raise Exception("Getting an error while requiring {} ({})".format(url, content)) + # return {"content": content} def auth_keystone(self, username=None, password=None, host=None, port=None): """Send a new authentication request to Keystone -- cgit 1.2.3-korg