Added hadling of non-json response from Sahara

Added predicted behavior in case if Sahara responds with
service exceptions. Client now can handle non-json responses.

Change-Id: Ib3c47249eb58409b4c72c1beecd2403984c9e82e
Closes-Bug: #1354556
This commit is contained in:
Andrew Lazarev
2014-08-08 15:52:22 -07:00
parent 542a7fbb71
commit 3403ae4de4
2 changed files with 12 additions and 1 deletions

View File

@@ -18,6 +18,8 @@ import logging
import six
from saharaclient.openstack.common.gettextutils import _
LOG = logging.getLogger(__name__)
@@ -130,7 +132,14 @@ class ResourceManager(object):
return self.resource_class.resource_name + 's'
def _raise_api_exception(self, resp):
error_data = get_json(resp)
try:
error_data = get_json(resp)
except Exception:
raise APIException(
error_code=resp.status_code,
error_message=_("Failed to parse response from Sahara. Check "
"if service catalog configured properly."))
raise APIException(error_code=error_data.get("error_code"),
error_name=error_data.get("error_name"),
error_message=error_data.get("error_message"))

View File

@@ -46,3 +46,5 @@ show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools
[hacking]
import_exceptions = saharaclient.openstack.common.gettextutils._